【问题标题】:JMeter parallel requests with server-sent-events带有服务器发送事件的 JMeter 并行请求
【发布时间】:2016-11-30 03:06:53
【问题描述】:

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


    【解决方案1】:

    我认为你必须实现自己的类。

    首先,作为上交所的客户,你应该看看这个:

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

    并将它与这个 GUI 一起使用:

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

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      相关资源
      最近更新 更多