代码之家  ›  专栏  ›  技术社区  ›  Nathan Drake

如何让JMeter用户不等待响应

  •  0
  • Nathan Drake  · 技术社区  · 2 年前

    我有一个简单的脚本: 1个线程组-循环10,用户1 我希望用户每秒发送一个请求,所以我添加了**恒定吞吐量计时器**,设置为60.0

    但我的问题是,每个请求大约需要5秒才能得到响应,这意味着即使有计时器,测试看起来也如下所示: 发送请求->等待响应5秒->发送另一个请求->再等等

    因此,循环10大约需要50秒才能完成。但我想要: 发送请求->不要等待响应,1秒后再次发送->1秒后再次发送->1秒后再次发送

    我试过使用恒定吞吐量定时器,但没有帮助。别有其他想法。一种解决方案是为请求设置超时,但在这种情况下,连接将关闭,不是吗?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Dmitri T    2 年前

    JMeter线程(和结果分析)模型假设在启动下一个请求之前等待响应,所以没有办法做到这一点。

    选项位于:

    1. 如果你想在10秒内每秒发送1个请求,你可以考虑使用 Throughput Shaping Timer Concurrency Thread Group 组合,如果您通过 Feedback Function JMeter将启动额外的线程,以达到并保持所需的吞吐量
    2. 您可以从发送HTTP请求 JSR223 Sampler 使用 Groovy language 通过 Future Tasks 但在这种情况下,您需要开发自己的处理和存储结果的逻辑
    3. 可以通过以下方式扩展JMeter creating your own JMeter Plugin (基本上是第2点,但对最终用户更友好,性能更好),您可以看看异步响应是如何在 HTTP2 Plugin for JMeter 源代码