1 测试结论
1.1 测试内容
1.2 测试总结
// 列出具体场景是否达标,不达标的场景瓶颈在哪里,存在哪些隐患,有哪些优化建议;有必要可对各个场景进行对比分析
// 重点指出本次测试的前提假设,例如,挡板设置、延迟
1.3 生产环境预估
// 依据本次测试结果,对生成环境相关指标需要有个推算和预估
1.4 参数调整
// 依据本次测试结果,给出相关重要参数的最优设置,例如:线程池大小、连接池大小等
1.5 不足及建议
// 描述本次测试存在的不足。(注:这里主要针对本次测试过程,而不是具体测试场景的问题)
// 例如,测试环境与正式环境相比存在哪些差异;所依赖的子系统不稳定,影响了测试效率;测试过程中,被测系统在未知的情况下发生变更;测试结果可能受到某些因素影响等等
2 测试环境
2.1 测试人员
人员 | 角色 |
---|---|
张三 | 测试开发接口 |
李四 | 项目接口 |
王五 | 测试开发 |
2.2 测试组网
// 描述实际测试过程中的简化组网图,标识出挡板,重点描述挡板细节,例如:挡板位置、策略、延迟
2.3 软硬件环境
// 列出压测客户端的个数,被测服务器各进程的部署,包括IP、端口、JVM参数、系统重要配置,如:线程池、数据库连接池等
2.4 压测客户端
// 如果采用第三方压测工具,主要描述清楚同时运行多少个压测客户端及运行环境的资源情况
// 如果采用 OPPO性能测试平台,采用下述模板内描述即可
机器IP | 进程说明 | CPU | 内存 | 说明 |
---|---|---|---|---|
性能平台 | ENGINE | 40核 | 64G | 由性能平台调度 |
2.5 被测服务器
// 列出数据库,网关,包括IP和端口;运行在虚拟机的进程,需关注是否跟其他压测节点部署在同一个物理机上
机器IP | 进程说明 | CPU | 内存 | 说明 |
---|---|---|---|---|
2.6 软件版本
项目 | 版本号 | 说明 |
---|---|---|
open-platform | release-20210505 | SpringMVC 实现 |
open-platform | release-20210601 | Restlight 实现 |
third-party | release-20210601 |
3 测试结果
3.1 测试接口:T01 开户
3.1.1 接口描述
// 描述该交易的执行流程,最好有对应的时序图(sequence diagram)、调用关系图 (Call Graph)
3.1.2 测试结论
// 列出该场景并发数、TPS、平均响应时间、最大、最小响应时间、成功率(超时)、重要调用接口耗时;
// 重要分析达到拐点时瓶颈在哪个子系统,最好还能具体到哪个服务,哪种系统资源吃紧,CPU、内存、磁盘IO、网络、数据库。
// 数据要能体现出性能拐点及前后的对比数据,如下表:
并发 | TPS | 平均响应时间(S) | 成功事务数 | 成功率 |
---|---|---|---|---|
100 | 50.00 | 0.8 | 20000 | 0.00% |
150 | 70.00 | 1.1 | 20000 | 0.00% |
200 | 90.00 | 1.6 | 20000 | 0.00% |
250 | 112.00 | 1.9 | 20000 | 0.00% |
300 | 121.00 | 2.4 | 19999 | 0.01% |
350 | 122.00 | 2.75 | 19766 | 1.17% |
400 | 119.00 | 3.8 | 15739 | 21.31% |
3.1.3 数据收集
// 瓶颈节点的CPU利用率、负载、内存、网络、磁盘IO的使用情况
// 直接和间接依赖接口的耗时、失败率统计数据
// 重要子系统和瓶颈节点的数据库的资源情况,是否有SQL慢查询
3.1.4 瓶颈分析
// 根据以上测试数据,分析出瓶颈在哪里,重点体现分析过程
// 针对瓶颈,还需要分析出达到该瓶颈后的预案有哪些?例如:增加机器;提高专线带宽
4 附录
4.1 参考资料
4.2 配置文件
4.3 原始测试数据
4.4 相关日志文件
// 测试过程中产生的重要日志,如文件较大,可指出服务器上的存放地址,便于回溯查验