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

如何在JMeter中用Loop Controller通过单请求给JPetStore加购多件商品

在JPetStore中用JMeter Loop Controller批量添加商品到购物车的实现方法

核心思路

通过Loop Controller循环执行「搜索商品→提取商品参数→添加到购物车」的流程,结合数据驱动实现多件商品的批量操作,全程复用单个搜索请求模板。

具体步骤

  1. 搭建基础测试框架

    • 新建测试计划,添加线程组(单线程即可完成批量操作,按需调整)。
    • 线程组下添加HTTP Cookie管理器:JPetStore依赖会话维持登录状态,必须启用该组件自动管理Cookie。
    • 添加登录HTTP请求:模拟用户登录,请求方式、路径、参数参考实际抓包结果(通常是POST请求,参数包含username和password)。
  2. 配置Loop Controller

    • 在登录请求后添加Loop Controller,设置「循环次数」为需要添加的商品总数;如果用CSV数据驱动,也可勾选「永远」,配合CSV的循环策略控制执行次数。
  3. 数据驱动准备(多不同商品时使用)

    • 在Loop Controller下添加CSV Data Set Config:
      • 文件名:指向存储商品搜索关键词/ID的CSV文件(每行一个值,比如EST-1, EST-2, K9-BD-01)。
      • 变量名:自定义变量名,比如productKey。
      • 其他设置:按需勾选「循环读取」「遇到文件结束符再次循环」。
  4. 搜索商品请求

    • 在Loop Controller内添加HTTP请求,模拟搜索栏操作:
      • 请求方法:GET(JPetStore搜索一般为GET请求,以实际抓包为准)。
      • 请求路径:/jpetstore/shop/searchProducts。
      • 参数:添加keyword=${productKey}(固定搜索单个商品时,直接写死关键词即可)。
  5. 提取商品添加参数

    • 搜索请求后添加正则表达式提取器(或CSS选择器提取器),从搜索结果页面提取「添加购物车」所需的itemId:
      • 引用名称:itemId。
      • 正则表达式:itemId=(\w+)(匹配链接中的商品ID,需根据实际页面HTML调整,比如链接为/shop/addItemToCart?itemId=EST-1时,该正则可准确提取)。
      • 模板:$1$,匹配数字:1。
  6. 执行添加购物车操作

    • 提取器后添加HTTP请求,模拟点击「Add to Cart」:
      • 请求方法:POST(以实际抓包为准)。
      • 请求路径:/jpetstore/shop/addItemToCart。
      • 参数:添加itemId=${itemId}和quantity=1(数量可自定义为变量,比如quantity=${num},需提前配置)。
  7. 验证结果

    • 在Loop Controller外添加HTTP请求,访问购物车页面(路径一般为/jpetstore/shop/viewCart)。
    • 添加响应断言:检查页面中商品数量、商品ID是否符合预期,确保批量添加成功。

关键注意事项

  • 确保Cookie管理器正常工作:如果出现添加失败,检查会话是否维持(查看Cookie管理器的结果树)。
  • 提取器规则要准确:如果搜索结果有多个商品,需调整正则/CSS选择器,确保提取目标商品的itemId(比如定位第一个商品的添加链接)。
  • 循环次数与数据匹配:使用CSV时,确保循环次数不超过CSV行数(或开启循环读取),避免空值错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:20:31