目录
性能测试
- 并发定义: 默认多个人同时请求。
- 性能测试并发的实现方式: 进程、线程、协程
- 进程: 资源拥有着,一个程序,至少有一个进程和一个线程。Jmeter用的即为线程
- 线程: 用资源来执行操作。loadruner默认是用线程,也可以用进程
- 协程:比线程还要小的执行者。python+locust用的即为协程
并发测试
就是用【多个人】同时请求。
- 并发: 同一间发起的相同的请求
- 并行:同一时间发起的可以相同、也可以不同请求
基准测试
- 定义:评估系统在标准条件下性能水平的过程,用于比较系统在不同条件下的性能表现,并发现潜在的性能问题,得到性能指标数据进行性能判断的基准。
- 通常性能测试指标关注重点:
-
- tps,期望服务的处理能力越高越好。
- 并发用户数,期望能同时支持的人越多越好。
- 响应时间,是来判断这个并发用户数的一个标准。
负载测试
- 定义:数据在超负荷环境中运行,程序是否能够承担。模拟实际用户使用系统的情况,通过增加并发用户数量、交易量或数据量,来评估系统在不同负载下的性能表现,确定在满足性能指标的情况下,系统所能承受的最大负载量
- 指标判断的标准:
- 平均响应时间
- 错误率
- 资源利用率 CPU在50%-70%,内存利用率60%-80%)
- 测试思路:区间的起始、到最大之间,缩小步长,从而得到具体并发用户数。
压力测试、稳定性测试、容量测试、配置测试
- 压力测试:通过负载测试得到最大可接受的并发用户数。 然后用这个最大可接受的并发用户数,做长时间的性能测试。得到性能指标数据,根据这些指标数据,来发现服务器是否存在不稳定性的问题。
- 并发用户数:负载测试获得的最大可接受并发数
- 压测时间: 现在一般用小时为单位。 一般情况为3*24或者7*24
- 稳定性测试:通过给系统加载一定的业务压力,让系统持续运行一段时间,检测系统是否能够稳定运行.总的来说,稳定性测试是用来验证产品在一定的负载下是否能够长时间的稳定运行,其主要目的是验证能力,并在能力的验证过程中找到系统不稳定的因素并进行分析解决。
- 并发数:通常为最大可接受并发用户数的80%
- 时间: 一般情况为7*24
- 容量测试: 系统处于最大负载状态或某项指标达到所能接受的最大阈值下对请求的最大处理能力。即为了找出系统能够承受的极限,包括最大用户数、数据量或交易量。
- 配置测试:系统在不同配置下的性能表现的测试类型,主要目的是确定系统在不同硬件、软件或网络配置下的性能差异
- 配置涉及点:硬件配置、软件配置、网络配置等
性能指标
并发用户数
- 定义:同时向系统发送请求的用户数量
响应时间
- 定义:系统处理请求所需的时间,即为从发起请求,到收到响应之间的时间。(网络传输时间 + 服务器内部处理时间)不包括前端渲染时间。
- 通常以毫秒为单位
-
- 网络传输时间越接近0, 响应时间越接近服务器内部处理时间
- 响应时间,一般用平均响应时间ART
- 90% 95% 99%: 所有请求的响应时间,做要给从低到高的排序。
吞吐量
- 定义:网络中,每秒传输的事务数。即单位时间内系统处理的请求数量。
- 通常以每秒钟处理的请求数(TPS)为单位
- 吞吐量反映了系统的处理能力,较高的吞吐量意味着系统能够处理更多的请求
- 事务:
- 一个完整的请求(发送请求和收到请求响应)
- 性能测试请求:http 每个并发用户数,都是 发出一个请求,一定是要收到这个请求的响应之后,才会发起下一个请求。
- 事务控制器,控制多个接口的完整请求,作为一个事务。
- 做单接口的性能测试,得到响应时间,一般,都会比 用户在界面上,一个完整行为的响应时间要小。
- 网络瓶颈
- 没有瓶颈的时候:每发1个请求,给服务器处理,返回响应结果,然后才会发下一个请求。这种请求下,事务数量 = 服务器处理的数量。
- 有网络瓶颈:网络阻塞或丢包, 就不能用 吞吐量数值当作 TPS值。
- 性能测试中,负载测试并发用户数是会变的。此时,如果去看吞吐量,会是一个平均值。
TPS\QPS\RPS\HPS
- TPS: 服务器,每秒处理的事务数(每秒事务数)。衡量服务器处理能力的最重要综合性的指标。在性能测试中,TPS表示系统在单位时间内能够处理的事务或请求的数量
- QPS: 服务器的每秒查询率(每秒查询数)。衡量系统处理查询请求的速率的指标。在数据库或网络系统中,QPS通常用于表示系统在单位时间内能够处理的查询请求的数量。
- QPS = N * TPS,请求次数多,查询次数就多。
- QPS变化,代表 tps的变化。
- RPS: 客户端,每秒发起的请求数(每秒请求数)。衡量系统处理HTTP请求的速率的指标。在Web服务器或API服务器中,RPS表示系统在单位时间内能够处理的HTTP请求的数量。
- HPS: 客户端,每秒发起的点击次数(每秒HTTP请求数)。衡量系统处理HTTP请求的速率的指标,与RPS类似
资源利用率
- 不超过80%
- 硬件资源利用率
- CPU、内存、磁盘、io
- 服务资源利用率
- 容器、集群、资源
错误率
- 在性能测试过程中发生的错误数量与总请求数量的比率。错误率反映了系统在高负载情况下的稳定性和可靠性,较低的错误率通常表示系统性能较好