前言

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

使用场景:

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

一句话描述需求:

JMeter实现WEB端文件导出功能

实现思路:

  1. 登录系统;

  2. 跳转到对应的页面,点击导出excel按钮;

  3. 保存响应的内容;

详细实现:

  • 线程组添加录制控制器和HTTP Cookie管理器

  • JMeter添加并启动代理服务器

  • 浏览器设置代理

  • 根据以上思路登录系统,访问到对应的页面,执行导出excel动作
    在JMeter的录制控制器中我们可以查看到对应录制的内容,我们只保留登录和导出excel对应的请求

  • 上面的导出excel请求是关键内容,我们需要将请求的内容进行保存,这里我们在这个请求中添加一个BeanShell的后置处理器:

  • 后置处理器中要实现的功能:获取请求的响应内容,保存到本地的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();
      }
   }}

JMeter 功能挖掘之 WEB 文件导出的更多相关文章

  1. C#进行Visio二次开发之文件导出及另存Web页面

    在我前面很多关于Visio的开发过程中,介绍了各种Visio的C#开发应用场景,包括对Visio的文档.模具文档.形状.属性数据.各种事件等相关的基础处理,以及Visio本身的整体项目应用,虽然时间过 ...

  2. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  3. asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台

    分享: 腾讯微博  新浪微博   搜狐微博   网易微博  腾讯朋友  百度贴吧  豆瓣   QQ好友  人人网 作者:王春天  原文地址:http://www.cnblogs.com/spring_ ...

  4. 64位系统web项目导出excel问题分析及解决方法汇总

    最近在web项目中做了一个导出Excel功能.在导出的时候报错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败. 一 ...

  5. Jmeter_实现Excel文件导出到本地

    一般而言,对于页面的“导出”操作,主要经历如下两个操作:①根据数据库的内容,将文件导出到应用服务器上:②将服务器上的文件下载到本地电脑: Jmeter同LoadRunner类似,只能记录服务端与客户端 ...

  6. C#中的文件导出大全

    s 得到 radiobuttonlist和CheckBoxList 选中值 得到radiobuttonlist 选中值:var CheckBoxList=document.all.optButtonL ...

  7. loadrunner实现excel文件导出操作

    项目中需要对“商品信息”进行查询及导出,但是loadrunner并不能录制到“保存”这一操作. 项目介绍:flex+Http协议: 不能录制的原因: 在我们点击了“导出”按钮后,服务端已经生成一份我们 ...

  8. windows环境下svn同步web文件[转]

    windows环境下svn同步web文件 SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统. 如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发.测试更加便捷.利用S ...

  9. Web文件(图片)上传方法

    在开放Web应用程序的时候经常会遇到图片或者是文件上传的模块,这里就是该模块的实现的后台方法 上传图片方法 /// <summary> /// 功能:上传图片方法 /// </sum ...

随机推荐

  1. LeetCode.965-单一二叉树(Univalued Binary Tree)

    这是悦乐书的第366次更新,第394篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第228题(顺位题号是965).如果树中的每个节点具有相同的值,则二叉树是单一的.当且仅 ...

  2. linux 使用timedatectl 修改时区和时间

    使用timedatectl可以进行如下常见操作 1.查看当前时间/日期/时区:timedatectl或者timedatectl status 2.查看所有可用时区:timedatectl list-t ...

  3. python每日一练:0002题

    第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中. 示例代码: import os import string import random i ...

  4. python基础之字符串常用方法

    str常用命令:字符操作:.capitalize() .upper() .lower() .title() .swapcase()判断:.startwith() .endwith() .isalnum ...

  5. SQL注入(bool型)

    sqli-labs 靶场https://blog.csdn.net/qq_41420747/article/details/81836327 教程+靶场 1. https://blog.csdn.ne ...

  6. linux 编程头文件搜索规则

    包含头文件有两种写法,分别是:#include <stdio.h>#include "stdio.h" <>和""分别表示搜索位置的方式 ...

  7. java.lang.StackOverflowError解决

    在使用JPA的仓储repository进行查询时,经常用到findAllbyId的方法: repository.findAllbyId() 但如果像下面的代码,当list的size量太大的话,就会报栈 ...

  8. C++11随机数的正确打开方式

    C++11随机数的正确打开方式 在C++11之前,现有的随机数函数都存在一个问题:在利用循环多次获取随机数时,如果程序运行过快或者使用了多线程等方法,srand((unsigned)time(null ...

  9. 定位class时空格注意

    class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称,那定位的时候取其中的一个就行(并且要唯一) Selenium2+python自动化73-定位的坑:cl ...

  10. uni-app如何编写底部导航栏

    在pages.json中配置代码如下: { "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocat ...