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

时间:2017-05-14 08:39:23

标签: jmeter stress-testing

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

enter image description here

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

我尝试使用大量线程和恒定吞吐量计时器来实现这一点,但Jmeter倾向于不能达到目标吞吐量而不是请求失败。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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

  1. 分钟级别上足够准确,因此您需要确保测试运行足够长(分钟或更长时间)。此外,它的效果不会立竿见影,因此在负载测试的第一分钟内,您需要使用Thread Group级别的“加速期间”设置来控制虚拟用户到达率
  2. 恒定吞吐量计时器只能暂停线程限制执行率到"目标吞吐量",它将无法启动任何额外的线程,以确保在线程组级别再次定义足够的虚拟用户
  3. 鉴于Web服务== HTTP传输和HTTP是有状态协议(每个JMeter线程(虚拟用户)将在开始下一个HTTP Request采样器之前响应来自前一个HTTP Request Defaults采样器的响应,您可以通过定义<您的HTTP请求的强>超时,因此它们会提前失败。放置超时的最佳位置是JMeter HTTP Request Defaults Timeout,这样您就可以一次性完成所有HTTP请求采样器的操作范围

    Throughput Shaping Timer

    您可能还想尝试Error tab completion in Sublimetext 3,它是恒定吞吐量计时器的一点点增强版本。