Параллельные запросы JMeter с серверами-отправленными событиями
У меня есть тест JMeter, где я в настоящее время использую цикл, чтобы узнать, является ли какое-то условие истинным. Вместо опроса я хотел (и может) использовать запрос на ресурс, который отправляет сервер-отправленные события (SSE). Способ, которым он должен работать, заключается в том, что поток SSE запущен и запускается другой поток, который выполняет запрос, который в конечном итоге приведет к отправке определенного события. Если это событие получено, обработка должна продолжаться.
Возможно, более ясное графическое изображение. Мой текущий script выглядит примерно так:
ThreadGroup
|
+ request 1
+ request 2
...
+ request N
+ Transaction controller
| |
| + While controller
| + polling request
|
+ request N+1
Мне хотелось бы что-то вроде этого
ThreadGroup
|
+ request 1
+ request 2
...
+ <help needed here>
| |
| + event thread
| | + request SSE
| | + onEvent x: y = true
| + action thread
| + request N
| + While y=false wait
+ request N+1
Возможно ли это? Если да, то как? Если нет, могу ли я создать пробник для этого? Любые указатели?
Groeten,
Фризо
Ответы
Ответ 1
Я думаю, вам придется реализовать свой собственный класс.
Во-первых, как клиент SSE, вы должны посмотреть на это:
Второй шаг - реализовать пользовательский сэмплер, который расширит этот класс:
И используйте его с этим графическим интерфейсом:
Теперь для самой сложной части (возможно, нам следует создать проект github, чтобы обсудить эту реализацию и как-то закончить вносить свой вклад в основной проект JMeter:-)):
- Сэмплер SSESampler может работать в двух режимах:
- Блокировать, пока он не получит ответ от сервера, таким образом вы можете утверждать результат
- Начать поток (лучше использовать пул потоков или шаблон Reactor) для прослушивания с сервера, как только он получит ответ, мы должны найти способ, чтобы начальный поток мог получить доступ к этому и утверждать. Мы могли бы работать с безопасным по потоку общим доступом к карте и где данные были бы привязаны к некоторым данным, переданным в SSESampler
Это только первоначальные идеи и нуждаются в дополнительной работе.
Ответ 2
Подумав о создании нового sse-плагина для jmeter, я нашел gatling.io, он поддерживает SSE gatling.io