Многопользовательский вход в JMeter - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь выполнить нагрузочное тестирование для приложения NodeJS, приложение позволяет один сеанс входа для пользователя.

Но, когда я попытался выполнить нагрузочное тестирование с 8 одновременными пользователями (используя те же учетные данные), это сработало.

Итак, я попытался создать 10 идентификаторов пользователей, добавил их в файл CSV, настроил «Конфигурация набора данных CSV» и «HTTP Cook ie Manager» и установил «Количество потоков» равным 80.

Когда я запускаю план тестирования, учетные данные не передаются каждому сеансу одинаково. Например, userID1 передается 3 раза, а userID2 - 7 раз.

Можете ли вы объяснить причину этого поведения и как запустить потоки с каждым удостоверением (8 сеансов для каждого удостоверения) из файла CSV?

Ответы [ 3 ]

1 голос
/ 02 марта 2020

Убедитесь, что вы установили параметры для CSV Data Set Config как All Threads для режима общего доступа и укажите минимальное значение ramp-up period (скажем, 1 секунда), чтобы каждый поток правильно считывал строки CSV без столкновений.

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

0 голосов
/ 02 марта 2020

JMeter работает следующим образом:

  1. Все потоки запускаются в границах периода наращивания, определенного вами в группе потоков
  2. Каждый поток начинает выполнять Samplers вверх ногами (или в соответствии с Logi c Controllers ) так быстро, как может
  3. JMeter ожидает, пока предыдущий запрос не завершится sh перед запуском следующего Sampler
  4. Когда у потока больше нет сэмплеров для выполнения и циклов для итерации - он отключается

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

Возможно, вы захотите проверить размер ответа, поскольку для успешных запросов он должен быть более или менее одинаковым, и это может быть ситуация, когда сервер возвращает HTTP-код состояния 200 , но ответ Тело содержит ошибки, так как некоторые входы в систему могут молча завершаться сбоем, в этом случае имеет смысл добавить Подтверждение ответа , чтобы добавить дополнительные проверки, например, наличие текста «Добро пожаловать» или ссылки «Выйти» или отсутствие текста ошибки или чего-либо еще.

0 голосов
/ 02 марта 2020

Что я могу понять, так это то, что вы пытаетесь выполнить 8 сеансов для каждого пользователя. Чтобы сделать это, вам нужно сделать 10 параллельных потоков и 8 итераций, что позволит вам получить 8 сеансов для каждого удостоверения. Но ваше требование состоит в том, чтобы запустить 80 одновременно работающих пользователей, а затем попытаться создать 80 пользователей и запустить тест.

...