JMeter 功能挖掘之 WEB 文件导出

前言

自从写从0构建自动化测试平台(一)之技术选型开始,在工作中Get新技能就非常想郑重的记录下来,方便自己查阅;相信很多人都有这种感触:平时问题解决后,没有及时记录,下次遇到类似问题,需要花同等的成本(各种搜索)去解决;与其后面劳心劳力,不如现在趁着这股热乎劲记录下来。

使用场景:

如上图,是WEB页面上有一个导出按钮,需要每周五导出本周的产品BUG,对其进行数据分析,及时发现产品中存在的问题,针对问题能够及时提出解决方案,每周一次频率不算很高,但是想用自动化方法实现自动导出,有2个可选方案:JMeter实现,Python实现。由于Python实现也是要先抓包,干脆就先用JMeter先进行抓包并实现文件保存功能。

一句话描述需求:

JMeter实现WEB端文件导出功能

实现思路:

  1. 登录系统;
  2. 跳转到对应的页面,点击导出excel按钮;
  3. 保存响应的内容;

详细实现:

  • 后置处理器中要实现的功能:获取请求的响应内容,保存到本地的excel文件,对应实现代码如下:
byte[] responseData = prev.getResponseData();
private String filePath = "/tmp/new-version.xls";
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
   File file = new File(filePath);
   fos = new FileOutputStream(file);//不添加参数true,以非追加的方式添加内容
   bos = new BufferedOutputStream(fos);
   bos.write(responseData);
} catch (Exception e) {
   e.printStackTrace();
} finally {
   if (bos != null) {
      try {
         bos.close();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
   }
   if (fos != null) {
      try {
         fos.close();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
   }
}

相关说明:

  1. 这里我们使用JMeter的内置API:prev.getResponseData()获取请求的响应内容,详细使用方法请查阅:JMeter API
  2. BeanShell是嵌入式的Java源代码解释器,执行标准Java语句和表达式,说白了就是java脚本。
  3. 笔者使用的是JMeter3.1版本。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Jmeter安装配置 使用Jmeter前首先要安装JDK,配置JDK环境变量。Jmeter不需要安装,下载后...
    茶小汐阅读 2,959评论 0 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,996评论 25 708
  • JMeter有两种类型的控制器:取样器和逻辑控制器。 取样器指示JMeter向一个服务器发送请求。例如,如果你想让...
    七月尾巴_葵花阅读 1,698评论 0 3
  • 一、基本概念 1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。 2.线程...
    Leo_0626阅读 2,304评论 0 10
  • iOS系统自带的 Apple’s Crash Reporter 记录在设备中的Crash日志,Exception ...
    even林0阅读 677评论 0 0