一,需求分析与测试设计
- 根据具体的性能测试需求,确定测试类型以及压测模块(web/mysql/redis/系统整体)
- 前期要与相关人员充分沟通,初步确定压测方案以及具体性能指标(比如跟产品确认这个产品预计的流量,转化为并发用户数,TPS,映射成我们的性能预期。跟研发确认被压服务的细节,可以更好的准备测试数据,提前规避压测风险。初步确认压测方案,性能指标)
- QA完成性能测试设计后,需要产出测试方案文档发送邮件到项目组,并且再次与相关人员沟通(或者组织性能测试评审),确认是否满足需求
二,环境设计与搭建
三,测试数据准备和构造
- 接口请求参数:自己构造/日志获取/上下关联;
- 数据表的数据填充;
- 如果是多接口,则需要结合业务场景设计请求比例;
四,性能指标预期
- 每秒请求数(QPS)
- 请求响应时间(最小,最大,平均)
- 错误率
- 机器性能:cpu idle 30%,memory无剧烈抖动或表示
- 压测过程接口功能是否正常
不同性能测试方式下指标预期会有差异
五,发压工具配置与脚本编写
1. 发压工具准备
Jmeter工具介绍
- 集成包,解压即可使用,windows,linux通用(依赖java环境)
- jmx脚本未xml文件,win,linux环境均可直接运行
- 多线程并发
- 运行完脚本会生成jtl日志,可在win环境界面工具中查看,统计
2. 脚本的编写
- http请求
- 其他
3.命令:
- 启动压测:./jmeter -n -t hb.jmx -l hb.jtl
六,测试过程
压测过程说明/共识
- 测试前环境检查:记录机器参数
- 启动压测:根据被压情况,调节并发量到合适的情况
- 查看记录各项性能指标
- nginx日志查看每秒请求数
- 查看nginx错误请求
- 查看机器参数:cpu idle,mem等
- 查看db,cache等数据是否写入正常
- 访问接口,查看功能是否正常
七,结果分析与测试报告
- 根据测试过程中记录的各项参数,结合压测工具产生的日志,对测试结果进行分析并产生测试报告
- 测试完成后,及时和相关人员沟通,确认是否满足需求
- 发送测试报告邮件
网友评论