性能测试报告模板
性能测试报告模板
1、引言
1.1 测试背景
【阐述本次测试的背景,为什么会进行这次压测,要达到的目的是什么】
1.2 术语定义
- 压力测试
主要模拟系统高峰时段的压力情景,并通过专业压力手段对系统施加大并发、大压力,来验证被测系统是否会产生宕机、应用异常终止、资源竞争异常、资源死锁、内存泄露等性能问题。
- 并发用户数
在同一时刻与服务器进行交互的在线用户数量
- 测试场景
通过组织若干类型、若干数量的虚拟用户来模拟真实生产环境中的压力情况
- 思考时间
虚拟用户思考时间,模拟真实用户在每一步操作提交之前的思考和数据输入时间
- 递增数量
在测试场景中,需要控制虚拟用户的数量以某种递增的方式逐渐增加,该数值表示每次递增用户的数量
- 响应时间
指对请求作出的响应所需要的时间(具体就是说从客户端开始发出请求,到服务器端响应请求的时间)
- TPS
每秒钟系统能够处理的交易或事务数量,它是衡量系统处理能力的重要指标
2、测试目标
- 保证xxx系统在生产环境的高角量下,性能满足XXX人员的操作需求
- 模拟系统在生成环境处理峰值的情况
- 检测软件中的问题:通过长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序或架构中的隐含的问题或冲突,从而修复体系中的薄弱环节
- 发现性能瓶颈,为后期性能调整提供参考依据
- 验证稳定性与可靠性:在一个近似生产负荷下执行测试一定的时间来评估系统稳定性和可靠性是否满足要求
3、测试范围
3.1、 测试系统范围
【阐述本次压测压那些系统,会不会对其他系统有影响,依赖系统需要不需要压测,具体到功能,为什么压,为什么不压】
3.2、交易选取
【参考测试方案,从测试方案中选取交易】
4、 测试指标要求
4.1、 总体指标
指标项 | 预期值 | 备注 |
---|---|---|
交易响应时间 | <1s | |
交易处理笔数 | TPS>70 | |
与关联系统交易处理笔数 | >200 | |
成功率 | >%99.99 | |
CPU使用率 | <80% | |
I/O使用 | <80% | |
内存使用 | <80% | |
并发用户数 | 满足性能指标的情况下,能承载的最大用户数 | |
其他 | ... | ... |
5、 测试环境
5.1、 系统架构图
【系统架构图】
5.2、测试环境拓补图
【网络拓补图】
5.3 被测系统软硬件配置
机器用途 | 机器类型 | IP | 内存 | 操作系统 | 软件名称 | 软件版本 | 备注 |
---|---|---|---|---|---|---|---|
服务器一 | PC server | host | 16G | Red Hat Enterprise Linux Server release 5.5 | Nginx | v1.20.1 | |
服务器二 | 小型机 | host | 16G | AIX Version 6.1 | DB | v10.1.0.4 | |
服务器三 | 云服务器 | host | 16G | Windows server 2003 | 晋升系统 | V1.2.5 | |
... | ... | ... | ... | ... | ... | ... | ... |
5.4、 系统配置
5.4.1、 JVM配置
序号 | 服务器IP | 参数 | 配置 |
---|---|---|---|
1 | xxx.xxx.xxx.xxx | web线程池WebContainer | 100-200 |
2 | xxx.xxx.xxx.xxx | JVM堆大小 | 1500 |
4 | xxx.xxx.xxx.xxx | 通用 JVM 参数 | |
5 | xxx.xxx.xxx.xxx | 线程池 | |
6 | ... | ... | ... |
5.4.2 DB配置
序号 | 服务器IP | 参数 | 配置 |
---|---|---|---|
1 | xxx.xxx.xxx.xxx | SHEAPTHRES | 262144 |
2 | xxx.xxx.xxx.xxx | SORTHEAP | AUTOMATIC(13107) |
3 | xxx.xxx.xxx.xxx | LOCKLIST | 786432 |
4 | ... | ... | ... |
5.4.3、测试工具
测试工具 | 版本 | 备注 |
---|---|---|
Jmeter | 5.2.1 | |
nmon |
6、测试结果记录
6.1.1、 单交易测试
- 交易一压测情况记录
- 五十线程,运行10分钟
交易名称 | 异常率 | TPS | 平均字节数 | 平均响应时间 | 最大响应时间 | 最小响应时间 |
---|---|---|---|---|---|---|
公司签章 | ||||||
作废流程 | ||||||
制章流程 | ||||||
... | ... | ... | ... | ... | ... | ... |
- 六十线程,运行十分钟
- 七十线程,运行十分钟
- 八十线程,运行十分钟
6.1.2、 混合场景测试
【过程类似单交易】
6.1.3、 稳定性测试
【记录下压测时间之内的服务器资源,tps波动,异常率,响应时间】
7、测试结果分析以及解决方法
序号 | 问题状态 | 问题描述 | 解决方法 | 修改人 | 备注 |
---|---|---|---|---|---|
1 | 未解决 | 客户查询单交易测试,200并发有部分交易失败,交易成功率为99.93%,TPS为271.527笔/秒,交易响应时间为0.59秒 | |||
2 | 未解决 | 首页单交易测试,50并发交易响应时间为21.236秒,比较长。 | |||
3 | 未解决 | sql语句查询时间太长【说明具体中哪一条sql语句】 | |||
... | ... | ... | ... | ... | ... |
8、测试结论
【阐述本次测试中得出的结论】
例如:
1、 在稳定性测试中,系统整体运行稳定,未出现内存溢出等异常情况。交易c出现交易时延随测试时间的推移逐渐增大现象,这与该交易流程中需要查询“历史呼出”记录有关,建议运行人员定期对数据库相关表收集统计信息
2、本次测试中系统处理能力的主要因素数为应用服务器CPU使用率过高(99.99%),建议开发人优化应用代码或提升服务器CPU数量。
9、测试遗留问题以及风险
【阐述本次压测结束后由于种种原因没有解决的问题和风险,为什么没有解决】