如何将RegEx变量与从CSV文件获取的BodyData映射

时间:2018-10-15 08:57:10

标签: jmeter jmeter-4.0

JMeter的

CSV数据配置包含以下内容- CSV Data Config

File.csv包含以下内容 Common Data File

GetAllOrderItems.txt包含以下内容

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

orderGuid_1_g1从正则表达式提取器中提取 JMeter Reg Ex

我将以下信息传递给JMeter主体数据 enter image description here

执行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"}

2 个答案:

答案 0 :(得分:0)

如果文件包含嵌套的JMeter变量,则需要将__FileToString()函数调用包装在__eval() function中,例如:

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

演示:

JMeter Eval FileToString

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

答案 1 :(得分:-1)

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

此外,建议不要使用__FileToString函数进行负载测试,除非该函数用于安装程序,例如此处不是这种情况。

因此,只需将JSON正文请求放入请求正文中,这样做会提高可读性。

如果您仍然想要这样做,请按照Dmitri Answer。