Практическое руководство. Создание подключаемого модуля веб-теста производительности
Подключаемые модули веб-тестов производительности позволяют изолировать и повторно использовать код вне основных декларативных операторов веб-теста производительности. Пользовательский подключаемый модуль веб-теста производительности предлагает способ для вызова того же кода при выполнении веб-теста производительности. Подключаемый модуль веб-теста производительности выполняется один раз для каждой итерации теста. Кроме того, при переопределении методов PreRequest и PostRequest в подключаемом модуле теста эти модули запросов будут выполняться до и после каждого запроса соответственно.
Пользовательские подключаемые модули веб-теста производительности можно создать с помощью пользовательского класса, производного от базового класса WebTestPlugin.
Использование пользовательских подключаемых модулей веб-тестов производительности с записанными веб-тестами производительности позволяет сократить до минимума объем создаваемого пользователем кода для достижения более высокого уровня управления веб-тестами производительности. Также они используются с закодированными веб-тестами производительности. Для получения дополнительной информации см. [удалено] Практическое руководство. Создание кодированного веб-теста производительности.
Примечание
Возможно также создание подключаемых модулей нагрузочных тестов.Для получения дополнительной информации см. Практическое руководство. Создание подключаемого модуля нагрузочных тестов.
Требования
- Visual Studio Ultimate
Создание пользовательского подключаемого модуля веб-теста производительности
Откройте проект веб-тестов производительности и нагрузочных тестов, содержащий веб-тест производительности.
Дополнительные сведения о создании проекта веб-тестов производительности и нагрузочных тестов см. в разделе Практическое руководство. Создание и настройка тестовых проектов для автоматических тестов.
В обозревателе решений щелкните правой кнопкой мыши решение, выберите команду Добавить и выберите пункт Новый проект.
Откроется диалоговое окно Добавление нового проекта.
В области Установленные шаблоны выберите Visual C#.
В списке шаблонов выберите значение Библиотека классов.
В текстовое поле Имя введите имя класса.
Нажмите кнопку ОК.
Новый проект библиотеки классов будет добавлен в обозреватель решений, а новый класс появится в редакторе кода.
В обозревателе решений щелкните правой кнопкой мыши папку Ссылки в новой библиотеке классов и выберите команду Добавить ссылку.
Откроется диалоговое окно Добавление ссылки.
Перейдите на вкладку .NET, прокрутите вниз и выберите пункт Microsoft.VisualStudio.QualityTools.WebTestFramework.
Нажмите кнопку ОК.
Ссылка на Microsoft.VisualStudio.QualityTools.WebTestFramework будет добавлена в папку Ссылки в обозревателе решений.
В обозревателе решений щелкните правой кнопкой мыши верхний узел проекта веб-тестов производительности и нагрузочных тестов, в который требуется добавить подключаемый модуль веб-теста производительности, и выберите команду Добавить ссылку.
Появится диалоговое окно Добавление ссылки.
Перейдите на вкладку Проекты и выберите проект библиотеки классов.
Нажмите кнопку ОК.
Напишите код подключаемого модуля в редакторе кода. Сначала создайте открытый класс, производный от класса WebTestPlugin.
Реализуйте код внутри одного или нескольких обработчиков событий. Образец реализации см. в приведенном ниже разделе "Пример".
После написания кода выполните построение нового проекта.
Откройте веб-тест производительности.
Чтобы добавить подключаемый модуль веб-теста производительности, выберите команду Добавить подключаемый модуль веб-тестов на панели инструментов.
Откроется диалоговое окно Добавить подключаемый модуль веб-тестов.
В области Выберите подключаемый модуль выберите класс подключаемого модуля веб-теста производительности.
В области Свойства выбранного подключаемого модуля задайте начальные значения для подключаемого модуля, которые будут использоваться во время выполнения.
Примечание
С помощью подключаемых модулей можно предоставить доступ к произвольному количеству свойств; их необходимо сделать общедоступными, задаваемыми и относящимися к базовому типу, например к целочисленному, логическому или строковому.Кроме того, свойства подключаемого модуля веб-теста производительности можно изменить позже в окне "Свойства".
Нажмите кнопку ОК.
Подключаемый модуль будет добавлен в папку Подключаемые модули веб-тестов.
Предупреждение
При запуске веб-теста производительности или нагрузочного теста, использующего данный подключаемый модуль, может появиться ошибка примерно следующего вида:
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, представляющему итерацию теста.
С помощью этого подключаемого модуля после запуска веб-теста производительности можно отобразить добавленный элемент TestIteratnionNumber на вкладке Контекст средства просмотра результатов веб-тестов производительности.
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
[Description("This plugin can be used to set the ParseDependentsRequests property for each request")]
public class SampleWebTestPlugin : WebTestPlugin
{
private bool m_parseDependents = true;
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
// TODO: Add code to execute before the test.
}
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
// TODO: Add code to execute after the test.
}
public override void PreRequest(object sender, PreRequestEventArgs e)
{
// Code to execute before each request.
// Set the ParseDependentsRequests value on the request
e.Request.ParseDependentRequests = m_parseDependents;
}
// Properties for the plugin.
[DefaultValue(true)]
[Description("All requests will have their ParseDependentsRequests property set to this value")]
public bool ParseDependents
{
get
{
return m_parseDependents;
}
set
{
m_parseDependents = value;
}
}
}
}
См. также
Задачи
Практическое руководство. Создание подключаемого модуля уровня запроса
Кодирование пользовательского правила извлечения для веб-теста производительности
Кодирование пользовательского правила проверки для веб-теста производительности
Практическое руководство. Создание подключаемого модуля нагрузочных тестов
[удалено] Практическое руководство. Создание кодированного веб-теста производительности
Ссылки
Другие ресурсы
Создание пользовательского кода и подключаемых модулей для нагрузочных тестов