一、性能测试概述
1、常规需求
2、用户反馈性能问题
3、对项目性能不放心
二、性能测试指标分析
1、多:可以支持更多的用户访问---用户数
2、快:用户体验舒畅---响应时间
3、好:访问都能成功,没有错误率---越低越好
4、省:达到预期效果,尽可能节省资源---服务器资源
5、系统吞吐量:TPS
三、熟悉业务
1、高频
2、核心
3、扎堆场景
四、熟悉项目的软件架构与部署
五、性能场景提取
◆场景性能指标要求
订单场景操作流程:
◆1、用户访问首页--登录---每一个用户一次
◆2、查看订单-点击订单管理
性能场景指标
◆验证最大在线用户数--(负载测试逻辑)
◆错误率<0.5%◆请求响应时间<5s
◆场景运行10分钟--不加同步定时器
◆服务器资源使用合理:
- cpu使用率<80%
- 内存使用率<80%
六、工具与脚本
1、工具:jmeter
优点:
- 多线程框架-支持请求并发操作
- 用于对服务器模拟巨大的负载
- 支持Web、数据库、FTP服务器等各类系统性能测试
- 开源、纯JAVA语言编写,可以进行二次开发
2、jmeter脚本
通俗:用户操作被测软件系统某场景的动作流程
JMeter:用户操作被测软件系统某场景的请求
3、脚本开发方式
- 接口文档开发脚本
- Fiddler抓包编写脚本
- 录制脚本(JMeter代理服务器录制、Fiddler抓包导出Jmx文件)
七、脚本开发
1、确认需要参数化的数据
2、准备好参数化的数据源
3、脚本中的常量改成变量 ${变量名}
八、搭建监控环境
监控方案介绍
1、收集器方式:
A.实时收集并且传输
B.离线传输
2、Nmon监控方案
A.离线方案,通过Nmon收集器收集数据,等场景运行完后,通过分析离线分析
B.实时方案:grafana nmon_exporter 实时
3、Grafana监控平台
A.工作原理
B.效果展示
4、优秀监控方案的特性
A.准确性要高
B.时效性要长
C.可视化要高
D.历史数据
E.警告通知
九、运行场景
1、查看聚合报表现象:响应时间、错误率、吞吐量
2、查看服务器资源--grafana看具体数据
3、使用Top指令查看哪一个进程使用CPU高
十、监控与分析
监控:
jmeter聚合报表 Grafana
分析流程
◆现象:Jmeter请求响应时间长
◆1、服务器资源使用情况
◆2、哪些进程占的资源---top
◆3、数据库性能分析
A.数据库慢查询,:show variables like "%query%";
B.从进程查看线程:top -H -p PID号
◆4、查看关键指标
◆5、打开相应日志
十一、性能调优
性能分析流程梳理(可看着患者看病就医流程)
十二、测试优化后的效果及导出测试报告
1、通过指令导出报告
jmeter -n -t test.jmx(脚本的绝对路径)-l result.jtl(自定义的名称)-e -o tmpresult_report(测试报告的绝对路径)
2、直接在Jmeter工具中鼠标右键导出报告
十三、性能测试报告的撰写
测试报告是整个性能测试环节的总结性工作:性能测试方案、场景、性能分析,结论
性能测试报告组成部分:
1、测试基本信息
测试目的、报告目标读者、.术语定义、参考资料
2、测试环境描述
服务器软/硬件环境、网络环境、测试工具、测试人员
3、测试案例执行分析
详细描述每个测试案例的执行情况.以及对应的测试结果分析
4、测试结果综合分析及建议
对本次性能测试做综合分析,并给出测试结论和改进建议。