压测演练对接阿里云性能测试服务(以下简称PTS),能够帮助用户快速对目标环境的BizWorks中台进行全链路压测,从而找到瓶颈、评估中台容量。本文为您介绍如何制定压测计划、执行压测任务、查看压测报告。

前提条件

  • 已添加阿里云性能测试(PTS)产品连接信息。具体操作,请参见管理PTS
  • 已配置在项目中可使用的PTS。具体操作,请参见配置PTS

压测演练核心价值

通过持续对生产环境的真实调用链路的收集、归纳,形成具有业务语义的链路拓扑。
  • 为影子表、mock提供准确的依赖参考。
  • 对流量录制提供指导。
  • 对资源扩容预估提供参考模型。
  • 帮助分析设计和开发之间的差异。

压测演练基本流程

  1. 创建压测计划
    1. 填写基本信息
    2. 设计压测链路
    3. 分析链路依赖,辅助数据隔离设计
  2. 新建压测任务
  3. 执行压测任务
    1. 压测前准备
    2. 执行压测
    3. 可选:生成清理脚本
  4. 查看压测报告

创建压测计划

  1. 设置基本信息。
    1. 登录BizWorks,单击左侧导航栏1图标。在概览页面的左上角,单击1图标,从项目下拉列表中选择目标项目实例。1
    2. 单击左侧导航栏1图标,在测试平台导航栏中,单击压测计划
    3. 压测计划页面,单击新建压测计划
    4. 新建压测计划面板,填写压测计划名称描述,选择目标测试环境后,单击保存
    创建完成后,系统会自动生成一个唯一ID。您可以在当前页面中查看您的压测计划,并执行后续操作。
  2. 设计压测链路。
    1. 压测计划页面,单击目标压测计划名称。1
    2. 在目标压测计划的测试链路设计页签,单击新建测试链路
    3. 新建测试链路面板,填写压测链路名称描述后,单击进入测试链路设计器
    4. 添加压测API节点。
      • 在流程编辑器画布内,单击加号图标。弹出的面板列出了该环境下所有商业能力服务方法和业务领域下的应用服务方法。您可以展开树状列表,选择您计划压测的API。1
      • 您也可以在画布左侧的服务目录树状列表中,将目标测试节点拖拽至画布右侧的流程图中。1
    5. 选中API节点后,在画布右侧弹出的压测API节点面板中配置节点信息,单击保存压测API节点面板您也可以通过双击节点卡片,或单击节点卡片上的编辑图标,修改节点配置信息。
      其中,Request参数为商业能力服务方法、业务领域应用服务方法的入参,需要您按照定义要求填写测试值。Header参数支持添加,其他参数不支持。
    6. 创建完压测链路后,单击画布右上角的保存并调试,系统提示已在PTS上完成压测场景创建,可以在PTS上继续进行链路调试,单击对话框中的进入调试,您可以跳转到PTS中调试压测链路。
    在当前压测计划的测试链路设计页签,您可以查看已创建的压测链路,并执行编辑、复制、删除等操作。
  3. 辅助数据隔离设计。
    1. 单击当前压测计划的数据隔离设计页签。
    2. 如果您已经创建了或更新了压测链路,系统会提示您重新生成数据隔离建议。单击生成依赖分析建议,系统会通过试运行方式分析测试链路过程中会涉及到哪些中间件或外部依赖,帮助您快速梳理并制定数据隔离规则。生成建议
      说明 按照测试链路试运行方式是将已经设计好的测试链路在目标环境中运行一次,分析实际运行过程中的调用关系,生成依赖信息。一般会在10分钟左右完成。
    3. 查看依赖建议。隔离依赖建议
    4. 创建隔离规则。您可以根据依赖分析的结果,为应用创建影子表规则:在隔离依赖建议面板中,单击右侧操作栏的创建隔离规则,系统会将自动收集到的信息预先填好,您可以直接保存,也可以修改。您也可以在数据隔离设计页签单击新建隔离规则按钮,在新建隔离规则面板中填写配置信息,完成后单击保存新建隔离规则
    5. 跳转到PTS进行配置,使影子表规则生效。
      在当前压测计划页面的数据隔离设计页签,您可以查看已创建的隔离规则,并执行编辑、停用、删除等操作。
    压测计划创建完成后,您可以在压测计划页签下查看计划,并执行生成压测任务、编辑、复制、删除等操作。
    • 生成压测任务:请参见新建压测任务
    • 编辑压测计划:您可以修改计划名称、描述、重新选择目标测试环境。
    • 复制压测计划:列表中会自动生成一个名为“复制_XXXX”的压测计划。例如,原来的压测任务叫做A,复制后叫做 “复制_A”。复制后的计划除了名称、ID与原计划不一致外,其他配置均相同。您也可以对复制后的压测计划进行编辑操作。
    • 删除压测计划:在压测列表中,单击目标压测计划右侧的删除。

新建压测任务

  • 压测计划页面,单击目标压测计划右侧操作列下的生成压测任务。在新建压测任务面板中,系统会自动生成任务ID,并默认关联您所选择的压测计划。配置完其他任务参数后,单击保存新建压测任务
    1. 测试平台导航栏中,单击压测任务
    2. 压测任务页面,单击新建压测任务
    3. 新建压测任务面板中,完成配置压测任务参数后,单击保存
表 1. 压测任务参数
参数说明
压测任务名称自定义压测任务名称。
ID系统自动生成,不可编辑。
压测计划在下拉列表中选择已创建的压测计划。
目标压测环境在下拉列表中选择当前项目中已创建的环境。
施压配置
  • 并发模式+手工调速:需要设置最大并发及压测总时长。
  • 并发模式+自动递增:需要设置最大并发、递增百分比、递增百分比、压测总时长。
  • RPS模式+手工调速:需要设置压测总时长,以及压测链路中每个API的最大RPS和起始RPS。
量级及数据配置设置压测链路的最大并发权重和起始百分比。压测链路的最大并发权重之和应为100%。

执行压测任务

  1. 压测任务列表中,单击目标压测任务的名称。
  2. 在当前压测任务页面,阅读准备阶段说明后,单击开始压测前准备
    说明 正式施压开始前,系统会自动完成以下动作对目标压测环境进行准备:
    • 数据隔离准备。根据在创建压测计划时使用到的影子表规则,创建对应的SQL脚本,以便可以提供给对数据库管理员进行准备。
    • 在PTS创建测试场景。
    • 在PTS上完善影子表规则。
    完成准备阶段后,可以在PTS上对测试场景进行更多配置。
    1
  3. 执行压测。在当前压测任务页面,阅读运行阶段说明后,单击开始执行压测。启动后您可以了解压测的进展情况,并对压测过程进行控制。压测运行
  4. 可选:生成清理脚本。该阶段将会根据准备阶段中影子表规则中执行的操作,形成逆向的数据清理语句,您可以使用这些SQL脚本对环境进行清理。
    说明 测试计划中如果没有影子表规则,不提供清理脚本生成。

查看压测报告

查看压测报告有两种方式:

  • 压测任务执行完成后,单击页面下方的查看压测报告查看压测报告
  • 测试平台导航栏中,单击压测报告,单击目标压测报告右侧操作列下的查看报告查看报告2
压测报告如下图所示:压测报告
  • 施压信息:展示压测任务名称、压测计划名称、目标环境名称和压测持续时间。单击压测任务右侧的查看详情,您可以看到该报告所对应的压测任务快照;单击压测计划右侧的查看详情,将会跳转到该压测计划页面。
  • 压测摘要:展示本次压测任务的成功率、平均RT、平均TPS、异常数和总请求数。
  • 测试链路统计:展示本次压测链路上每个API节点的总请求数、成功率、异常数、平均TPS和延迟情况。