一、采用后置处理器中的"正则表达式提取器" + “BeanShell PostProcessor” 组合的方式,将响应结果中某个结果值写到本地的文件中(.csv结尾)
2、通过正则表达式提取字段值
正则表达式提取器说明:
1>引用名称:匹配出来的信息通过此名称进行访问,提供给其他请求引用,引用格式"${引用名称}"
2>正则表达式:值前内容(.+?)值后内容
() 括号里为你要获取的的值
. 表示匹配任何字符串
+ 表示一次或多次
? 表示匹配零次或一次
* 表示匹配零次或多次
举例
“session.id” : “be89d840-4ecf-4882-b3bf-a12345678919”,-----提取session.id的值-----> “session.id” : “(.+?)”,
3>模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是 2 2 2, 3 3 3等等,表示解析到的第几个值给sessionid; 如: 1 1 1表示解析到的第1个值,我们这里只有一个正则表达式,所以是 1 1 1
多个模板举例:
返回结果:
{
"code" : "200",
"project" : "project123456",
"message" : "success",
"flow" : "flow_end",
"execid" : 218996
}
使用正则表达式获取值:
"code" : "(.*)","project" : "(.*)","message" : "(.*)","flow" : "(.*)","execid" : (.*)}
5个正则表达式,等于是5个模板,我们要使用模板2,4,5的值,那么模板就填写: 2 2 2 4 4 4 5 5 5
4>匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
5>缺省值:如果正则表达式没有搜找到值,则使用此缺省值
3、通过BeanShell PostProcessor将响应结果保存到E盘根目录下的文件中(如果文件不存在将自动创建,注意代码的双斜杠\);代码可直接复制使用,修改文件路径和字段
FileWriter fstream = new FileWriter("E:\\jmeter_response_result_sessionid.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("sessionid")+"\n");
out.close();
fstream.close();
重复贴一下代码:
FileWriter fstream = new FileWriter(“E:\jmeter_response_result_sessionid.csv”,true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get(“sessionid”)+"\n");
out.close();
fstream.close();