Постпроцессор JMeter, извлекающий javascript после оценки из тела ответа

#jmeter #post-processor

#jmeter #постпроцессор

Вопрос:

Тело ответа из POST содержит следующий javascript:

 var now = new Date();
document.location.href="/wwtb/entry.cgi?id=148e2743ad01572d55265c96ae91dc6camp;uid=qastudentamp;fromlogin=1amp;ts="   now.getTime();
  

Мне нужно извлечь значение ts после его вычисления, чтобы я мог передать его в качестве параметра при следующем ПОЛУЧЕНИИ.

Ответ №1:

Согласно главной странице проекта JMeter:

JMeter не является браузером, он работает на уровне протокола. Что касается веб-сервисов и удаленных служб, JMeter выглядит как браузер (или, скорее, несколько браузеров); однако JMeter не выполняет все действия, поддерживаемые браузерами. В частности, JMeter не выполняет Javascript, найденный на HTML-страницах. Он также не отображает HTML-страницы так, как это делает браузер (можно просмотреть ответ в формате HTML и т.д., Но временные интервалы не включены ни в какие выборки, и одновременно отображается только одна выборка в одном потоке).

Следовательно, вы не сможете извлечь значение «после его вычисления», потому что оно никогда не будет оценено.

Эквивалентом функции Date.getTime() в JMeter является функция__time(), поэтому, если вы разместите следующую конструкцию где-либо в своем плане тестирования:

 /wwtb/entry.cgi?id=148e2743ad01572d55265c96ae91dc6camp;uid=qastudentamp;fromlogin=1amp;ts=${__time()}
  

${__time()} Бит будет заменен текущей меткой времени во время выполнения:

введите описание изображения здесь

Ознакомьтесь с вводной статьей Apache JMeter Functions, чтобы ознакомиться с концепцией функций JMeter.