如何使用从 CSV 文件中获取的 BodyData 映射 RegEx 变量

How to Map RegEx variables with BodyData fetched from CSV Files

来自 JMeter 的 CSV 数据配置包含以下内容 -

File.csv 包含以下内容

GetAllOrderItems.txt 包含以下内容

{"dataRows":[],"orderGuid":"${orderGuid_1_g1}","facilityPk":"0","jtStartIndex":0,"jtPageSize":100,"jtSorting":"SKU ASC","isMap":"1"}

orderGuid_1_g1 从正则表达式提取器中获取

我将以下内容传递给 JMeter 正文数据

当我执行JMeter测试时,我可以看到以下内容

{"dataRows":[],"orderGuid":"${orderGuid_1_g1}","facilityPk":"0","jtStartIndex":0,"jtPageSize":100,"jtSorting":"SKU ASC","isMap":"1"}

但是,我希望从先前 HTTP 请求的 Reg Ex 中获取 ${orderGuid_1_g1}。 我想关注

  {"dataRows":[],"orderGuid":"644e1dd7-2a7f-18fb-b8ed-ed78c3f92c2b","facilityPk":"0","jtStartIndex":0,"jtPageSize":100,"jtSorting":"SKU ASC","isMap":"1"}

代码运行良好,如果我没有从文本中获取正文数据并直接在 HTTP 请求正文中插入下面的代码

    {"dataRows":[],"orderGuid":"${orderGuid_1_g1}","facilityPk":"0","jtStartIndex":0,"jtPageSize":100,"jtSorting":"SKU ASC","isMap":"1"}

当您从文件加载内容时,JMeter 不会解释变量。

此外,不建议使用 __FileToString 函数进行负载测试 ,除非它用于设置,例如这里不是这种情况。

所以只需要将JSON Body请求放在请求正文中,这样可读性会更好。

如果您仍想这样做,请按照 Dmitri 的回答进行操作。

如果您的文件包含嵌套的 JMeter 变量,您需要包装您的 __FileToString() function call in __eval() function,例如:

${__eval(${__FileToString(${GetAllOrderItems})})}

演示:

更多信息:Here’s What to Do to Combine Multiple JMeter Variables