Посчитайте, сколько раз я получил конкретное слово из HTTP-ответа данных JMeter - PullRequest
0 голосов
/ 30 июня 2018

Я тестирую свой сервер балансировки нагрузки, где у меня есть две машины в качестве сервера и одна машина в качестве балансировщика. Я хочу знать, какая машина выходит из строя в конце теста и сколько раз. Я запрашиваю один и тот же файл на обоих серверах, который просто содержит "machine1" и "machine2".

Используемый алгоритм балансировки нагрузки - циклический перебор.

Когда я тестирую свой сервер с помощью JMeter, я получаю это тело как «данные ответа», и я создал регулярное выражение (Регулярное выражение Extractor), чтобы попытаться подсчитать, сколько раз я получаю «Machine2» и «Machine1» но не работает.

Так, например, в конце запроса 500 я хочу узнать, сколько раз Machine2 и Machine1 появляются в этих данных Responde.

Кто-нибудь может мне помочь?

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Самый простой способ - динамическое изменение имени сэмплера в зависимости от тела ответа.

  1. Добавьте JSR223 PostProcessor как дочерний элемент вашего запроса
  2. Поместите следующий код в область «Сценарий»

    prev.setSampleLabel(prev.getResponseDataAsString())
    
  3. Вот и все, вышеприведенный скрипт заменит имя вашего сэмплера данными ответа, так что вы сможете вычислить количество сэмплеров, попавших в ту или иную конечную точку, используя слушателей, таких как Совокупный отчет

Демо-версия:

JMeter Demo Amend Sampler Name


Не забудьте добавить DNS Cache Manager к вашему плану тестирования, так как в некоторых случаях JMeter может использовать только один адрес из-за кэширования ответов DNS, поэтому вся ваша нагрузка будет идти на один хост вместо распределения по узлам кластера

0 голосов
/ 01 июля 2018

Вы можете использовать Регулятор выражений как дочерний элемент вашего запроса,

Используйте Регулярное выражение для поиска, с | в качестве условия Или:

machine1|machine2

Используйте Шаблон $1$ и укажите значение Match Number как -1. созданная переменная положить machine например

Это сохранит количество вхождений в специальной переменной, заканчивающейся _matchNr, поэтому вы можете использовать:

${machine_matchNr}

Если для номера совпадения установлено отрицательное число, то обрабатываются все возможные совпадения в данных сэмплера. Переменные установлены следующим образом:

refName_matchNr - количество найденных совпадений; может быть 0

...