Поделиться через


Практическое руководство. Создание подключаемого модуля уровня запроса

Запросы представляют собой декларативные операторы, образующие веб-тесты производительности.Подключаемые модули веб-теста производительности позволяют изолировать и повторно использовать код вне основных декларативных операторов веб-теста производительности.Можно создать подключаемые модули и добавить их к отдельному запросу, а также к веб-тесту производительности, в котором он содержится.Настраиваемый подключаемый модуль запросов предлагает способ вызова кода при выполнении конкретного запроса в веб-тесте производительности.

Каждый подключаемый модуль запросов веб-теста производительности имеет метод PreRequest и PostRequest.После прикрепления подключаемого модуля запросов к определенному HTTP-запросу событие PreRequest инициируется перед отправкой запроса, а событие PostRequest — после получения запроса.

Настроенные подключаемые модули запроса веб-теста производительности можно создать с помощью пользовательского класса, производного от базового класса WebTestRequestPlugin.

Настроенные подключаемые модули запросов веб-теста производительности можно использовать с записанными веб-тестами производительности.Настроенные подключаемые модули запросов веб-теста производительности позволяют сократить до минимума объем создаваемого пользователем кода для достижения более высокого уровня управления веб-тестами производительности.Также они используются с закодированными веб-тестами производительности.Дополнительные сведения см. в разделе Практическое руководство. Создание кодированного веб-теста производительности.

Требования

  • Visual Studio Ultimate

Создание подключаемого модуля уровня запроса

  1. В обозревателе решений щелкните решение правой кнопкой мыши,выберите Добавить а затем выберите Создать проект.

    Откроется диалоговое окно Добавление нового проекта.

  2. В области Установленные шаблоны выберите Visual C#.

  3. В списке шаблонов выберите значение Библиотека классов.

  4. В текстовом поле Имя введите имя класса и выберите ОК.

    Новый проект библиотеки классов будет добавлен в обозреватель решений, а новый класс появится в редакторе кода.

  5. В обозревателе решений щелкните правой кнопкой мыши папку Ссылки в новой библиотеке классов и выберите команду Добавить ссылку.

    Появится диалоговое окно Добавление ссылки.

  6. Выберите вкладку .NET прокрутите список вниз, выберите Microsoft.VisualStudio.QualityTools.WebTestFramework а затем выберите ОК

    Ссылка на Microsoft.VisualStudio.QualityTools.WebTestFramework будет добавлена в папку Ссылки в обозревателе решений.

  7. В обозревателе решений щелкните правой кнопкой мыши верхний узел проекта анализа производительности и нагрузочного теста Интернета, содержащий нагрузочного теста, к которому нужно добавить подключаемый модуль запросов тестов веб-тест производительности.Выберите команду Добавить ссылку.

    Появится диалоговое окно Добавление ссылки.

  8. Выберите вкладку Проекты выберите проект библиотеки классов и выберите ОК.

  9. Напишите код подключаемого модуля в редакторе кода.Сначала создайте открытый класс, производный от класса WebTestRequestPlugin.

  10. Реализуйте код внутри одного или обоих обработчиков событий PreRequest и PostRequest.Образец реализации см. в приведенном ниже разделе "Пример".

  11. После написания кода выполните построение нового проекта.

  12. Откройте веб-тест производительности, к которому необходимо добавить подключаемый модуль запросов.

  13. Щелкните правой кнопкой мыши запрос, к которому требуется добавить подключаемый модуль запросов, и выберите команду Добавить подключаемый модуль запросов.

    Откроется диалоговое окно Добавить подключаемый модуль запросов веб-теста.

  14. В области Выберите подключаемый модуль выберите новый подключаемый модуль.

  15. В области Свойства выбранного подключаемого модуля задайте начальные значения для подключаемого модуля, которые будут использоваться во время выполнения.

    ПримечаниеПримечание

    С помощью подключаемых модулей можно предоставить доступ к произвольному количеству свойств; их необходимо сделать общедоступными, задаваемыми и относящимися к базовому типу, например к целочисленному, логическому или строковому.Кроме того, свойства подключаемого модуля веб-теста производительности можно изменить позже в окне "Свойства".

  16. Нажмите кнопку ОК.

    Подключаемый модуль добавляется в папку Подключаемые модули запросов, которая является дочерней папкой 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), однако подключаемый модуль по-прежнему ссылается на исходную версию подключаемого модуля.Чтобы устранить эту проблему, выполните следующие действия.

    1. В проекте производительности и нагрузочного теста Интернета, отображается предупреждение в ссылках.Удалите и вновь добавьте ссылку на библиотеку DLL подключаемого модуля.

    2. Удалите подключаемый модуль из теста или соответствующего расположения, а затем снова добавьте его.

Пример

С помощью показанного ниже кода можно создать настраиваемый подключаемый модуль веб-теста производительности, который отображается в двух диалоговых окнах.В первом диалоговом окне отображается 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);
        }
    }
}

См. также

Задачи

Практическое руководство. Создание пользовательского правила извлечения для веб-теста производительности

Практическое руководство. Создание пользовательского правила проверки для веб-теста производительности

Практическое руководство. Создание подключаемого модуля нагрузочных тестов

Практическое руководство. Создание кодированного веб-теста производительности

Практическое руководство. Изменение существующего веб-теста производительности с помощью редактора веб-тестов производительности

Ссылки

WebTestRequestPlugin

Другие ресурсы

Создание и применение пользовательских подключаемых модулей для нагрузочных тестов и веб-тестов производительности