Как создать одновременную загрузку пользователя в Jmeter

У меня есть тест, в котором пользователи войдут в систему и вводят ключевое слово поиска в поле поиска и получат результаты. Наконец выходит из системы.

Теперь я хочу протестировать concurrency с помощью Jmeter. Так вот что я придумал.

Test plan
  Thread group
  + Login request
    + Synchronizing Controller
  + Search string 
    + Synchronizing Controller
  + Logout 

Я добавил 10 в число потоков. Я добавил 5 в Synchronizing Controller. Итак, когда я запускаю тест, я получу concurrency из 5 пользователей? Пользователи Rest 5 будут одновременно пользователями?

Также я зависел от запроса при загрузке страницы входа. Поэтому для достижения concurrency при входе в систему я добавил весь запрос в контроллер транзакций и добавил контроллер синхронизации в качестве дочернего элемента для контроллера транзакции. Пожалуйста, дайте мне знать, правильно ли я делаю это.

Также, пожалуйста, дайте мне знать, есть ли другой способ достичь concurrency для конкретного действия (например: 5 пользователей, нажавших кнопку входа одновременно).

Ответ 1

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

Итак, о чем вы говорите, это попытка настроить JMeter для имитации нескольких одновременных запросов. Но на самом деле там гораздо лучший подход. Вместо того, чтобы сосредоточиться на попытке одновременно использовать один и тот же запрос, что неудивительно в JMeter, вы должны настроить ваш тест как реалистичное представление о том, какую нагрузку вы хотите поддерживать в своем приложении. Если вы сделаете это хорошо, используя случайное время ожидания, контроллеры пропускной способности и реалистичное количество потоков, то вы будете автоматически тестировать concurrency и одновременно выполнять подлинные, действительные и полезные тесты производительности.

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

Дополнительный бонус к этому подходу заключается в том, что у вас будет гораздо меньше шансов поднять ложные негативы. Например, если вы нажмете на свой сервер 5 одновременных запросов на вход, вы можете обнаружить, что этот вызов однопоточен и время ответа увеличивается. Но, возможно, это не имеет значения, возможно, шансы на два входа в систему одновременно настолько малы, что не стоит тратить время на изменение кода. Это очень важная концепция тестирования нагрузки - возможно, самая важная - у вас должны быть реалистичные цели, без них вы можете запускать тесты, находить ложные ошибки и обычно тратить время навсегда.