一、负载测试
1、一个项目,你完全不知道应该用多少并发用户数来进行性能测试时,你需要通过负载测试来得到最大可接受的并发用户数,具体如下:
(1)如何猜测最大可接受的并发用户数的区间
①完全凭自己的猜测
②粗略的计算
50tps : 50*60*60*24 = 432w
二八原则(80%的请求发生在20%的时间里)
假设我们的生产环境日均访问量在500w
500w*0.8=400w
24*0.2*3600=17280s
tps = 400w/17280≈232
(2)负载测试、性能测试里面,我们都是通过并发用户数来驱动
(3)在线用户 并发用户数的关系,行业的经验:并发用户数约为我们在线用户数的5%-10%
(4)需求分析:功能测试的需求-》核心接口-》支持50tps的性能目标
二、性能测试相关线程组
在上一篇文章中,我们已经在使用性能插件jp*gc相关的线程组 Stepping Thread Group ,本章继续补充相关线程组。
性能测试实战(十):全链路性能测试_Lion King的博客-CSDN博客_全链路测试https://blog.csdn.net/weixin_43431593/article/details/122912228?spm=1001.2014.3001.55011、Arrival Thread Group 达到多少tps
target rate 把它理解为tps
2、Concurrency Thread Group 达到多少并发用户数
假设需要验证接口是否能支持1000个并发用户数
类似秒杀的需求(2000个并发用户,至少保持1000个tps小于1.5s)
(1)2000线程数运行一次(没经验就这么设计)
(2)真正的2000线程数,循环运行一段时间(几十到几分钟)
target Concurrency: 目标多少并发用户数
ramp-up : 用多长时间M
ramp-up step count: 次数N
我在M时间内,可以调整N次,来看并发用户数是否支持2000并发用户数
3、真正做性能测试注意细节
(1)一次性能测试执行结束之后,需要间歇一些时间再做第二次性能测试
(2)性能测试第一个命令top
首先要看load average的三个数据(1、过去1分钟平均负载;2、过去5分钟平均负载;3、过去15分钟的平均负载)。等到第一个数据基本不变或者小于cpu0.8倍的时候,可以进行第二次性能测试。
4、有时间规律的线程组 Ultimate Thread Group 终极线程组
初始化延迟时间: >= 上一行所有时间之和
负载测试使用的是Stepping Thread Group,那么如何用 Ultimate Thread Group做逐步增加用户数呢?首先要理解两个概念:
初始化时间 = 上一行的初始化时间+启动时间+期望运行时间
持续运行时间=上一行的所有时间之和,减去,当前这一行的时间之和
5、混合场景
(1)不同数量的并发用户数,使用不同的接口,向服务器同时发起请求
要使用多个线程组
多个线程组之间默认是并行执行的
多个线程组之间,参数值是不能直接跨线程组被调用的
跨线程组被调用可以使用属性或文件嫁接法
可以使用计数器来实现混合场景