1、性能测试流程
- 需求分析(一般看需求方的性能要求)
- 搭建环境
- 写测试脚本
- 性能执行 场景+监控 需要监控工具或监控平台,来监控被测服务器的资源使用
- 性能分析与跟踪
2、如何开展性能测试
-
测试准备:熟悉产品、明确需求目标、设计测试模型
-
测试环境搭建:搭建性能测试环境、性能监控环境
-
编写测试脚本:根据接口协议、选择性能测试工具、编写测试脚本
-
监控测试执行:根据测试模型、转换编写的脚本、进行测试执行、监控服务器资源利用率
-
结果分析与定位:结果分析、定位、提交跟踪单、输出性能报告
3、性能测试的类型
在性能的领域,压力、负载和稳定性测试都是常见的名词。实际上性能测试应该是对他们的总称,常见的性能测试类型有:
基准测试:
在给系统施加低压力时,查看系统的运行状况并记录相关数据作为基础参考,这些数据将主要用于性能调优后的对比,以确定调优的有效性。
负载测试:
是指对系统不断地增加压力或增加一定压力下的持续时间,知道系统的某项或多项性能指标达到安全临界值
核心目的是发现系统性能的拐点。
比如:
- 逐步增加并发用户数,来发起请求,获取我们服务器的最大并发用户数的区间
-
中小微企业,一般的最大并发用户数区间在100—200左右
-
一开始,不要用特别大的并发用户数
-
0-50-100-150-200-250-300 如果发现在150的时候正常,在200的时候报错(或性能(tps)不上升反而下降,即拐点区间),这个得到区间【150,200】
-
接下来 140-150-160-170-180-190-200-210,如果180-190之间有拐点(180的tps值比190还要高),区间变成【180,190】
-
接下来 181、182、183、184......190=========得到最大并发用户数,186正常、187异常,186就是最大并发用户数
-
-
压力测试:
压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
稳定性测试:
在给系统加载一定业务压力情况下,是系统运行一段时间,以此检测系统是否稳定。
并发测试:
主要指当测试多用户并发访问同一应用、模块、数据时,是否产生隐藏的并发问题,如内存泄漏..并发测试时实现性能测试的一种基本手段,几乎所有性能测试类型和场景都会采取并发测试。
4、性能指标
1、最大并发用户数:
有两种理解方式,一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。
另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试使用,体现的是服务端承受的最大并发访问数。
2、并发用户数:是指系统可以同时承载的正常使用系统功能的用户的数量。
3、每秒事务数:TPS——Transaction per second,每秒钟系统能够处理的事务/请求/交易的数量。
-
它是衡量系统处理能力的重要指标。
-
平均事物响应时间一般平均是2s
-
一个事务可能包含对系统的多次请求
4、点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。
5、每秒查询率:QPS——Query Per Second,每秒系统能够处理的查询请求次数。
-
QPS = req/sec = 请求数/秒,每秒查询率QPS是对一个特定的【查询服务器在规定时间内所处理流量多少的】衡量标准
-
⚠️一个TPS可能包含多个QPS
6、响应时间——指的是“系统响应时间”,定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。
响应时间(RT)响应时间是指系统对请求作出响应的时间
7、吞吐量——是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。
采用吞吐量来度量并发系统的性能的主要原因,一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。
8、性能计数器(Counter)——是描述服务器或操作系统性能的一些数据指标。例如,对Windows 系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。
9、思考时间(Think Time),也被称为“休眠时间”
从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。
从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间。
⚠️TPS与QPS区别
事务:表示客户端发起请求到收到服务端最终响应的整个过程,这是一个TPS
而在这个TPS中,为了处理第一次请求可能会引发后续多次对服务端的访问才能完成这次工作,每次访问都算一个QPS。
所以,一个TPS可能包含多个QPS