jmeter 之负载测试
jmeter负载测试,会讨论到持续稳定地增加系统的负载。
负载测试的目的,结合响应时间,tps,hps,活动线程,测试软件的数据吞吐量(TPS)上限,求出系统最大系统最大并发用户,找出系统瓶颈点;
在平衡状态下,并发数=RPS*响应时间;可参考https://help.aliyun.com/product/29260.html?spm=a2c4g.11186623.6.540.1d4411a4GB0RBd
负载测试模型有两种:一种是用户并发模式的负载[a.阶梯加压线程组 bzm - Concurrency Thread Group],一种是吞吐量模式的负载[a.持续的增加RPS,jp@gc - Throughput Shaping Timer,即每秒请求数;b.持续的增加TPS,bzm - Free-Form Arrivals Thread Group,即每秒事务数 / 每秒处理完成的业务 ]
jmeter中,线程数可以看做是虚拟并发用户。那么我们想要稳定的增加负载,就需要持续不断地增加并发数。通过并发数的不断增加来考量各种性能指标的变化,找到拐点。
tps是用来衡量服务端的性能,是有上限的。也就是说我们持续增加的负载不可能超过服务端的吞吐量上限值;
如下图,阶梯加压线程组(并发线程组),目标并发数(线程数)500,上升时间(线程启动时间)60s,目标并发阶梯数4,达到目标并发之后的持续时间30s;
可解释为:预期500个用户(线程)并发分4个阶段,每隔15s增加125并发;增长到目标500并发,持续15+30s;
如下图,通过rps定时器来控制我们的压力引擎:0到30s 每秒请求数由1/s均匀的增加到500/s;第30s-70s,rps有由500/s均匀的增加到1000/s;以此观察平均每秒的点击数、吞吐量;
如下图;希望60s内每秒处理完成的业务数从1均匀的增加到1000/s;以此观察平均每秒的并发数;