前言
在开始进行性能测试之前,应该设计好性能测试方案,一般来说包含测试背景、测试目的、术语定义、期望值、测试内容、测试用例和测试资源等方面。我根据几个方面并结合实际工作的项目总结下如何进行性能测试方案。
一、测试背景
如果是测被测服务的压力,了解瓶颈,参考:
本次测试要在当前使用的硬件架构作出定性和定量测试,通过测试找出当前硬件架构的性能瓶颈和最大用户量等相关数据并通过分析程序中的瓶颈和找出解决方案,并为今后类似部署架构提供参考。
- 测试在当前硬件条件下,系统主要功能点在期望压力下的运行情况,以及系统能得到最大限度利用且系统响应时间在用户能够接受的范围内的最大并发数。
- 检查系统处于压力情况下,应用系统的表现,重点检查系统有无出错信息产生,系统应用的响应时间、资源情况等。
- 通过压力测试,分析系统可能存在的性能瓶颈,发现系统中可能存在的性能缺陷。
二、测试目的
- 清楚服务的性能瓶颈,为设置接口的限流/熔断提供参考数据
- 判断资源是否溢出,可节省机器成本
- 检测系统可能存在的问题(代码、db、cache、系统配置、容量)
三、术语定义
术语 | 说明 |
---|---|
响应时间 | 包括“最大响应时间”和“平均响应时间”,是可以判断一个被测应用系统是否存在性能瓶颈的最直观的要素 |
并发用户数 | 系统所能承受压力的直接体现,当到达某个并发极限负载级别之后,响应时间将会急剧的增加。 |
四、期望值
1、资源利用率(为了提前预估风险,超过80%遇到某些异常或波动时,有概率达到100%利用率溢出导致服务宕机等情况)
- Cpu使用率:<80%
- 内存使用率:<80%
2、事务指标
- 平均响应时间:<1s (正常来说不能超过1s,超过1s在界面上用户是能感知得到的,比方说loading)
- 事务失败率 <0.01%
五、测试内容
- 此次压力测试实施是对xxxxx进行测试评估的过程,我们将依据系统(测试服务器)的实际运行现状,以此评判订单服务的整体性能的实际性能表现。
- 此处列举要测试的接口信息
序号 | 测试事务 | 备注 |
---|---|---|
1 | xxx接口 | 用户量较大 |
六、测试用例
XX接口(以订单查询接口为例)
场景一:
前置:在数据库上构建100W条订单数据(数据的订单号是根据t_1实现的递增)
操作步骤:1.在jmeter配置50线程数,持续执行15min
期望:
执行结果:
场景二:
前置:在数据库上构建100W条订单数据(数据的订单号是根据t_1实现的递增)
操作步骤:1.在jmeter配置100线程数,
期望:
七、测试资源
序号 | 用 途 | IP | 硬件环境 |
---|---|---|---|
1 | 性能测试压力机 | xxxx | 操作系统:Win 7内存: 8.00GB |
2 | 应用服务器 | xxxxx | 操作系统:Linux处理器:CPU 4核内存: 8.00GB |
3 | 数据库服务器 | 处理器:CPU 4核内存: 8.00GB |
评论区