通过施压配置页面的压力预估图,您可以预判性能测试中压力的分布情况。压力预估图会随着每个施压配置项的调整而变化。本文将说明如何解读压力预估图,并综合说明压测模式、Cookie共享、压测量级等配置的不同,对性能测试压力的影响。
前提条件
已了解施压配置基本操作,更多信息,请参见压力模型。
并发自动递增模式下的压力预估图
以压测场景中是否使用数据导出指令为例,对压力预估图进行说明。
- 未使用数据导出指令时,全部串联链路同时发起压测。
压力预估图说明:
- 压测量级(图标 ①):
自动递增模式下,全场景并发量按照递增百分比逐级增加至最大并发量。
- 起始并发:
所有串联链路的起始并发量之和。例如,上图中两个串联链路的起始并发(图标 ②)都是5,所以压力预估图中的起始并发是10。
- 压测总时长:
表示整个压测持续的时间。自动递增时,计算方法如下:
压测时长(分钟)=单量级持续时长 * [(100% - 起始百分比)/递增百分比 + 1]
其中,
(100% - 起始百分比)/递增量级百分比
表示递增次数,在计算中需向上取整。根据上图中的配置(图标 ③),单量级持续时长为1分钟,起始百分比为10%,递增百分比为20%,则压测时长为
1 * [(100-10)/20 +1 ]= 6
分钟。其中,递增次数(100-10)/20
向上取整得出5。说明 如存在多个串联链路且耗时不同的情况,总压测时长以耗时最长的串联链路为准。 - 预估消耗VUM:可快速预估消耗的VUM,数据仅供参考,请以实际消耗为准。
- 压测量级(图标 ①):
- 若使用数据导出指令,被导出Cookie的串联链路需要先进行压测,完成数据量级(登录用户量级)的准备,其他链路再开始压测。
例如,导出串联链路1的Cookie并共享至全场景,压力预估图将以数据准备完成为划分点,将压测分为两个阶段。图示中①为起始量级,图示中②为数据准备完成后的起始量级。
压测量级:
串联链路1设置了导出Cookie,需要先压测完成数据量级准备。压力预估图中会假定该串联链路递增至最大并发量(即15)时,完成数据量级准备。
说明 实际压测中,数据准备完成的时刻由串联链路1的吞吐速率决定。起始量级:串联链路1的起始并发(即1)。
- 数据准备完成后的起始量级:其他串联链路的起始量级之和。例如,上图中数据准备完成后的起始量级是2,即串联链路2的起始并发量。
压测总时长:
表示整个压测持续的时间,计算方法如下:
压测时长(分钟)=数据量级准备时间(即共享Cookie的串联链路的压测时长)+ 其他串联链路压测时长
每个串联链路压测时长(分钟)=单量级持续时长 * [(100% - 起始百分比)/递增百分比 + 1]
其中,
(100% - 起始百分比)/递增量级百分比
表示递增次数,在计算中需向上取整。根据上图中的配置,数据准备时长和压测时长均为
2 * [(100-10)/20 +1 ]= 12
分钟。
RPS模式、手动调速模式下的压力预估图
压测配置为非自动递增模式时,整个压测过程中压测量级会在起始并发与最大并发的范围内波动,故压力预估图使用区间示意线提供预览。
根据压测场景中是否使用数据导出指令,对两种情况分别说明:
- 未使用数据导出指令时,全部串联链路同时发起压测,压测量级是全场景压测量级之和。
- 若使用了数据导出指令,被导出数据的串联链路需要先进行压测,完成数据量级(登录用户量级)的准备,其他链路再开始压测。
例如,将串联链路1的Cookie共享至全场景,压力预估图将以数据准备完成为划分点,将压测分为两个阶段。
压测量级:
数据准备完成前的量级=串联链路1的总RPS范围内。
例如如上图所示,串联链路1中所有API的起始RPS之和2,最大RPS之和为20,所以数据准备完成前的压测量级预估是介于[2,20]之间。
数据准备完成后的量级=其他串联链路的总RPS范围内。
例如如上图所示,其他串联链路只有串联链路2,它的起始RPS是1,最大RPS是10,所以数据准备完成后的压测量级预估是介于[1,10]之间。
压测总时长:
非自动递增模式下,压力预估图中会假定串联链路1压测时长的20%时间完成数据量级准备。系统规定,数据量级准备时间最少为1分钟。
说明 实际压测中,数据准备完成的时刻由串联链路1的吞吐速率决定。