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