JMeter与服务器发送事件的并行请求

问题描述 投票:13回答:2

我有一个JMeter测试,我正在使用循环来查明某些条件是否属实。我想(并且可以)在发送服务器发送事件(SSE)的资源上使用请求,而不是轮询。它应该工作的方式是,SSE线程被启动,而另一个线程被启动,它执行最终将导致发送特定事件的请求。如果收到该事件,则应继续处理。

也许图形化更清晰。我当前的脚本看起来像这样:

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

这可能吗?如果是这样的话?如果没有,我可以创建一个采样器来执行此操作吗?有什么指针吗?

问候,

弗里索

java jmeter server-sent-events
2个回答
3
投票

我想你必须实现自己的课程。

首先,作为SSE的客户,你应该看看这个:

第二步是实现一个扩展此类的自定义采样器:

并使用此GUI:

现在是最复杂的部分(也许我们应该创建一个github项目来讨论这个实现,并且一旦完成将其贡献给核心JMeter项目:-)):

  • SSESampler采样器可以在两种模式下工作: 阻塞直到它收到服务器的响应,这样你就可以断言结果 启动一个线程(更好地使用一个线程池或Reactor模式)来监听服务器,一旦得到响应,我们必须找到一种方法让初始线程能够访问它并断言。我们可以使用线程安全的Map共享,并且数据将通过传递给SSESampler的一些数据进行键控

这些只是最初的想法,需要更多的工作。


0
投票

在考虑为jmeter创建新的sse插件后,我找到了gatling.io,它支持SSE gatling.io

© www.soinside.com 2019 - 2024. All rights reserved.