У меня есть JMeter тесты, которые есть следующие действия:JMeter переменная сфера ниток
- Это делает запрос GET. Запрос возвращает некоторый идентификатор, который извлекается с помощью
Regular Expression Extractor
и устанавливается в переменнойmyId
. - Другой запрос GET выполняется с использованием этого идентификатора, сохраненного в
myId
. Важно, чтобы тот же идентификатор использовался как возвращаемый запросом ранее. Не любой другой идентификатор!
Этот простой сценарий отлично работает. Но когда я увеличиваю «количества потоков (пользователей)» от 1 до (скажем) 5, я бегу в проблемы параллелизма:
- Thread 1 делает запрос GET и присваивает идентификатор
myId
. - Нить 2 делает запрос GET и присваивает ID
myId
. - Теперь поток 1 снова запускается и выполняет второй запрос GET, но с неправильным идентификатором, так как поток 2 изменил его. Теперь все ломается.
Как этого избежать?
Переменные не разделяются между потоками. Второй поток не должен мешать вашему идентификатору потока-1. Скорее всего, вы повторите попытку или не сможете правильно восстановить идентификатор во второй итерации потока-1. Можете ли вы попробовать выполнить только один поток, но несколько циклов? – RaGe
Да, это было полезно, но оказалось, что проблема была где-то еще: я выполнил вход в систему перед моими испытаниями и сделал выход в цикле. Я все равно соглашусь с ответом, поскольку проблема решена, и Debug Sampler был хорошим намеком. –