- 性能测试概念
(1)什么是性能?
时间:系统处理用户请求的响应时间。
资源:系统运行过程中,系统资源的消耗情况。
(2)什么是性能测试?
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
(3)什么是性能测试的目的?
评估当前系统能力
寻找性能瓶颈,优化性能
评估软件是否能够满足未来的需要
- 性能测试和功能测试:
- (1)功能测试和性能测试有什么不同?
- 功能测试:验证系统的功能需求规格。焦点:功能
(正向、逆向)
- 性能测试:验证系统的业务场景测试。焦点:
时间、资源
- (2)功能测试和性能测试有什么关系?
一般项目中,先功能测试通过后,后进行性能测试。
-
性能测试分类
-
基准测试
(1)什么是基准测试?
- 狭义上讲:就是单用户测试。(单用户循环多次得到的数据)
- 广义上讲:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
(2)基准测试数据的用途?
- 基准测试不会单独存在
- 为多用户并发测试和综合场景测试等提供参考依据
- 为系统/环境配置、系统优化前后的性能提升/下降提供参考指标。
- 负载测试
(1)概念
通过
逐步增加系统负载
,确定在满足系统的性能指标
(如响应时间等)情况下,找出系统所能够承受的最大负载量
的测试。
(2)作用
系统最大负载量
达到用户要求
时,系统才能正式上线
使用。
- 稳定性测试
(1)概念
在服务器
稳定运行(用户正常的业务负载下)
的情况下进行长时间测试
(1天-1周等),并最终保证服务器能满足线上业务需求。
(2)作用
系统
在用户要求的业务负载下
运行达到规定的时间
时,系统才能正式上线使用。
- 压力测试
(1)概念
在
强负载下
的测试,查看系统在峰值情况下
是否功能隐患、系统是否具有良好的容错能力和可恢复能力
。
(2)测试场景
极限负载情况下
的破坏性压力测试
高负载下
的长时间的稳定性压力测试
第一种:极限负载情况下导致系统崩溃的破坏性压力测试(C-D区间)
第二种:高负载下的长时间稳定性压力测试(B-C区间)
- 并发测试
(1)概念
并发测试(绝对并发):是指在
极短的时间内
,发送多个请求
,来验证服务器对并发的处理能力
。
(2)应用场景
特定活动场景,如:抢红包、秒杀、抢购等。
- 性能测试指标
(1)响应时间
定义:从
客户端发送请求
,到客户端收到服务器响应
的总时间。
组成:网络传输时间+服务器处理时间
(2)并发数
定义:
某一时刻同时
向服务器发送请求的用户数
(3)吞吐量
- 什么时吞吐量?
指的是单位时间内
处理的客户端请求数量
。—直接体现软件系统的性能承载能力。
- 吞吐量的单位有哪些?
- 从业务角度:业务数/天、访问人数/天、页面访问量/天
- 从网络角度:字节数/小时、字节数/天
- 从技术指标:
每秒查询数(QPS)
、每秒事务数(TPS)
吞吐量–QPS:
QPS(Query Per Second)每秒查询数:即控制服务器每秒
处理的指定请求
的数量。
吞吐量–TPS:
TPS(Transactions Per Second)每秒事务数:即控制服务器每秒
处理的事务请求
的数量。
事务:即业务
,页面上的一次操作,可能对应一个请求/多个请求
。
QPS和TPS有什么关系?
事务,即业务。一个事务可以对应一个请求/多个请求
一个事务对应一个请求时,TPS =QPS
一个事务对应n个请求时,QPS=n * TPS
(4)点击数
- 什么是点击数?
指客户端向服务器发送请求时,所有的页面资源元素
(如:图片,链接、框架css、js等)的请求总数量
。
注意:
只有web项目才有此指标
点击数不是页面上的一次点击
(5)错误率
- 什么是错误率?
指系统在负载情况下
,失败业务的概率。错误率=(失败业务数/业务总数)*100%
注意:
- 错误率是性能指标,是
高负载下
的失败业务的概率;- 大多数系统都会要求
错误率无限接近于 0
- 随机bug是功能bug,先解决随机bug才能进行性能测试。
(6)资源利用率
- 什么是资源使用率?
是指系统各种资源的使用情况,一般用”资源的使用量/总的资源可用量*100%“
- “常见的指标: