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


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

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

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

Использование пользовательских подключаемых модулей веб-тестов производительности с записанными веб-тестами производительности позволяет сократить до минимума объем создаваемого пользователем кода для достижения более высокого уровня управления веб-тестами производительности. Также они используются с закодированными веб-тестами производительности. Для получения дополнительной информации см. [удалено] Практическое руководство. Создание кодированного веб-теста производительности.

Примечание

Возможно также создание подключаемых модулей нагрузочных тестов.Для получения дополнительной информации см. Практическое руководство. Создание подключаемого модуля нагрузочных тестов.

Требования

  • Visual Studio Ultimate

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

  1. Откройте проект веб-тестов производительности и нагрузочных тестов, содержащий веб-тест производительности.

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

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

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

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

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

  5. В текстовое поле Имя введите имя класса.

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

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

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

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

  10. Перейдите на вкладку .NET, прокрутите вниз и выберите пункт Microsoft.VisualStudio.QualityTools.WebTestFramework.

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

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

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

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

  14. Перейдите на вкладку Проекты и выберите проект библиотеки классов.

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

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

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

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

  19. Откройте веб-тест производительности.

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

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

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

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

    Примечание

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

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

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

    Предупреждение

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

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

Пример

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

См. также

Задачи

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

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

Кодирование пользовательского правила проверки для веб-теста производительности

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

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

Ссылки

WebTestRequestPlugin

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

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

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