Web Test Plug-in
В прошлой статье мы рассмотрели, как создавать базовый класс теста производительности и мы теперь добрались до первого плагина. Для чего он вообще нужен? Например, в ситуации, когда вам нужно составить рандомный email, или когда перед тестом нужно создать юзера, а после теста его удалить; возможности большие, осталось только научиться этим пользоваться.Web Test Plug-in - это обычный C# класс. Отличие всего в нескольких деталях, а именно:
1. Наследование.
Для того, чтобы плагин распознавался в студии именно как плагин, его нужно унаследовать от WebTestRequestPlugin.
2. Название основного метода.
По сути, мы не будем писать новый метод, мы будем перегружать один из уже существующих в WebTestRequestPlugin. Для примера я возьму метод PreRequestDataBinding, который выполняется перед запросом.
3. Исходящие данные
Если мы собираемся передавать какие-то данные из плагина в тест, их тоже нужно объявить и записать в аргументы.
Итак, суммируя всё вышесказанное мы получаем вот такой код, который создаст одну случайную числовую переменную и передаст её в тест
using System;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace WebAndLoadTestProject
{
public class WebPlugin1 : WebTestRequestPlugin
{
[Description("Context parameter for random number")]
public String ContextParameterRandomNumber { get; set; }
public override void PreRequestDataBinding(object sender, PreRequestDataBindingEventArgs e)
{
Random random = new Random();
double randomNumber = random.NextDouble();
e.WebTest.Context.Add(ContextParameterRandomNumber, randomNumber);
base.PreRequestDataBinding(sender, e);
}
}
}
И это всё, никаких хитростей, всё, что осталось сделать - подключить к тесту, что также делается в пару действий:
В классе webtest вызываем контекстное меню интересующего нас запроса и выбираем пункт Add Request Plug-in, не забывая билдить проект после добавления нового элемента. Если подключить не получается - убедитесь, что класс плагина имеет доступ public. Выберите свой из списка и он добавится в тест.
Обратите внимание на то, что в случае создания плагина, который будет выполнятся перед тестом наследование будет происходить от WebTestPlugin и добавляться плагин будет не к запросу, а к корневому элементу теста (WebTest1).
После того, как плагин добавился нужно зайти в его параметры, где вы найдете переменную ContextParameterRandomNumber, которую мы объявляли в плагине, здесь же ей нужно присвоить глобальное имя. Назовём её RandomNumber.
Переходим к запросу google.ru, и заменим параметр "q" на наше число из плагина. Для этого достаточно в поле Value вписать глобальное имя переменной в двойных фигурных скобках - {{RandomNumber}}, после чего значение подтянется автоматически.
Вот и всё, в следующей части поговорим об объединении множества webtest'ов в один loadtest.
Комментариев нет:
Отправить комментарий