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


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

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

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

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

Требования

  • Visual Studio Ultimate

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  11. Выберите вкладку .NET прокрутите список вниз, а затем выберите *** Microsoft.VisualStudio.QualityTools.LoadTestFramework ***.

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

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

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

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

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

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

  17. В редакторе кода добавьте инструкцию using для пространства имен Microsoft.VisualStudio.TestTools.LoadTesting.

  18. Реализуйте интерфейс ILoadTestPlugin для класса, созданного в проекте библиотеки классов.Образец реализации см. в приведенном ниже разделе "Пример".

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

Пример

В следующем примере показан подключаемый модуль нагрузочных тестов, выполняющий пользовательский код после наступления события LoadTestFinished.Если этот код выполняется на агенте тестирования на удаленном компьютере, а агент тестирования не имеет службы SMTP локального узла, нагрузочный тест останется в состоянии "Выполняется", поскольку открыто окно сообщения.

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

В следующем фрагменте кода необходимо добавить ссылку на System.Windows.Forms.

using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;

namespace LoadTestPluginTest
{
    public class MyLoadTestPlugin : ILoadTestPlugin
    {
        LoadTest myLoadTest;

        public void Initialize(LoadTest loadTest)
        {
            myLoadTest = loadTest;
            myLoadTest.LoadTestFinished += new
                EventHandler(myLoadTest_LoadTestFinished);
        }

        void myLoadTest_LoadTestFinished(object sender, EventArgs e)
        {
            try
            {
                // place custom code here
                MailAddress MyAddress = new MailAddress("someone@example.com");
                MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
                MyMail.Subject = "Load Test Finished -- Admin Email";
                MyMail.Body = myLoadTest..Name + " has finished.";

                SmtpClient MySmtpClient = new SmtpClient("localhost");
                MySmtpClient.Send(MyMail);
            }

            catch (SmtpException ex)
            {
                MessageBox.Show(ex.InnerException.Message +
                    ".\r\nMake sure you have a valid SMTP.", "LoadTestPlugin", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
            }
        }
    }
} 

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

См. также

Задачи

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

Ссылки

ILoadTestPlugin

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

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