目录
一、性能测试概述
1、概念
(1)什么是性能?
- 时间:系统处理用户请求的响应时间
- 资源:系统运行过程中,系统资源的消耗情况
(2)什么是性能测试?
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
(3)性能测试的目的
- 评估当前系统能力
- 评估软件是否能满足未来的需求
- 寻找性能瓶颈,优化性能
(4)性能测试和功能测试的区别联系
- 功能测试焦点是功能;性能测试焦点是时间与资源
- 一般先进行功能测试,再进行性能测试
二、性能测试类型
1、基准测试
(1)什么是基准测试?
- 狭义上:单用户测试(单用户循环多次得到的数据)
- 广义上:建立基准线,当系统的软硬件环境发生变化后再进行一次基准测试以确认变化对性能的影响。
- 基准测试不会单独存在
(2)基准测试数据的用途
- 为多用户并发测试和综合场景测试等提供参考依据
- 为系统或环境配置、系统优化前后的性能提升\下降提供参考指标
2、负载测试
(1)概念
通过逐步增加系统负载,以满足系统的性能指标,来找出系统所能承受的最大负载量的测试。
(2)注意
- 系统的最大负载量达到用户要求时,系统才能正式上线使用
- 通过负载测试,可以确认系统最大负载量和极限负载量
- 系统对外宣称的是最大负载量
- 负载测试一般是1-2小时
3、稳定性测试
(1)概念
在服务器稳定运行(用户正常的业务负载下)的情况下,对服务器进行长时间测试(1天-1周),并最终保证服务器在正式上线时能线上业务需求
(2)注意
系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用
4、压力测试
(1)概念
在系统处于强负载的情况下,查看系统是否存在功能隐患,系统是否存在良好的容错能力和可恢复能力
(2)测试场景
极限负荷下的破坏性压力测试
强负荷下的长时间的稳定性压力测试
5、并发测试
(1)概念
在短时间内发送多个请求,来验证服务器对并发的处理能力
(2)应用场景
抢红包、秒杀、报考四六级等
三、性能测试指标
1、响应时间
- 从用户发送请求,到用户接收到结果的总时间
2、并发用户数
- 某一时刻同时向服务器发送请求的用户数
3、吞吐量
- 单位时间内处理的客户端请求数据(体现软件系统的性能承受能力)
(1)单位:
- 每秒查询数(QPS) -- 接口请求
- 每秒事务数(TPS)-- 事务请求
4、点击数
- 客户端发送请求时,所有页面元素的请求总数
注意:
- 点击数不是页面上的一次点击,而是请求数(例如:进入页面的总的请求数)
- 只有web项目才有此指标
5、错误率
- 系统在负载情况(高负载)下,错误业务出现的概率
注意:
- 错误率是性能指标,不是功能上的随机bug
- 大多系统都要求错误率无限趋近于0
6、资源利用率
- 系统各种资源的使用情况
常用的资源指标(经验值,作为参考):
- CPU(使用率):不高于70%-80%
- 内存(使用率):不高于80%
- 磁盘IO(速率):不高于90%
- 网络(速率):不高于80%
四、性能测试流程
- 性能测试需求分析
- 性能测试计划及方案
- 性能测试用例设计(性能测试用例一般是系统测试用例的1%,所以挑选用例很关键)
- 性能测试执行
- 性能分析和调优
- 性能测试报告总结