2017-02-04 13 views
0

Я использую тест производительности Web-среды Visual Studio 2015 (.webtest) и имеет правило извлечения для захвата 8-значного числа, которое ссылается на номер чека (через внутренний текст) в параметр контекста.Webtest: редактирование параметра контекста во время тестового прогона

Если число содержит только 6 цифр, оно имеет два пробела перед номером чека. Это вызывает проблему, потому что я использую номер проверки в параметре формы, и эти пробелы должны быть переключены на нули (0).

Мой вопрос - это лучший способ справиться с этим сравнением? Есть ли способ редактировать параметр контекста (называемый «CheckNBR»), или я могу перезаписать правило извлечения, чтобы манипулировать параметром? Возможно, вместо этого создайте собственное правило извлечения? Я обожаю все это по этому поводу и не знаю, какие варианты работают лучше всего.

[Обновить] Вместо того чтобы определять наилучший способ, я перенаправляю вопрос на редактирование параметра контекста. Как только я установил параметр из правила извлечения, как я могу его отредактировать?

+0

Нет «лучшего способа», и задание такого вопроса, вероятно, исключает его здесь. Как вы говорите, есть несколько способов выполнения этой задачи. – AdrianHHH

+0

@AdrianHHH - Я обновил вопрос, чтобы спросить об изменении параметра контекста. – bigspank

ответ

0

Существует несколько возможных подходов.

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

Вы можете написать собственное правило извлечения, которое использует встроенное правило извлечения, а затем изменяет результат. Код, основанный на следующем (не проверен, не компилируется), должен работать. Конечно, вам нужно написать свою собственную версию ModifyTheTextAsNeeded. Затем измените веб-тест, чтобы использовать извлечение ниже вместо оригинала.

public class ExtractAndModifyHtmlTagInnerText : ExtractHtmlTagInnerText 
{ 
    public override void Extract(object sender, ExtractionEventArgs e) 
    { 
     base.Extract(sender, e); 

     string extractedText = e.WebTest.Context[this.ContextParameterName].ToString(); 
     string modifiedText = ModifyTheTextAsNeeded(extractedText); 
     e.WebTest.Context[this.ContextParameterName] = modifiedText 
    } 
} 

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

+0

оцените помощь. Я попробовал вариант создания плагина запроса и использовал PostRequest для обновления параметра контекста, где он извлекается. Пока это работает. – bigspank