需求
在同一个响应中,某个字段有多个值都需要依次提取,写入csv文件或者作为后续关联接口的入参。
{
"result": "Successful",
"data": [{
"amount_baseamt": 894.80
}, {
"amount_baseamt": 1499.00
}, {
"amount_baseamt": 1.00
}, {
"amount_baseamt": 35.00
}, {
"amount_baseamt": 408.00
}, {
"amount_baseamt": 247.00
}, {
"amount_baseamt": 237.00
}, {
"amount_baseamt": 199.00
}],
"count": 8
}
如,对于上述JSON响应,我想提取每个amount_baseamt
的值,写入.csv文件或用于后续接口。
使用Jmeter正则表达式提取器+ForEach循环控制器+Beanshell Sampler解决。
结构如下图:
-
正则表达式提取器:
-
ForEach循环控制器:
-
Beanshell Sampler:
代码如下:
FileWriter fstream = new FileWriter("/Users/leitianxiao/Documents/resamt.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write("${money}");
out.write(System.getProperty("line.separator"));
out.close();
fstream.close();
踩坑:
-
正则表达式写错,导致少了数据。可以通过正则表达式在线验证工具进行验证。
正则表达式在线验证工具 -
如果要关联在后面的接口,使用变量
${money}
即可。
网友评论