jmeter基础之保存响应数据到文件

关于如何记录jmeter压测过程中出现的偶现错误请求的response,主要是两种思路,一种将response保存到本地文件,一种是将response发送到远程,如kafka、es、mysql等等

如果是mysql的话,可以使用jdbc processer,如果是kafka或者es,可以用beanshell脚本,具体beanshell的使用看下文转载内容中的使用样例,样例中给的是beanshell保存到本地文件的实现

 

 

转载 https://cloud.tencent.com/developer/article/1833093

关于此功能主要运用于非GUI模式下执行脚本的响应查看,以便于帮助我们更好的判断脚本的执行情况。

关于保存响应到文件jmeter存在多种方式,大致分两类jmeter自带插件和beanshell脚本编写,本章节将介绍这两种方式保存数据!

保存响应到文件

添加监听器-->保存响应到文件

观察保存响应到文件配置页面:

配置页面参数介绍:

  • Save Successful Responses only:仅保存成功响应
  • Save Failed Responses only:仅保存失败响应
  • Don't save Transaction Controller Sample Result:不保存事务控制器样本结果
  • Don'tadd number to prefix:不添加数字到文件前缀
  • Don'tadd contenttype suffix:不添加文件的后缀类型
  • Add timestamp:添加时间戳到文件前缀

添加http请求后将保存响应到文件配置元件移动到http请求事务下:

运行http请求结果可在D:\test\路径下得到一个response文件:

beanshell脚本

beanshell脚本可使用两种元件,BeanShell PostProcessor后置处理器,Bean Shell Sampler取样器,使用beanshell脚本需要借助一些提取器如json提取器,正则提取器。

BeanShell PostProcessor

http请求下添加正则表达式提取器:

添加beanshell后置处理器并配置相关信息:

源码如下:

FileWriter fileWriter = new FileWriter("D:/test/test.csv", true);
//"D:/test/test.csv" 为本地路径(根据自己路径设置),支持csv和txt格式
BufferedWriter out = new BufferedWriter(fileWriter);

//out.write( vars.get("id")+","+vars.get("id1")+"\n");
out.write( vars.get("id")+"\n");
//其中id和id1等均为正则或jsonpath提取的变量名称如下图所示
//此处展示了一个变量和多个变量的写法,可根据自身实际需要调整
out.close();

fileWriter.close();

运行以上请求可查看结果如下,并在D:\test\路径下得到一个test.csv文件:

Bean Shell Sample

我们来使用beanshell取样器写入文件所有返回的id值,这里我们可以添加一个ForEach控制器,并且修改一下正职提取器的配置:

添加ForEach控制器并配置相关信息:

添加beanshell取样器并配置信息:

源码信息同beanshell后置处理器内容一样,运行请求可观察结果运行了10次,并在

D:/test/路径下生成了一个test.csv文件:

 

posted on 2022-03-30 15:44  该用户很懒  阅读(873)  评论(0编辑  收藏  举报