Jmeter性能测试-jp@gc

本文参考了:https://www.cnblogs.com/yagao/p/12614175.html

 

Throughput Shaping Timer 是用来控制吞吐量的定时器,通过延缓线程运行来整体控制取样器产生的RPS。

实际使用中:

1. 可以通过设置在不同吞吐量分别持续一段时间,考察系统在不同吞吐量情况下的稳定性

2. 可以通过设置随着时间持续增加的吞吐量,来探测系统吞吐量的的极限

 

举个例子:

1. 首先,创建一个线程组,这里我把线程数暂且设置为200,循环勾选为永远。在文章末尾解释为什么这样设置

 

 2. 在线程组内增加一个HTTP请求,这里以百度举个例子

 

 3. 加入Throughput Shaping Timer 定时器,设置起始终止RPS和持续时间,这里我采用了持续增加的方式。 

 

 4. 加入一个TPS监听器并执行测试看看效果,如下图所示: 随着时间的增加RPS逐步提升,实际的TPS也随之线性增长,说明目前还没有到服务器的极限

 

注意:

 End RPS 设置了RPS 上限,但要达到此值是需要线程(虚拟用户〉来执行的,所以我们先要预设够多的线程,不然RPS目标没法达到,JMeter 线程组在运行过程中是不会自动增加线程数的,只能一次性设置。下面有个计算线程数的公式。

比如一个请求响应时间为2秒,END RPS 为30,那么线程数:2*30=60  即:响应时间*RPS=所需线程数)。即大约要60个线程, 考虑到运行时诸多影响因素(线程数增加后响应时间增加了), 我们还需要预备更多的线程,也许我们加到70个线程才能满足要求,这只是一个估算值。不用担心线程数太多时RPS 会超End RPS, 此元件会自动延迟线程的运行来稳定RPS。

另外,线程组设置的循环是永远,但是因为有定时器的存在,脚本并不会停不下来,而是在定时器的时间结束后,脚本就会停止运行。

 

联系我:ryan255@163.com
github:https://github.com/ryan255
原文地址:https://www.cnblogs.com/ryan255/p/14406789.html