JMeter, порядок выполнения неверен

#testing #automation #jmeter #performance-testing #jmeter-5.0

#тестирование #автоматизация #jmeter #тестирование производительности #jmeter-5.0

Вопрос:

У меня есть 4 названных контроллера транзакций

Trans_api1
__Http-запрос
Trans_api2
__Http-запрос
Trans_api3
__Http-запрос
Trans_api4
__Http-запрос

которые содержат Http-запросы, однако, когда я запускаю свой план тестирования, я хочу, чтобы они выполнялись в числовом порядке, но затем они выполняются случайным образом. Как мне исправить порядок, чтобы он выполнялся с 1-4?

Ответ №1:

Каждый поток JMeter (виртуальный пользователь) запускает сэмплеры вверх ногами, поэтому вам ничего не нужно делать, ваши запросы уже выполняются сверху вниз. Если вы запустите свой тест с 1 пользователем — вы увидите, что запросы выполняются последовательно.

Если вы видите какой-то «беспорядок», скорее всего, это вызвано параллелизмом, например

  1. 1-й пользователь запускает 1-й запрос
  2. 2-й пользователь запускает 2-й запрос
  3. 2-й пользователь запускает 1-й запрос
  4. 1-й пользователь запускает 3-й запрос
  5. и т.д.

Вы можете увидеть это сами, если добавите ${__threadNum} функцию в качестве префикса или постфикса для метки вашего запроса (или контроллера транзакций) и, в конечном итоге, ${__groovy(vars.getIteration(),)} функцию для отображения текущего номера цикла

С 1 пользователем:

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

С 2 пользователями:

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

С 2 пользователями и 2 итерациями:

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

Как видно из приведенных выше изображений, каждый пользователь выполняет сэмплеры последовательно на каждой итерации, эти «несоответствия» ошибочно интерпретируются из-за параллелизма

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