如何使 jmeter 达到目标吞吐量或尝试失败?

How to make jmeter reach target throughput or fail trying?

我有一个非常简单的 Web 服务,我正在尝试测量其在不同吞吐量下的延迟指标 -

如果被测系统无法处理目标吞吐量,我希望 Jmeter 保持相同的吞吐量,即使很多请求失败。

我尝试使用大量线程和恒定吞吐量计时器来实现它,但 Jmeter 往往根本没有达到目标吞吐量,而不是请求失败。

有什么建议吗?

恒定吞吐量计时器有 2 个主要限制:

  1. 它在 分钟 水平上足够准确,因此您需要确保您的测试足够长 运行(分钟或更长时间)。此外,它的效果不是立竿见影的,因此在负载测试的第一分钟,您需要使用 Thread Group 级别
  2. 上的 Ramp-Up Period 设置来控制虚拟用户到达率
  3. Constant Throughput Timer 只能暂停线程以限制它们的执行速率到"target throughput",它将无法启动任何额外的线程,因此请确保在线程组级别再次定义足够的虚拟用户

给定 Web 服务 == HTTP 传输和 HTTP 是有状态协议(每个 JMeter 线程(虚拟用户)将等待来自前一个 HTTP Request sampler prior to starting next one you can speed things up by defining a timeout for your HTTP Requests so they would fail earlier. The best place to put the timeouts is HTTP Request Defaults 的响应,这样您就可以在一个单一的为范围内的所有 HTTP 请求采样器拍摄


您可能还想尝试 Throughput Shaping Timer,它是 Constant Throughput Timer 的增强版。