You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何构建含10个各执不同流程的虚拟用户的Web应用压测脚本?

多差异化流程压测的优化方案

你提到的“10个单用户线程组各对应不同流程”的方案绝非最优,后续调整用户数需要逐个修改线程组,维护成本极高。以下是几种更易维护的实现思路:

1. 单线程组 + CSV参数化 + 逻辑控制器

这是最常用的方案,核心是用参数化给每个线程分配不同流程:

  • 准备CSV配置文件,每行记录一个线程的流程标识(如flow1、flow2)及对应流程所需的参数(如接口ID、操作内容等)
  • 创建单个线程组,设置总用户数(比如初始10个,后续直接改这里即可)
  • 添加CSV Data Set Config组件,读取上述CSV文件,给每个线程分配唯一的流程标识变量
  • 用Switch Controller或If Controller实现分支逻辑:
    • 若用Switch Controller,将其条件设为${flow_type}(CSV中定义的流程标识变量),然后给每个流程创建对应的子节点(包含该流程的所有请求)
    • 若用If Controller,则为每个流程设置独立的判断条件(如${__jexl3(${flow_type} == 'flow1',)}),每个条件下挂载对应流程的请求

2. 测试片段 + 模块控制器 + 参数化

适合流程复用场景,把每个流程做成独立模块:

  • 将每个差异化流程封装成Test Fragment(测试片段),每个片段包含该流程的完整请求逻辑
  • 创建单个线程组,通过CSV或用户定义变量给每个线程分配目标测试片段的名称
  • 添加Module Controller,将其目标设置为变量(如${target_fragment}),这样每个线程会根据变量调用对应的测试片段
  • 后续调整用户数直接修改线程组的线程数,修改流程只需编辑对应测试片段,无需改动线程组结构

3. 吞吐量控制器分配流量比例

如果不需要严格固定每个流程的用户数,而是按比例分配负载:

  • 创建单个线程组,设置总用户数(如10个)
  • 给每个流程创建一个Throughput Controller,选择“Total Executions”模式,设置该流程的执行次数(如每个流程设为1,总10次),或选择“Percent Executions”模式设置比例(如每个流程10%)
  • 每个吞吐量控制器下挂载对应流程的请求
  • 后续调整总用户数时,只需修改线程组的线程数,各流程的执行量会自动按比例或设定次数分配

以上方案均只需维护单个线程组,用户数调整一步到位,流程逻辑集中管理,大幅降低维护成本。

内容的提问来源于stack exchange,提问作者JustNatural

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:47:08