通过施压配置页面的压力预估图,您可以预判性能测试中压力的分布情况。压力预估图会随着每个施压配置项的调整而变化。本文将说明如何解读压力预估图,并综合说明压测模式、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,需要先压测完成数据量级准备。压力预估图中会假定该业务会话递增至最大虚拟用户数(即50)时,完成数据量级准备。
说明实际压测中,数据准备完成的时刻由业务会话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的吞吐速率决定。