如何在JMeter中实现订单与支付列表无重复全组合执行
实现订单与支付全组合的自动化执行方案
要实现每个订单依次搭配所有支付方式的执行逻辑,无需重复复制控制器,用嵌套循环控制器即可解决,具体方案如下:
推荐的控制器层级结构
ForEach Controller (遍历订单列表) - 订单处理步骤(如Add product等) - ForEach Controller (遍历支付方式列表) - Payment A - Payment B - ...(其他支付方式)
配置步骤说明
定义订单与支付的变量列表
在Test Plan的「用户定义的变量」中添加两个变量:orders:值为OrderA,OrderB(多个订单用逗号分隔)payments:值为PaymentA,PaymentB(多个支付方式用逗号分隔)
配置外层ForEach Controller(订单遍历)
- 勾选「Add before prefix」和「Add after suffix」
- 输入「输入变量前缀」为
orders - 输入「输出变量名称」为
current_order(后续步骤可引用该变量标识当前执行的订单)
配置内层ForEach Controller(支付遍历)
- 同样勾选「Add before prefix」和「Add after suffix」
- 输入「输入变量前缀」为
payments - 输入「输出变量名称」为
current_payment(后续步骤可引用该变量标识当前执行的支付方式)
执行效果
配置完成后,执行顺序完全符合预期:
Order A Payment A Order A Payment B Order B Payment A Order B Payment B ...
替代方案(固定项配置)
如果不需要动态加载订单/支付列表,也可以用Loop Controller嵌套:
Loop Controller (循环次数=订单数量) - 订单A(第一次循环执行)/订单B(第二次循环执行) - Loop Controller (循环次数=支付方式数量) - Payment A - Payment B
不过这种方式后续新增订单/支付方式时需修改循环次数,灵活性不如变量配置方案。
内容的提问来源于stack exchange,提问作者akaiki
相关产品推荐
相关产品推荐

