Практическое руководство. Создание подключаемого модуля уровня запроса
Запросы представляют собой декларативные операторы, образующие веб-тесты производительности.Подключаемые модули веб-теста производительности позволяют изолировать и повторно использовать код вне основных декларативных операторов веб-теста производительности.Можно создать подключаемые модули и добавить их к отдельному запросу, а также к веб-тесту производительности, в котором он содержится.Настраиваемый подключаемый модуль запросов предлагает способ вызова кода при выполнении конкретного запроса в веб-тесте производительности.
Каждый подключаемый модуль запросов веб-теста производительности имеет метод PreRequest и PostRequest.После прикрепления подключаемого модуля запросов к определенному HTTP-запросу событие PreRequest инициируется перед отправкой запроса, а событие PostRequest — после получения запроса.
Настроенные подключаемые модули запроса веб-теста производительности можно создать с помощью пользовательского класса, производного от базового класса WebTestRequestPlugin.
Настроенные подключаемые модули запросов веб-теста производительности можно использовать с записанными веб-тестами производительности.Настроенные подключаемые модули запросов веб-теста производительности позволяют сократить до минимума объем создаваемого пользователем кода для достижения более высокого уровня управления веб-тестами производительности.Также они используются с закодированными веб-тестами производительности.Дополнительные сведения см. в разделе Практическое руководство. Создание кодированного веб-теста производительности.
Требования
- Visual Studio Ultimate
Создание подключаемого модуля уровня запроса
В обозревателе решений щелкните решение правой кнопкой мыши,выберите Добавить а затем выберите Создать проект.
Откроется диалоговое окно Добавление нового проекта.
В области Установленные шаблоны выберите Visual C#.
В списке шаблонов выберите значение Библиотека классов.
В текстовом поле Имя введите имя класса и выберите ОК.
Новый проект библиотеки классов будет добавлен в обозреватель решений, а новый класс появится в редакторе кода.
В обозревателе решений щелкните правой кнопкой мыши папку Ссылки в новой библиотеке классов и выберите команду Добавить ссылку.
Появится диалоговое окно Добавление ссылки.
Выберите вкладку .NET прокрутите список вниз, выберите Microsoft.VisualStudio.QualityTools.WebTestFramework а затем выберите ОК
Ссылка на Microsoft.VisualStudio.QualityTools.WebTestFramework будет добавлена в папку Ссылки в обозревателе решений.
В обозревателе решений щелкните правой кнопкой мыши верхний узел проекта анализа производительности и нагрузочного теста Интернета, содержащий нагрузочного теста, к которому нужно добавить подключаемый модуль запросов тестов веб-тест производительности.Выберите команду Добавить ссылку.
Появится диалоговое окно Добавление ссылки.
Выберите вкладку Проекты выберите проект библиотеки классов и выберите ОК.
Напишите код подключаемого модуля в редакторе кода.Сначала создайте открытый класс, производный от класса WebTestRequestPlugin.
Реализуйте код внутри одного или обоих обработчиков событий PreRequest и PostRequest.Образец реализации см. в приведенном ниже разделе "Пример".
После написания кода выполните построение нового проекта.
Откройте веб-тест производительности, к которому необходимо добавить подключаемый модуль запросов.
Щелкните правой кнопкой мыши запрос, к которому требуется добавить подключаемый модуль запросов, и выберите команду Добавить подключаемый модуль запросов.
Откроется диалоговое окно Добавить подключаемый модуль запросов веб-теста.
В области Выберите подключаемый модуль выберите новый подключаемый модуль.
В области Свойства выбранного подключаемого модуля задайте начальные значения для подключаемого модуля, которые будут использоваться во время выполнения.
Примечание С помощью подключаемых модулей можно предоставить доступ к произвольному количеству свойств; их необходимо сделать общедоступными, задаваемыми и относящимися к базовому типу, например к целочисленному, логическому или строковому.Кроме того, свойства подключаемого модуля веб-теста производительности можно изменить позже в окне "Свойства".
Нажмите кнопку ОК.
Подключаемый модуль добавляется в папку Подключаемые модули запросов, которая является дочерней папкой HTTP-запроса.
Внимание При запуске веб-теста производительности или нагрузочного теста, использующего данный подключаемый модуль, может появиться ошибка примерно следующего вида:
Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies.The system cannot find the file specified.
Это происходит, если в один из подключаемых модулей внесены изменения кода и создана новая версия библиотеки DLL (Version=0.0.0.0), однако подключаемый модуль по-прежнему ссылается на исходную версию подключаемого модуля.Чтобы устранить эту проблему, выполните следующие действия.
В проекте производительности и нагрузочного теста Интернета, отображается предупреждение в ссылках.Удалите и вновь добавьте ссылку на библиотеку DLL подключаемого модуля.
Удалите подключаемый модуль из теста или соответствующего расположения, а затем снова добавьте его.
Пример
С помощью показанного ниже кода можно создать настраиваемый подключаемый модуль веб-теста производительности, который отображается в двух диалоговых окнах.В первом диалоговом окне отображается URL-адрес, связанный с запросов, к которому добавляется подключаемый модуль запросов.Во втором окне отображается имя компьютера агента.
Примечание |
---|
В следующем фрагменте кода необходимо добавить ссылку на System.Windows.Forms. |
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace RequestPluginNamespace
{
public class MyWebRequestPlugin : WebTestRequestPlugin
{
public override void PostRequest(object sender, PostRequestEventArgs e)
{
MessageBox.Show(e.WebTest.Context.AgentName);
}
public override void PreRequest(object sender, PreRequestEventArgs e)
{
MessageBox.Show(e.Request.Url);
}
}
}
См. также
Задачи
Практическое руководство. Создание подключаемого модуля нагрузочных тестов
Практическое руководство. Создание кодированного веб-теста производительности