性能测试概述
一、性能测试的概念
进行性能测试:满足 真实的业务场景需求(活动场景)、支持 大量用户。满足商户要求。
1、什么是性能:软件质量属性中的 “效率” 特性。
效率特性:时间特性(表示系统处理用户请求的响应时间),资源特性(表示系统运行过程中,系统资源的内耗情况。包括:CPU、内存、磁盘等)
2、性能测试:使用 自动化测试工具,模拟 不同的场景,对软件的各项性能指标进行测试和评估的过程
3、性能测试的目的
1、评估当前系统能力(如:验收第三方提供的软件,获取关键性能指标,与其他类型产品进行比较)
2、寻找性能瓶颈,优化性能
3、评估软件是否能够满足未来需要
4、功能测试 和 性能测试
焦点不一样
功能测试:验证软件系统操作功能是否符合产品的 功能需求规格 ,主要焦点在 功能(正向、逆向)
性能测试:验证软件是否满足 业务需求场景 ,主要焦点就是业务场景的满足 (时间、资源)
二、性能测试策略
1、基准测试
狭义:就是 单用户测试,测试环境确定后,对业务模型中的重要业务做单独测试,获取单用户运行时的各项性能指标。(单用户多次测试求平均值)
广义:就是测量和评估软件性能指标的活动。在某个时刻通过基准测试建立一个已知的 性能基准线 ,当系统软硬件环境发生变化 之后再进行一次基准测试以确定变化对性能的影响。
狭义:
广义:
2、负载测试
通过 逐步增加系统负载,确定在 满足系统的性能指标情况下,找出系统能够承受的 最大负载量 的测试。
3、稳定性测试
在服务器 稳定运行(用户正常业务负载下)的情况下进行 长时间测试(一天到一周等),并最终保证服务器能满足线上业务需求。
作用:系统在 用户要求的业务负载下 运行达到 规定时间 时,系统才能正是上线使用。
4、负载测试 和 稳定性测试 的图例(C-D为崩溃)
5、压力测试 和 并发测试
压力测试:在强负载下的测试,查看系统在 峰值情况下 的是否功能隐患、系统是否具有良好的 容错能力 和 可恢复能力。
测试场景:
1、极限负载情况下导致系统崩溃的破坏性压力测试(C-D区间)
2、高负载下的长时间的稳定性压力测试(B-C区间)
并发测试:极短时间内,发送大量请求,验证并发处理能力。
三、性能测试指标
一些经过运算得出的结果,来量化衡量某种操作的性能好坏,比如:错误率:0.5%
1、响应时间:指 用户 从客户端发起一个请求开始,到客户端接收到 从服务端返回的结果,整个过程所耗费的时间。
注意:通过 http 接口请求消息来测试。不包括:发消息时前端页面的处理时间 和 收到消息后前端界面的渲染显示时间。(下面步骤时间的总和)
2、并发数
某一时刻同时向服务器发送请求的用户数。(下面只有第三个才是并发数)
3、吞吐量
指的是 单位时间 处理的客户端 请求数量 , 直接体现软件系统的性能承载能力。
QPS(Query Per Second):每秒查询数,控制服务器 每秒 处理的指定 请求的数量。
TPS(Transactions Per Second):每秒事物数,控制服务器每秒处理的事物请求的数量。(支付操作的TPS为3倍的QPS)
4、点击数
指的是客户端向服务端发送请求时,所有页面资源元素(如:图片、链接、框架css,js等)的请求总数量。
注意:只有web项目才有此指标,点击数不是页面上的一次点击。
5、错误率
指的是系统在 负载情况 下,失败业务的概率。错误率 = (失败业务数 / 业务总数)* 100%。
注意:大多系统都会要求错误率无限接近于 0 ,错误率是一个性能指标,不是功能上的 随机bug。
6、资源使用率
指的是系统各种资源的使用情况,一般用 “资源的使用量 / 总资源可用量” * 100%。行成资源利用率。
CPU:不高于(75%-85%)、内存不高于80%、磁盘IO不高于90%、网路不高于80%。
四、性能测试流程
总流程图
1、性能测试需求分析
明确被测系统:熟悉被测系统的业务功能、技术架构
明确测试内容:业务角度(用户使用频率较高的关键业务功能)。技术角度(逻辑复杂度高的业务,数据量大的业务)
明确测试策略:负载测试、稳定性测试、并发测试。。。。
明确测试指标:有无明确指标(执行结果与预期指标对比)。无明确指标(查找资料、类似系统对比、对未来流量估量)
2、性能测试计划方案
测什么:项目背景、测试目的、测试范围(目的和范围)
谁来测:进度与分工、支付清单(时间安排、人员分工)
怎么测:测试策略、方法
3、性能测试用例(注意:步骤:)
4、性能测试执行
5、性能分析和调优
6、性能测试报告总结(性能测试环境不和功能测试一样,不能多个测试人员使用。因为不知道资源是谁消耗的)
测试报告是针对性能测试工作的总结,为软件后续验收和交付打下基础。
测试报告包含的主要内容:
测试工作的经过回顾、缺陷分析和调优、风险评估、性能测试结果、测试工作总结与改进