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

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

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

<code>Test plan
  Thread group
  + Login request
    + Synchronizing Controller
  + Search string 
    + Synchronizing Controller
  + Logout 
</code>

Я добавил 10 в число тем. Я добавил 5 в контроллере синхронизации. Так что, когда я запущу тест, я получу параллелизм 5 пользователей? Остальные 5 пользователей будут одновременно пользователями?

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

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

Ответы на вопрос(1)

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

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

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

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

 user116923619 апр. 2012 г., 07:44
Спасибо за предложения! Я получил решение.
 Oliver Lloyd18 апр. 2012 г., 09:11
Опять же, вам нужно понимать разницу между одновременным и одновременным. Они разные. Синхронный таймер даст вам одновременность, а несколько потоков - параллелизм.
 user116923618 апр. 2012 г., 08:10
Спасибо за отличное объяснение. Но моя ситуация немного отличается. Я просто хочу видеть, когда 5 пользователей одновременно нажимают кнопку входа и поиска, как реагирует мой сервер. Вот почему я использовал контроллер синхронизации. Когда я запустил свой тест с контроллером синхронизации, результаты, которые я получаю, немного отличаются. Я упомянул 10 потоков в группе потоков и 5 в синхронизации. Поэтому я подумал, что он будет работать как 5 одновременных пользователей и 5 одновременно. Но это не так, как оно работает. Тест отправляет логин и поисковый запрос в 2 пакетах. Каждая партия содержит 5 пользователей.
 Axel24 сент. 2014 г., 15:53
Очень информативно!! @OliverLloyd Пожалуйста, вы думаете, вы могли бы помочь мне с этим вопросомgoo.gl/URsAFM? Пожалуйста, мне действительно нужна помощь

Ваш ответ на вопрос