Jmeter — Одновременный запуск многопоточных пользователей без влияния на поток

#jmeter

#jmeter

Вопрос:

У меня есть пользовательский поток (создать авторизацию заголовка base64> запрос на регистрацию> Регистрация> вход в систему> отправка данных), который я хочу запускать одновременно (100 пользователей).

Если я использую свойства потока как есть, он будет выполняться асинхронным способом. Примеры: Пользователь 3 попытается войти в систему с помощью токена пользователя 1, пользователь 40 зарегистрируется с заголовком регистрации, созданным для пользователя 24, и так далее.. Токен для входа извлекается из процесса base64, другой токен извлекается из ‘register-request’ и используется в качестве переменной в заголовке ‘registration’.

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

Есть ли способ сделать это?

Нитки

Поток

Ответ №1:

Обычно виртуальные пользователи JMeter хранят переменные в локальном хранилище потоков, поэтому, учитывая, что дизайн вашего плана тестирования хорош, каждый поток (виртуальный пользователь) должен использовать свой собственный заголовок.

Не зная подробностей о том, как генерируется ваш заголовок, трудно сказать, что не так, я бы рекомендовал использовать комбинацию прослушивателя Debug Sampler и View Results Tree и дважды проверить значение заголовка (и любые промежуточные переменные) — надеюсь, вы сможете определить причину. Если нет — вам нужно будет как-то поделиться планом тестирования где-нибудь.


Другие моменты, которые следует учитывать:

  1. Если вашему приложению требуется заголовок Auhtorization в форме, username:password закодированной в Base64, вам на самом деле не нужно генерировать заголовок вручную, вы можете использовать HTTP Authorization Manager, который автоматически генерирует и добавляет соответствующий заголовок к запросам. Ознакомьтесь с Как использовать базовую аутентификацию HTTP в статье JMeter для получения более подробной информации, если это необходимо.
  2. Существует функция __base64Encode(), которую вы можете использовать для кодирования пользовательской строки в Base64, функция может быть установлена как часть пакета пользовательских функций JMeter с помощью менеджера плагинов JMeter