一.性能测试的概念
1.1 性能测试的概念
(1) 性能:就是软件质量中的"效率"特性
时间:系统处理用户请求的响应时间;
资源:系统运行过程中,系统资源的消耗情况
(2) 性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程
(3) 性能测试目的: 评估当前系统能力;寻找性能的瓶颈,优化性能;评估软件是否能够满足未来的需要
1.2 性能测试和功能测试对比
功能测试:验证软件系统操作功能是否符合产品需求规格,主要焦点在功能(正向,逆向)
性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务的场景的满足(时间,资源),
注意点:只测试正向
一般项目中,先功能测试通过后,后进行性能测试
二. 性能测试策略
基准测试,负载测试, 稳定性测试, 并发测试,压力测试等
2.1 基准测试
狭义上讲: 就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户
运行时的各项性能指标。
广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知
的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
#基准测试的用途:
1:基准测试不会单独存在
2:为多用户并发测试和综合场景测试等提供参考依据
3:为系统/环境配置,系统优化前后的性能提升/下降提供参考指标
2.2 负载测试
通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试
系统最大负载量达到用户要求时,系统才能正式上线使用
2.3 稳定性测试
在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器
满足线上业务的需求
系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用
2.4 压力测试
在强负载下的测试,查看系统在峰值情况下是否功能隐患,系统是否具有良好的容错能力和可恢复能力
2.5 并发测试
并发测试:是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力
三. 性能指标
响应时间,并发数,吞吐量,点击数,错误率,资源利用率等
3.1 响应时间
响应时间:指用户从客户端发起一个请求开始,到客户端接收到从服务器返回的结果,整个过程所耗费的时间
组成:网络传输时间,服务器处理时间
注意点:
通过http接口请求信息来测试
不包括 发消息前端界面的处理时间和收到消息后前端页面的渲染显示的时间
3.2 并发数
并发(用户)数:某一时刻同时向服务器发送请求的用户数
案例:
场景1:淘宝商城,注册用户数5亿
场景2:当前登录了淘宝商城的用户数为200万
场景3:目前正在刷淘宝的用户数有500万
3.3 吞吐量
吞吐量(Throughput):指的是单位时间内处理的客户端请求数量,直接体现系统的性能承载能力
(1) 吞吐量:--QPS
QPS(query per second)每秒查询数:即控制服务器每秒处理的指定请求的数量
(2) 吞吐量:--TPS
TPS(Transactions per second)每秒事务数:即控制服务器每秒处理的事务请求的数量
(3) QPS和TPS的关系?
事务:即业务,页面上的一个事务,可能对应一个请求/多个请求
一个事务对应一个请求时: TPS=QPS
一个事务对应多个请求时:n*TPS = QPS
3.4 点击数
点击数:指客户端向服务器发送请求时,所有的页面资源元素(如:图片,链接,框架css,js等)的请求总数量
3.5 错误率
错误率:指系统在负载情况下,失败业务的概率,错误率=(失败业务数/业务总数)*100%
注意点:
大多系统会要求错误率无限接近0
错误率是一个性能指标,是高负载下的失败的业务的概率
3.6 资源利用率
资源利用率:是指系统各种资源试用情况,一般是用“资源的使用量/总的资源可用量*100%”形成资源
利用率的数据
四.性能测试流程
(1) 性能测试需求分析
(2) 性能测试计划及方案
测试的目的和范围
测试人员和分工
测试时间安排
测试的方法
测试风险评估
(3) 性能测试用例
(4) 性能测试执行
搭建环境,编写测试脚本,配置性能测试监控指标,执行测试脚本
(5) 性能分析和调休
说明:
性能测试分析人员经过对结果的分析以后,如果不符合性能需要,则会提出性能bug,然后由
开发人员进行后续的调优
(6) 性能测试报告
测试工作的经历回顾
缺陷分析和调优
风险评估
性能测试结果
测试工作总结与改进