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

如何在JMeter中提取POST请求体中displayUnitNo与trialUnitReference的值

JMeter 从POST表单请求体提取指定参数的实现方法

你给出的POST请求是标准的application/x-www-form-urlencoded格式表单,最常用的实现方式是使用正则表达式提取器,操作步骤如下:

步骤1:添加正则表达式提取器

  • 右键点击对应HTTP请求,依次选择 添加 → 后置处理器 → 正则表达式提取器
  • 基础配置:
    • Apply to:选择 主样本
    • 要检查的字段:选择 请求数据(如果是从响应结果提取才选响应数据,此处是提取发送的请求体内容,故选请求数据)

步骤2:配置两个参数的提取规则

你可以在同一个正则表达式提取器里配置两个提取规则,也可以分开添加两个提取器,参考配置如下:

提取displayUnitNo%5B0%5D的值

  • 引用名称:displayUnitNo(后续调用该值的变量名,可自定义)
  • 正则表达式:displayUnitNo%5B0%5D=([^&]+)
  • 模板:$1$
  • 匹配数字:1
  • 缺省值:可填NOT_FOUND,方便提取失败时排查问题

提取trialUnitReference%5B0%5D的值

  • 引用名称:trialUnitReference(后续调用该值的变量名,可自定义)
  • 正则表达式:trialUnitReference%5B0%5D=([^&]+)
  • 模板:$1$
  • 匹配数字:1
  • 缺省值:可填NOT_FOUND,方便提取失败时排查问题

正则说明:([^&]+)表示匹配除&之外的所有连续字符,刚好匹配表单参数两个&分隔符之间的参数值,适配你给出的请求体格式。

步骤3:验证提取结果

添加调试取样器(路径:添加 → 取样器 → 调试取样器),运行测试计划后,查看调试取样器的响应数据,确认displayUnitNo、trialUnitReference两个变量值符合预期即可。

备选方案:BeanShell后置处理器提取

如果你需要更灵活的自定义处理逻辑,可以使用BeanShell后置处理器实现,参考代码:

// 获取当前请求的请求体内容
String requestBody = ctx.getCurrentSampler().getArguments().getArgument(0).getValue();
// 提取目标参数值
String displayUnitNo = requestBody.split("displayUnitNo%5B0%5D=")[1].split("&")[0];
String trialUnitReference = requestBody.split("trialUnitReference%5B0%5D=")[1].split("&")[0];
// 将结果存入JMeter变量
vars.put("displayUnitNo", displayUnitNo);
vars.put("trialUnitReference", trialUnitReference);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:09:02