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

JMeter中如何复用请求输出的JSON变量至后续请求并实现依赖判断

JMeter 多步骤依赖请求场景实现方案

整体需求概述

需实现3个连续依赖的请求步骤:步骤1从文件读取数据发起SOAP请求,仅当步骤1返回业务状态码000时,才将读取的账户数据用于步骤2的请求体,否则跳过步骤2;100条对应数据对应100个独立线程执行。


一、线程组与CSV数据读取配置

  • 新建线程组,设置线程数为100,循环次数为1,保证每条CSV数据对应一个独立线程
  • 添加CSV数据文件设置组件:
    • 填写CSV文件路径(文件需包含账户名称、账户编号两列,列分隔符可根据文件实际设置,比如逗号)
    • 变量名设为accountName,accountId
    • 线程共享模式选择仅当前线程,避免不同线程读取重复数据

二、步骤1:SOAP请求与业务状态码提取

  1. HTTP请求采样器配置:
    • 请求方法选POST,填写SOAP服务的目标URL
    • 添加HTTP信息头管理器,新增Content-Type: text/xml; charset=UTF-8
    • 请求体中插入CSV变量,示例SOAP报文:
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:biz="http://biz.example.com">
         <soapenv:Header/>
         <soapenv:Body>
            <biz:queryAccountInfo>
               <biz:accountName>${accountName}</biz:accountName>
               <biz:accountId>${accountId}</biz:accountId>
            </biz:queryAccountInfo>
         </soapenv:Body>
      </soapenv:Envelope>
      
  2. 提取业务状态码:
    • 若SOAP响应为XML格式,添加XPath提取器:
      • 引用名称设为bizStatusCode
      • XPath表达式写对应状态码的节点路径(比如//biz:responseCode/text(),需根据实际响应结构调整)
    • 若响应为JSON格式,替换为JSON提取器,JSON Path表达式写$.responseCode

三、步骤2:条件触发的请求执行

  • 添加If控制器,在条件框中输入:
    ${__jexl3("${bizStatusCode}" == "000",)}
    
    勾选Interpret Condition as Variable Expression选项,确保仅当步骤1返回的业务状态码为000时,执行控制器内的请求
  • 在If控制器下添加HTTP请求采样器(步骤2的请求),请求体中直接引用变量,示例JSON请求体:
    {
      "operateAccount": {
        "accountId": "${accountId}",
        "accountName": "${accountName}"
      },
      "action": "verify"
    }
    

四、步骤3:收尾请求配置

  • 在线程组内(If控制器外)添加步骤3的HTTP请求采样器,确保无论步骤2是否执行,步骤3都会在步骤1完成后运行

关键验证点

  • 检查CSV文件路径是否正确,线程启动后是否每条线程读取唯一一行数据
  • 验证If控制器的条件表达式是否生效:可通过查看结果树,确认状态码非000时步骤2是否被跳过
  • 确认变量引用格式正确,避免因语法错误导致请求体变量未替换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:37:41