Jmeter:如何将响应数据保存至本地

在测试过程中,经常需要将返回结果中的响应数据的全部或者部分保存到本地,刚好这段时间需要做的一件事就是把响应数据中结果提取到本地,话不多说直接进入正题!
下面简单介绍两种方法,看个人需求进行选择,至于前面操作步骤不在此讨论范围。

一、保存响应到文件

操作步骤:添加—监听器–保存响应文件
在这里插入图片描述
此方法比较简单,一般在工作中也用得比较少,因为返回出来的结果以每个响应都会单独生成一个文件,使用起来很不方便灵活,没有太多具体的实用价值,下面着重讲解第二种方法,以及在操作 过程中遇到的一些坑。

二、BeanShell PostProcessor

其实刚开始跟第一种方法一样,首先调试接口是否能够正常返回结果,前提一定是能够返回结果,好了,这里没问题后接下来操作步骤,使用一个具体的例子进行说明。
需求:提取result后面所有的内容,并且将之保存至本地。
在这里插入图片描述
①添加正则表达式提取器
添加–后置管理器–正则表达式提取器
在这里插入图片描述
进入正则表达式提取器界面,简单介绍框里每个字段意思,也是比较容易跳坑的地方。
引用名称:变量名,给提取到的参数一个变量名
正则表达式:(.+?) 括起来的部分就是要提取的。括号里面的就是正则匹配的规则,根据实际情况填入正则表达式,如本次输入:“result”:{(.+?)}}即可,前面因为少加后面 }导致无法提取想要的内容,所以填写表达式要细心。
模板:$ 1$取第一个正则表达式的值,依次类推 $ 2$则是取第二个正则表达式的值…
匹配数字:0代表随机,-1代表全部
缺省值:默认值,没有提取到数据就给个默认值,可以自定义。
正则表达式提取器填写完后需要进行测试,有提取器测试器插件,在里面介绍一种方法,点击“查看结果树”,将由text更换成RegExp Tester,查看是否提取正确。
在这里插入图片描述
检查无误后,接下来!
②添加–后置管理器–BeanShell PostProcessor。如下图:
在这里插入图片描述
代码:

FileWriter fstream = new FileWriter("E:\\1234.csv",true);       
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("result")+"\n"); 
out.close();
fstream.close();

写完后检查没啥问题就可以运行了,但是在这个过程中经常会出现比如返回结果文件为空的现象,一定要检查代码,符号是不是使用了中文,返回名是否与正则表达式引用名一致。
③查看结果是否与自己想要的结果一样
打开存放文件的文档,
在这里插入图片描述
输出的结果完全是result后面的内容,如果想提取一个或者多个字段,改变正则表达式即可,还有做接口关联也可以用正则表达式提取器提取自己想要的响应数据,然后进行关联。

猜你喜欢

转载自blog.csdn.net/weixin_43044440/article/details/106017200