如何在Jmeter中计算每秒运行的线程数

时间:2019-08-29 10:16:21

标签: jmeter performance-testing

我对Jmeter测试配置非常困惑。我找到了很多答案,但没有一个可以清除我的疑问。我的线程组包含10个线程,所有线程都处于活动状态。我想每秒向服务器发送20个请求。加载需要持续60秒。

我放

线程数:20 加速时间:1 循环计数:60

持续60秒每秒发出20个请求是正确的方法吗?

3 个答案:

答案 0 :(得分:0)

对于每秒请求,我们不应该手动计算,而要让JMeter头疼。只要确保有足够的线程来达到TPS和JMeter将控制步调即可。如果线程数较少而每秒请求数较多,则JMeter无法做到任何事情,并且RPS将无法满足。

使用吞吐量整形计时器来实现每秒的请求Throughput Shaping Timer

我需要多少个线程才能产生所需的RPS? 线程池的大小可以像RPS * <max response time> / 1000一样进行计算。所需的速率越高,您将需要的线程越多。响应时间服务越多,您将需要更多的线程。

例如,如果您的服务响应时间可能是2.5秒,目标rps是1230,则您必须具有1230 * 2500 / 1000 = 3075个线程。

最好有一些线程开销来处理意外的响应时间峰值。但是请注意开销过多,这将导致“最终峰值”。

在线程组和吞吐量整形计时器中使用以下设置: 如果未达到20 TPS,则增加线程数。

enter image description here enter image description here

答案 1 :(得分:0)

您可以使用步进线程组或并发线程组代替基本线程组来获得所需的结果。

https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/

Stepping Thread Group

答案 2 :(得分:0)

只有在以下情况下,您的配置才正确:

  1. 您只有一个Sampler
  2. 它的响应时间等于至1秒

正确的配置类似于:

enter image description here

最好的方法是将Concurrency Thread GroupThroughput Shaping Timer组合使用。它们可以通过Feedback Function连接在一起,如果当前数量不足以进行所需的负载,则允许并发线程组启动更多线程。