zoukankan      html  css  js  c++  java
  • JMeter 功能挖掘之 WEB 文件导出

    前言

    自从写从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();
          }
       }}
  • 相关阅读:
    Angular
    linux mysql 5.7.25 安裝
    J2CACHE 两级缓存框架
    MYSQL 事务测试
    安装配置ftp服务器
    使用docker 安装 GITLIB
    Elastic serarch 安装
    centos firewalld 基本操作【转】
    KAFKA 监控管理界面 KAFKA EAGLE 安装
    redis 的一主二从三哨兵模式
  • 原文地址:https://www.cnblogs.com/wushujun/p/7650984.html
Copyright © 2011-2022 走看看