如果你问
问题1:什么是压力测试
压力测试的方法,很多人可能只会回答“加线程组,合并,看结果”。 那么压力是什么,压力是从哪里出现的呢? 这些恐怕不知道。压力是什么? 实际上在压力测试中表示为RPS
是不是有点无知? 什么是RPS呢?
RPS是每秒请求数(Request Per Second ),表示冲压引擎实际对服务器施加的压力的大小。
Rps由并发行数和服务器的响应时间决定。 并发行数过低可能无法达到预期的RPS,并发行数过高可能会增加压力,服务器直接崩溃。
从
问题2:jmeter怎么调节压力
前的说明中可知,压力是每秒的请求数。 让我们来了解另一个名词ramp-up-period (秒)jmeter在线程组中具有可调整的值。 Ramp-up-period表示启动所有线程所需的时间,以秒为单位
如下图所示,以反复次数=1、Ramp-up-period=25设定了100个线程。 这意味着在25秒内启动100个线程,也就是1秒钟启动4个线程。
每个线程的启动间隔为25/100=0.25s秒,即250毫秒。
另一种理解方法表明,对服务器的压力预计是每秒发送4个请求。 也就是说,设定的RPS=4/s
如下图所示,现在不是能理解一点吗?
虽然监听程序无法直观地监视jmeter的RPS,但是请尝试通过侧面方式进行验证。
从下图右上角可以清楚地看到,我们100个线程用了25s才完全加载。 或者,使用25s终于成功发送了100个请求。 每秒的请求数为4
我们的脚本是单接口的,所以理论上,此时的TPS=HPS=RPS。 从下图可以看出我们的一些指标是4/s。
HPS
TPS
1010伙伴们在使用jmeter的时候,经常会晕throughput吗? 到处都是throughput,到底要做什么呢?
我们先来看看有什么样的throughput
元件定时器中有目标Constant Throughput 和 Throughput Shaping Timer
逻辑控制器中有吞吐量控制器
聚合报告中也有一个Throughput
先来理解一下什么是Throughput
Throughput是用来衡量吞吐量的指标,通常由TPS和QPS来表示。TPS表示每秒通过的事物数,QPS表示每秒查询接口数。jmeter中如果只有单接口,那么TPS=QPS。如果是多接口的混合场景,只有在事物控制器下执行,才能将其理解为TPS。聚合报告中的 Throughput
下图Throughput表示无限迭代下的业务吞吐量TPS,大约是99/s。意思就是每秒能处理99笔事物。或者可以理解为:每秒能处理完成的请求数是99
Constant Throughput Timer
现在我们在接口下添加一个 Constant Throughput Timer
这是一个吞吐量定时器,它可以控制我们的TPS。
如图,我设定了目标吞吐量是240/min,也就是4/s。
接下来运行的结果可以看到,无论我们预期的吞吐量有多大,实际的TPS都被强力压缩在4/s,同时我们的平均响应时间也变的很短
Throughput Shaping Timer
下图可以很明显看到它是用来控制RPS的,也就是每秒请求数。
start=1 end=100,持续时间是60。表示我们需要在60s内将RPS(每秒请求数)均匀的从1提升到100。
下面可以看出来我们的每秒请求数均匀的在提升
逻辑控制器-吞吐量控制器
这个控制器里的吞吐量,指的是请求比例。
比如我们总共发出9000个请求,这个控制器下的接口只会发送3000个,比例控制在30%
下面这张图更直观的说明了请求的比例分配
login1的控制器分配的比例是30%,剩余的70%都分给了login2的控制器