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

Fri*_*iso 13 java jmeter server-sent-events

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

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

ThreadGroup
 |
 + request 1
 + request 2
 ...
 + request N
 + Transaction controller
 |  |
 |  + While controller
 |     + polling request
 |
 + request N+1
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西

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
Run Code Online (Sandbox Code Playgroud)

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

Groeten,

弗里索

UBI*_*ACK 3

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

首先,作为上交所的客户,您应该看一下:

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

并将其与此 GUI 一起使用:

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

  • SSESampler 采样器可以在 2 种模式下工作:
    • 阻塞直到收到服务器的响应,这样您就可以对结果进行断言
    • 启动一个线程(最好使用线程池或反应堆模式)来监听服务器,一旦获得响应,我们必须找到一种方法让初始线程能够访问它并断言。我们可以使用线程安全的共享映射,其中数据将由传递到 SSESampler 的一些数据作为键控

这些只是初步想法,还需要更多工作。