吐血整理,性能测试总结分析,快速上手打通(一)
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、性能测试的测试流程
1)分析性能的需求–》需求从哪里来的?
–》① 业务和产品提出的 ② 测试提出的 ③ 客户提出的
2)执行性能测试的方案和计划,搭建性能测试环境
3)编写对应的性能测试用例 ==》设计对应的性能测试场景
4)在jmeter里面组件接口和开发性能测试脚本
5)执行性能测试
6)分析性能瓶颈,给出性能调优建议,得出性能测试报告
2、性能测试当中的并发测试,负载、压力、失效恢复测试
1)性能测试常见的类型:
并发测试,负载测试,压力测试,失效恢复测试
并发测试–》所有的用户在同一时间请求同一个接口(瞬间的)–》秒杀、抢红包
负载测试–》通过不断的增加用户和增加请求对服务器施加压力,找到瓶颈点和拐点–》比如,用100并发线程数持续加压5-10分钟
压力测试–》又称为稳定性测试、破坏性测试–》找到瓶颈点和拐点后,通过80-100%的TPS去持续进行施压30分钟,1个小时,2个小时,12个小时,24个小时等等,看看系统是否有内存泄露和内存溢出等问题
失效恢复测试==》主要是检查系统在出现故障之后,能否自动恢复到正常状态,以及恢复的过程是否正确,数据是否完整等
3、并发测试里面用户的概念
1)注册用户数 ==》50000个人注册
2)在线用户数 ==》5% ==》2500个人在线
3)并发用户数 ==》并发度1-5%*2500 ==》25=125个并发
【面试题】你在做并发测试的时候,怎么得到最佳或最优的并发用户数(并发线程数)
答:我会通过阶梯式加压的方式去进行测试,比如20-40-60-80-100-120-140-160,当接口响应时间不超过3秒,接近3秒,并且TPS最优,接口无报错,此时对应的并发线程数就是最优的并发用户数
TPS的计算公式:TPS=并发用户数/接口响应时间
注意:并发用户数并不是越高越好,并发用户数越高,带来响应时间也会增加,以及错误率也会提升
4、性能测试的指标
1)性能测试的目的:
不断的增加用户和请求对服务器施加压力,看服务器的性能表现
2)性能测试的指标
① TPS(transaction per second) --》每秒处理的事务数–》瞬间 --》可以使用jp@gc - Transactions per Second插件来监听
② 吞吐量(throughput)–》网络上行下载的数据量总和 --》是平均的TPS --》可以在聚合报告里面查看
③ QPS(query per second) --》每秒SQL语句的查询数
④ RPS(request per second)–》每秒的请求数
⑤ HPS (hists per second)–》每秒点击率
⑥ RT (response time)–》接口的响应时间
a、从客户端发送接口请求到服务器的时间 T1
b、服务器处理请求的时间 T2
c、服务器把处理好的请求返回给到客户端的时间 T3
d、客户端把接口响应数据渲染到前端页面的时间 T4
在jmeter里面的接口响应时间=T1+T2+T3
⑦ 事务
a、打开cms输入用户名和密码–点击登录 ==》这是一个事务 ==》1TPS=1QPS
b、打开cms输入用户名和密码–点击登录–添加用户–修改用户–删除用户 ==》也是一个事务 ==》1TPS=4QPS
结论:处理单接口事务的时候TPS和QPS是相等的,处理多接口事务的时候TPS和QPS是不相等的
⑧ 错误率 ==》事务的错误率 ==》不能报错
TPS是衡量服务器好坏的唯一指标,TPS越高服务器性能越好,TPS越低服务器性能越差
5、并发测试
1)相对并发测试:测试出来的数据不是很准确
2)绝对并发测试:所有的用户在同一时间请求同一个接口 ==》添加 同步定时器 (集合点)
6、单接口场景和混合场景负载测试
1)并发用户模型:不断的去增加用户数对服务器施加压力,站在用户的角度去思考问题
2)吞吐量模型:不断的增加请求出对服务器施加压力,站在服务器的角度去思考问题
单接口场景:登录接口
混合接口场景:登录接口+查询接口 ==》登录查询业务
单接口场景的TPS一般比多接口的TPS要高多
7、压力测试和性能测试需要关注的指标
1)业务指标:TPS、接口响应时间(接口平均响应时间,90%line)、错误率
2)硬性指标:CPU和内存的使用率低于70%,还有网络IO和磁盘IO
业务指标主要关注了:接口的平均响应时间、90%line、吞吐量tps(系统每秒处理事务数)、错误率
资源指标主要关注了: cpu、内存、磁盘、网络(i/o)
应用指标主要关注了:如空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等。
前端指标主要关注了:如页面加载时间、网络时间(DNS、连接时间、传输时间等)
我们当时规定的tps必须要达到270/s以上,接口的平均响应时间要小于3秒,错误率为0%,CPU和内存的使用率是需要低于70%以下的
8、通过jmeter -n -t XX.jmx -l XX.jtl -e -o ./report命令行做压测
9、性能测试结果分析和编写性能测试报告
有发参考的报告在QQ群里,自己可以去总结一下报告里面有哪些内容
10、性能测试的面试题
1)怎么找出性能测试的拐点?
答:TPS上升到最高点开始下降,响应时间开始上升的这个点就是性能的拐点和瓶颈点
2)怎么知道服务器所能承受的最大的并发用户数
我会通过阶梯式加压的方式去进行测试,比如20-40-60-80-100-120-140-160,当接口响应时间不超过3秒,接近3秒,并且TPS最优,接口无报错,此时对应的并发线程数就是最优的并发用户数
TPS的计算公式:TPS=并发用户数/接口响应时间
注意:并发用户数并不是越高越好,并发用户数越高,带来响应时间也会增加,以及错误率也会提升
3)求出最大的tps
可以使用jp@gc - Transactions per Second插件去看最高的TPS就是可以了
TPS的计算公式:TPS=并发用户数/接口响应时间
4)你们之前公司的tps能达到多少?
答:每个接口的TPS都是不一样的,增加类的接口TPS就会高一点,查询类的接口TPS就会低一点,==》800多TPS,1000多TPS
5)什么情况下TPS等于QPS?
处理单接口事务的时候TPS和QPS是相等的
6)你们在做性能测试的时候是用的单机去压测还是用的多机(分布式)
建议回答:是用的单机去压测的
7)如果不知道并发线程数数到底取多大,怎么操作?
我会通过阶梯式加压的方式去进行测试,比如20-40-60-80-100-120-140-160
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
| 下面是我整理的2026年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最珍贵的不是终点站的掌声,而是追梦路上的每一个脚印。当你觉得疲惫时,请记住:钻石经过打磨才能璀璨,雄鹰经历断羽才能高飞。你的坚持,正在书写属于自己的传奇篇章!
别让任何人定义你的极限!你拥有的不是天花板,而是等待突破的起点。那些看似不可能的梦想,终将在你日复一日的坚持中变得触手可及。你,就是自己人生的造梦者!
