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

时间:2016-07-26 12:48:47

标签: java jmeter server-sent-events

我有一个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

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

Groeten,

弗里索

2 个答案:

答案 0 :(得分:3)

我认为你必须实施自己的课程。

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

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

使用此GUI:

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

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

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

答案 1 :(得分:0)

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