#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-й запрос
- 2-й пользователь запускает 2-й запрос
- 2-й пользователь запускает 1-й запрос
- 1-й пользователь запускает 3-й запрос
- и т.д.
Вы можете увидеть это сами, если добавите ${__threadNum}
функцию в качестве префикса или постфикса для метки вашего запроса (или контроллера транзакций) и, в конечном итоге, ${__groovy(vars.getIteration(),)}
функцию для отображения текущего номера цикла
С 1 пользователем:
С 2 пользователями:
С 2 пользователями и 2 итерациями:
Как видно из приведенных выше изображений, каждый пользователь выполняет сэмплеры последовательно на каждой итерации, эти «несоответствия» ошибочно интерпретируются из-за параллелизма
См. Apache JMeter Functions — Вводная статья, чтобы ознакомиться с концепцией функций JMeter