一、性能测试概论
1、性能的概念
性能:就是软件质量属性中的“效率”特征,效率又可以划分为时间和资源
——时间:系统处理用户请求的响应时间
——资源:系统运行过程中,系统资源消耗的情况
2、性能测试的概念
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
3、性能测试的目的
评估当前系统的能力
寻找性能瓶颈,优化性能
评估软件是否能够满足未来的需要
4、为什么要进行性能测试
满足真实场景的业务需求,支持大量的用户
5、功能测试与性能测试的区别
功能测试:验证系统的功能需求规格。焦点:功能(正向、逆向)
性能测试:验证系统的业务需求场景。焦点:时间、资源
关系:一般项目中,先功能测试通过后,再进行性能测试
二、性能测试的分类
1、基准测试
(1)基准测试的概念
狭义上:就是单用户测试。(单用户多次循环得到的数据)
广义上:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响
(2)基准测试数据的用途
基准测试不会单独存在
为多用户并发测试和综合场景测试等提供参考依据
为系统/环境配置、系统优化前后的性能提升/下降提供参考指标
2、负载测试
(1)负载测试的概念
通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能承受的最大负载量的测试
(2)负载测试的作用
系统最大负载量达到用户要求时,系统才能正式上线使用
3、稳定性测试
(1)稳定性测试的概念
在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求
(2)稳定性测试的作用
系统在用户要求的业务负载下运行达到规定的时间下,系统才能正式上线使用
4、压力测试
(1)压力测试的概念
在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力
(2)测试场景
极限负载情况下的破坏性压力测试
高负载下的长时间的稳定性压力测试
5、并发测试
(1)并发测试的概念
并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力
(2)应用场景
特定活动场景,如:抢红包、秒杀、抢购等
(3)并发测试与负载测试的区别
并发测试:主要目的是测试极短时间内,并发请求时,系统资源争抢的问题(抢红包、秒杀)
负载测试:主要目的是测试高负载情况下,对系统资源的消耗,是否会耗尽的问题(双11活动)
三、性能测试的指标
1、响应时间
定义:指用户从客户端发起一个请求开始,到客户端接收到从服务端返回的结果,整个过程所耗费的时间
2、并发用户数
定义:某一时刻同时向服务器发送请求的用户数
3、吞吐量
定义:指的是单位时间内处理客户端请求数量,直接体现软件系统的性能承载能力
(1)QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求的数量
(2)TPS(Transactions Per Second)每秒事务数:即控制服务器每秒处理事务请求的数量
区别:事务即业务,页面上的一次操作,可能对应一个请求或多个请求(例如:支付操作事务会有查询账号余额请求、检验支付安全请求、发送支付请求等)
4、点击数
定义:指客户端想服务器发送请求时,所有的页面资源元素(如:图片、链接、框架、CSS、JS等)的请求总数量
注意:点击数是请求数,不是页面上的一次点击,而且只有web项目才有这个指标
5、错误率
定义:指系统在负载情况下,失败业务的概率。错误率=(失败业务/业务总数)* 100%
注意:错误率是一个性能指标,不是功能上的随机bug,随机bug是功能bug,要先解决随机bug才能进行性能测试
6、资源利用率
定义:是指系统各种资源的使用情况,一般用“(资源的使用量/总的资源可用量)*100%”形成资源利用率的数据
常见资源指标:
CPU使用率:不高于75%-85%
内存(大小)使用率:不高于80%
磁盘IO(速率):不高于90%
网络(速率):不高于80%
四、性能测试的流程
性能测试的核心:需求分析、性能测试执行、性能分析调优
1、需求分析
2、性能测试计划
(1)测什么
项目背景
测试目的
测试范围
(2)谁来测
进度与分工
交付清单
(3)怎么测
测试策略
3、性能测试用例
4、性能测试执行
5、性能测试分析与调优
说明:性能测试分析人员经过对结果的分析以后,如果不符合性能需求,则会提出性能bug,然后由开发人员进行后续的调优
6、性能测试报告
性能测试报告主要内容:
测试工作的经过回顾
缺陷分析和调优
风险评估
性能测试结果
测试工作总结与改进