AlreadyLoggedInException в JMeter через плагин XMPP - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь протестировать XMPP-сервер через Jmeter с плагином Blazemeter XMPP, плагин отличный, но я столкнулся с некоторой проблемой.

Мне нужно аутентифицировать двух пользователей и начать обмен сообщениями между ними (в одном потоке). После того, как первый пользователь подключился к серверу и вошел в систему (в первом контроллере транзакций), я создаю подключение для второго пользователя и пытаюсь войти в систему этим пользователем (во втором контроллере транзакций), но я получаю SmackException $ AlreadyLoggedInException. (Я хочу сделать это в одном потоке без файлов CSV, как в руководстве по Blazemeter).

Я обнаружил, что когда я пытаюсь создать соединение для второго пользователя, в заголовках запросов используются соединения _id и user_data из первого пользователь. В следующем примере сэмплера, который должен заставить пользователя войти в систему, в теле ответа указаны правильные данные, но в заголовках используются старые user_data и новый connection_id (из предыдущего запроса).

заголовки второго подключения request

заголовки запроса входа второго пользователя

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

Что я делаю не так? Как я могу аутентифицировать двух пользователей и начать обмен сообщениями между ними?

1 Ответ

0 голосов
/ 22 января 2020

Возможен обмен сообщениями между двумя пользователями в одной группе потоков, но при просмотре jmeter.log я вижу только 1 запущенный поток (виртуальный пользователь):

enter image description here

Это прекрасно объясняет ситуацию, так как на самом деле у вас есть только 1 соединение с 1 потоком и вы пытаетесь использовать разные учетные данные.

Если вы выполняете какую-либо форму функционального теста с 1 потоком - вам нужно будет отключить 1-го пользователя перед подключением 2-го пользователя.

В противном случае просто добавьте еще один поток в группу потоков и параметризуйте учетные данные , используя, например, Конфигурация набора данных CSV

Если вам нужно реализовать " чат ", как 2 пользователя, разговаривающие друг с другом, вы можете реализовать" ожидание "ответов, используя, например, плагин Inter-Thread Communication

...