Jmeter的BeanShell PostProcessor将响应结果保存到本地文件

一、采用后置处理器中的"正则表达式提取器" + “BeanShell PostProcessor” 组合的方式,将响应结果中某个结果值写到本地的文件中(.csv结尾)

1、确定提取HTTP请求返回的字段值
Jmeter的BeanShell PostProcessor将响应结果保存到本地文件_第1张图片

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>缺省值:如果正则表达式没有搜找到值,则使用此缺省值

Jmeter的BeanShell PostProcessor将响应结果保存到本地文件_第2张图片

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();

Jmeter的BeanShell PostProcessor将响应结果保存到本地文件_第3张图片
重复贴一下代码:
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();

4、生成文件,保存的值可供其他请求引用
Jmeter的BeanShell PostProcessor将响应结果保存到本地文件_第4张图片

你可能感兴趣的:(Jmeter)