性能测试基础
性能测试的概念
1、为什么要学习性能测试
- 业务需求、达到商用标准
- 比传统手工测试效益高
2、什么是性能测试
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
3、性能测试的目的是什么
- 评估当前系统能力
- 寻找性能瓶颈,优化性能
- 评估软件是否满足未来的需要
4、能测试和功能测试对比
功能测试:是否满足产品功能需求规格(正向:满足要求的操作、逆向:不满足条件的操作)
正向(功能),例如:输入正确的用户名密码,登陆成功
逆向(功能),例如:输入错误的用户名密码,登陆失败给出提示
性能测试:是否满足业务需求场景(时间、资源)
时间:100W用户使用正确的用户名密码登陆,1秒内登陆成功
资源:同时服务器CPU使用率低于70%、内存使用率低于60%等
焦点不同:功能(正向、逆向)、性能(时间、资源)
性能测试策略
基准测试
1、什么是基准测试
狭义:就是单用户测试。(单用户循环多次得到的数据)
广义:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
2、基准测试数据用途
1)基准测试不会单独存在;
2)为多用户并发测试和综合场景测试等提供参考依据;
3)为系统/环境配置、系统优化前后的性能提升/下降提供参考指标;
负载测试
1、什么是负载测试
通过逐步增加系统负载,确定在满足系统性能指标(响应时间等)情况下,找出系统所能承受的最大负载量的测试。
2、负载测试的作用
系统最大负载量达到用户要求时,系统才能正式上线使用
稳定性测试
1、什么是稳定性测试
在服务器稳定运行(用户正常的业务负载下)的情况进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。
2、稳定性测试的作用
系统在用户要求的业务负载下运行达到规定时间,系统才能正式上线使用
压力测试
1、什么是压力测试
在强负载下的测试,查看系统在峰值情况下是否存在功能隐患、系统是否有良好的容错能力和可恢复能力。
2、压力测试场景
1)极限负载情况下的破坏性压力测试
2)高负载下的长时间的稳定性压力测试
并发测试
1、什么是并发测试
并发测试(绝对并发):是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力
2、并发测试应用场景
特定活动场景,如:抢红包、秒杀、抢购等
性能测试指标
什么是性能测试指标
对性能测试结果进行量化衡量(响应时间、并发数、吞吐量、点击数、错误率、资源使用率)
响应时间
什么是响应时间
指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整改过程所耗费的时间。
- 不通过HTTP接口请求消息来测试
- 不包括 发消息时前端页面处理时间和接收到消息后前端页面 渲染显示时间
- 包括服务器处理时间、网络传输时间
并发数
某一时刻同时向服务器发送请求的用户数。
吞吐量
1、什么是吞吐量
指的是单位时间内处理的客户端请求数,直接体现软件系统的性能承载能力。
吞吐量——QPS(Query Per Second)每秒查询数:即控制服务器每秒处理的指定请求的数量。
吞吐量——TPS(Transaction Per Second)每秒事务数:即控制服务器每秒处理的事务请求数量。
2、吞吐量的单位有那些
- 从业务角度:业务数/天、访问人数/天、页面访问量/天
- 从网络角度:字节数/小时、字节数/天
- 从技术指标:每秒查询数(QPs)、每秒事务数(TPs)
3、QPs和TPs有什么关系
事务,即业务,一个事务可以对应一个请求/多个请求
一个事务对应一个请求时:TPS=QPS
一个事务对应n个请求时:QPS=n*TPS
点击数
1、什么是点击数
指客户端向服务端发送请求时,所有的页面资源元素(如:图片、链接、框架css、js等资源)的请求总数量。
- 只有web项目才有此指标
- 点击数不是页面上的一次点击
错误率
1、什么是错误率
指系统在负载情况下,失败业务的概率
错误率=(失败业务数/业务总数)*100%。
- 大多系统都会要求错误率无限接近于0
- 错误率是一个使能指标,不是功能上的随机bug
- 错误率是性能指标,是高负载下的失败业务的概率
- 随机bug是功能bug,先解决随机bug才能进行性能测试
资源使用率
1、什么是资源利用率
系统各种资源的使用情况,“资源的使用量/总的资源可用量×100%“
2、常见资源指标有哪些
- CPU使用率:不高于75%-85%
- 内存(大小)使用率:不高于80%
- 磁盘IO(速率):不高于90%
- 网络(速率):不高于80%
性能测试流程
需求分析
测试计划和方案
1、测什么
项目背景、测试目的、测试范围
2、谁来测
进度与分、交付清单
3、怎么测
测试策略
测试用例
测试执行
分析调优
调优:开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合;
验证:性能测试人员继续进行第二轮、第三轮……的测试,与以前的测试结果进行对比,从而确认经过调整后系统的性能是否有提升;
性能测试分析人员经过对结果分析以后,如果不符合性能需求,则会提出性能bug,然后由开发人员进行后续的调优
测试报告
测试报告是对性能测试工作的总结,为软件后续验收和交付打下的基础。
测试报告主要内容:
- 工作的经过回顾
- 缺陷分析和调优
- 风险评估
- 性能测试结果
- 测试工作总结与改进
- 本文作者: 小邓同学
- 本文链接: https://dyasher.github.io/2022/10/19/性能测试基础知识/
- 版权声明: 该文章版权归作者DYaher所有,未经授权其他任何机构和个人不得以盈利为目的非法转载和使用。违反此声明者,本人将依法追究其法律责任。