Load Test Plug-in
Итак, у нас есть 2 webtest'а объединенных в один loadtest. В прошлых частях я уже приводил примеры для чего может понадобиться плагин, сейчас предлагаю сразу перейти к его созданию.Как я уже говорил - плагины, это обычные классы, унаследованные от Web Testing, поэтому создаём новый класс в корневой папке проекта. Мы собираемся перегрузить метод Initialize() класса ILoadTestPlugin, который отвечает за действия перед тестом. Для наглядности поместим внутри абстрактный метод создания пользователя CreateUser(). Получаем следующее.
using System;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.LoadTesting;
namespace WebAndLoadTestProject
{
public class LoadPlugin : ILoadTestPlugin
{
[Description("Context parameter new user")]
public string ContextParameterNewUser { get; set; }
public void Initialize(LoadTest loadTest)
{
string newUser = CreateNewUser();
loadTest.Context.Add(ContextParameterNewUser, newUser);
}
}
}
Как видно, для того, чтобы переписать Initialize() нужно унаследоваться от класса ILoadTestPlugin. Снаружи мы создали параметр ContextParameterNewUser, внутри получили нового юзера и передали его в тест с помощью Context.Add. Теперь нужно сбилдить проект и перейти в loadtest. Далее, вызвать контекстное меню корневого элемента (LoadTest1) -> Add Load Test Plug-in. В открывшемся окне вы увидите на выбор ваши load плагины.
Здесь начинается самое интересное. Нужно передать значение NewUser в один из тестов, но в loadtest нет возможности его подставить в те места, где оно нужно. Методом проб и ошибок выяснилось, что достаточно просто объявить эту переменную в loadtest и в webtest подставить её в нужное место в двойных фигурных скобках. Т.е. мы уже определили её в loadtest (скриншот выше) как NewUser и теперь переходим в WebTest2 и подставляем.
Теперь, перед началом теста выполнится LoadTest Initialize(), где создастся пользователь и передаст его всем последующим сценариям, юзер подтянется везде, куда мы указали.
Запускаем LoadTest, получаем результаты и переходим к заключительной части цикла - разбор отчетов.
Комментариев нет:
Отправить комментарий