Практическое руководство. Создание подключаемого модуля веб-теста производительности
Подключаемые модули веб-тестов производительности позволяют изолировать и повторно использовать код вне основных декларативных операторов веб-теста производительности.Пользовательский подключаемый модуль веб-теста производительности предлагает способ для вызова того же кода при выполнении веб-теста производительности.Подключаемый модуль веб-теста производительности выполняется один раз для каждой итерации теста.Кроме того, при переопределении методов PreRequest и PostRequest в подключаемом модуле теста эти модули запросов будут выполняться до и после каждого запроса соответственно.
Пользовательские подключаемые модули веб-теста производительности можно создать с помощью пользовательского класса, производного от базового класса WebTestPlugin.
Использование пользовательских подключаемых модулей веб-тестов производительности с записанными веб-тестами производительности позволяет сократить до минимума объем создаваемого пользователем кода для достижения более высокого уровня управления веб-тестами производительности.Также они используются с закодированными веб-тестами производительности.Дополнительные сведения см. в разделе Практическое руководство. Создание кодированного веб-теста производительности.
Примечание |
---|
Возможно также создание подключаемых модулей нагрузочных тестов.Дополнительные сведения см. в разделе Практическое руководство. Создание подключаемого модуля нагрузочных тестов. |
Требования
- Visual Studio Ultimate
Создание пользовательского подключаемого модуля веб-теста производительности
Открытие проекта производительности и нагрузочного теста Интернета, содержащий веб-тест производительности.
Дополнительные сведения о создании производительность нагрузочного теста Интернета и проекты см. в разделе Практическое руководство. Создание и настройка тестовых проектов для автоматических тестов.
В обозревателе решений правой кнопкой мыши решение и выберите Добавить а затем выберите Создать проект.
Откроется диалоговое окно Добавление нового проекта.
В области Установленные шаблоны выберите Visual C#.
В списке шаблонов выберите значение Библиотека классов.
В текстовое поле Имя введите имя класса.
Нажмите кнопку ОК.
Новый проект библиотеки классов будет добавлен в обозреватель решений, а новый класс появится в редакторе кода.
В обозревателе решений щелкните правой кнопкой мыши папку Ссылки в новой библиотеке классов и выберите команду Добавить ссылку.
Появится диалоговое окно Добавление ссылки.
Выберите вкладку .NET, прокрутите вниз и выберите Microsoft.VisualStudio.QualityTools.WebTestFramework
Нажмите кнопку ОК.
Ссылка на Microsoft.VisualStudio.QualityTools.WebTestFramework будет добавлена в папку Ссылки в обозревателе решений.
В обозревателе решений щелкните правой кнопкой мыши на высшем узле производительность через интернет и проектах, содержащий нагрузочного теста нагрузочный тест, к которому нужно добавить подключаемый модуль тестов производительности через интернет и выбрать Добавить ссылку.
Появится диалоговое окно Добавление ссылки.
Выберите вкладку Проекты и выберите проект библиотеки классов.
Нажмите кнопку ОК.
Напишите код подключаемого модуля в редакторе кода.Сначала создайте открытый класс, производный от класса WebTestPlugin.
Реализуйте код внутри одного или обоих обработчиков событий PreWebTest и PostWebTest.Образец реализации см. в приведенном ниже разделе "Пример".
После написания кода выполните построение нового проекта.
Откройте веб-тест производительности.
Чтобы добавить подключаемый модуль тестов производительности в интернете выберите Добавить подключаемый модуль веб-тестов на панели инструментов.
Откроется диалоговое окно Добавить подключаемый модуль веб-тестов.
В области Выберите подключаемый модуль выберите класс подключаемого модуля веб-теста производительности.
В области Свойства выбранного подключаемого модуля задайте начальные значения для подключаемого модуля, которые будут использоваться во время выполнения.
Примечание С помощью подключаемых модулей можно предоставить доступ к произвольному количеству свойств; их необходимо сделать общедоступными, задаваемыми и относящимися к базовому типу, например к целочисленному, логическому или строковому.Кроме того, свойства подключаемого модуля веб-теста производительности можно изменить позже в окне "Свойства".
Нажмите кнопку ОК.
Подключаемый модуль будет добавлен в папку Подключаемые модули веб-тестов.
Внимание При запуске веб-теста производительности или нагрузочного теста, использующего данный подключаемый модуль, может появиться ошибка примерно следующего вида:
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 подключаемого модуля.
Удалите подключаемый модуль из теста или соответствующего расположения, а затем снова добавьте его.
Пример
В следующем коде создается пользовательский подключаемый модуль веб-теста производительности, который добавляет элемент к WebTestContext, представляющему итерацию теста.
С помощью этого подключаемого модуля после запуска веб-теста производительности можно отобразить добавленный элемент TestIteratnionNumer на вкладке Контекст средства просмотра результатов веб-тестов производительности.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
public class SampleWebTestPlugin : WebTestPlugin
{
// start counting iterations at 1 not 0
// so that the iteration number we give matches the run number
static int testIterationNumber = 1;
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
}
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
e.WebTest.Context["TestIterationNumber"] = testIterationNumber;
testIterationNumber++;
}
}
}
См. также
Задачи
Практическое руководство. Создание подключаемого модуля уровня запроса
Практическое руководство. Создание подключаемого модуля нагрузочных тестов
Практическое руководство. Создание кодированного веб-теста производительности