通过施压配置页面的压力预估图,您可以预判性能测试中压力的分布情况。压力预估图会随着每个施压配置项的调整而变化。本文将说明如何解读压力预估图,并综合说明压测模式、Cookie 共享、压测量级等配置的不同,对性能测试压力的影响。

前提条件

已了解施压配置基本操作,详情请参见如何进行施压配置

并发自动递增模式下的压力预估图

以压测场景中是否使用数据导出指令为例,对压力预估图进行说明。

  • 未使用数据导出指令时,全部串联链路同时发起压测。压力预估图1

    压力预估图说明:

    • 压测量级(图标 ①):

      自动递增模式下,全场景并发量按照递增百分比逐级增加至最大并发量。

    • 起始并发

      所有串联链路的起始并发量之和。例如,上图中两个串联链路的起始并发(图标 ②)都是 5,所以压力预估图中的起始并发是 10。

    • 压测时长(分钟)

      表示整个压测持续的时间,计算方法如下:

      压测时长(分钟)=单量级持续时长 * [(100% - 起始百分比)/递增百分比 + 1]

      其中,(100% - 起始百分比)/递增量级百分比表示递增次数,在计算中需向上取整。

      根据上图中的配置(图标 ③),单量级持续时长为 1 分钟,起始百分比为 10%,递增百分比为 20%,则压测时长为 1 * [(100-10)/20 +1 ]= 6 分钟。其中,递增次数(100-10)/20 向上取整得出 5。

      说明 如存在多个串联链路且耗时不同的情况,总压测时长以耗时最长的串联链路为准。
  • 若使用数据导出指令,被导出 Cookie 的串联链路需要先进行压测,完成数据量级(登录用户量级)的准备,其他链路再开始压测。

    例如,导出串联链路 1 的 Cookie 并共享至全场景,压力预估图将以数据准备完成为划分点,将压测分为两个阶段。

    压力预估图2
    • 压测量级

      • 串联链路 1 设置了导出 Cookie,需要先压测完成数据量级准备。压力预估图中会假定该串联链路递增至最大并发量(即 15)时,完成数据量级准备。

        说明:实际压测中,数据准备完成的时刻由串联链路 1 的吞吐速率决定。

      • 起始量级:串联链路 1 的起始并发(即 1)。

      • 数据准备完成后的起始量级:其他串联链路的起始量级之和。例如,上图中数据准备完成后的起始量级是 3,即串联链路 2 的起始并发量。
    • 压测时长

      表示整个压测持续的时间,计算方法如下:

      压测时长(分钟)=数据量级准备时间(即共享 Cookie 的串联链路的压测时长)+ 其他串联链路压测时长

      每个串联链路压测时长(分钟)=单量级持续时长 * [(100% - 起始百分比)/递增百分比 + 1]

      其中,(100% - 起始百分比)/递增量级百分比表示递增次数,在计算中需向上取整。

      根据上图中的配置,数据准备时长和压测时长均为 2 * [(100-10)/20 +1 ]= 12 分钟。

RPS 模式、非自动递增模式下的压力预估图

压测配置为非自动递增模式时,整个压测过程中压测量级会在起始并发与最大并发的范围内波动,故压力预估图使用区间示意线提供预览。

根据压测场景中是否使用数据导出指令,对两种情况分别说明:

  • 未使用数据导出指令时,全部串联链路同时发起压测。压测量级,是全场景压测量级之和。
  • 若使用了数据导出指令,被导出数据的串联链路需要先进行压测,完成数据量级(登录用户量级)的准备,其他链路再开始压测。

    例如,将串联链路 1 的 Cookie 共享至全场景,压力预估图将以数据准备完成为划分点,将压测分为两个阶段。

    压力预估图3

    压力预估图说明:

    • 压测量级

      • 数据准备完成前的量级 = 串联链路 1 的总 RPS 范围内。

        如图所示,串联链路 1 中所有 API 的起始 RPS 之和 2,最大 RPS 之和为 20,所以数据准备完成前的压测量级预估是介于[2,20]之间。

      • 数据准备完成后的量级 = 其他串联链路的总 RPS 范围内。

        如图所示,其他串联链路只有串联链路 2,它的起始 RPS 是 1,最大 RPS 是 10,所以数据准备完成后的压测量级预估是介于[1,10]之间。

    • 压测时长

      示例中,串联链路 1 的 Cookie 共享至全场景。非自动递增模式下,压力预估图中会假定串联链路 1 压测时长的 20% 时刻(如图中为 2 分钟时),完成数据量级准备。系统规定,数据量级准备时间最少为 1 分钟。

      说明 实际压测中,数据准备完成的时刻由串联链路 1 的吞吐速率决定。