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

如何借助While Controller将Regex Extract提取的商品全部加入购物车?

用JMeter While Controller实现批量添加商品到购物车的逻辑

前置条件确认

  • 已通过Regex Extract Post Processor提取出商品数组,假设变量名为productId,对应的商品总数变量为productId_matchNr(值为6)。

实现步骤

1. 初始化计数器变量

添加User Defined Variables元件,定义变量counter,值设为1(JMeter正则提取的数组下标从1开始)。

2. 配置While Controller的循环条件

添加While Controller,在条件输入框中填入:

${__jexl3(${counter} <= ${productId_matchNr},)}

该表达式会判断当前计数器是否小于等于商品总数,满足条件则继续循环。

3. 编写加入购物车的事务逻辑

在While Controller下添加你的“加入购物车”事务(比如HTTP请求、事务控制器等):

  • 在购物车请求中,引用当前要添加的商品ID:使用${productId_${counter}},这个变量会动态获取第counter个商品的ID。
  • 添加JSR223 Sampler放在购物车请求之后,用来递增计数器,脚本内容:
def currentCount = Integer.parseInt(vars.get("counter"))
vars.put("counter", String.valueOf(currentCount + 1))

每次执行完购物车请求后,计数器加1,直到计数器超过productId_matchNr时,While Controller自动停止循环。

关键说明

  • 确保正则提取的变量名和你实际使用的一致,比如如果正则提取的变量是itemId,需对应改成itemId_${counter}和itemId_matchNr。
  • 若不想用JSR223 Sampler,也可以用Counter元件替代:设置起始值1、递增步长1,引用变量名保持为counter即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:27:49