zoukankan      html  css  js  c++  java
  • 使用Jmeter如何测试下载接口

    性能测试过程中,有时候需要对下载类的功能做压测,有些同学没有这方面的测试经验,比较迷茫,本文简单介绍下如何测试下载类的请求
    1、首先使用fiddler抓包,知道是一个http类型的请求,有一个post请求和两个get请求,首先post发起下载请求,最后get获取请求文件
    2、我们只需要在最后的get请求执行完之后获取该请求接口返回的文件流,然后写入到本地文件,就能实现下载效果,使用后置处理器beanshell编写java代码实现
    3、推荐使用jmeter录制功能或者fiddler抓包功能开发脚本,使用F12调试,本人测试发现最后下载返回数据的接口未显示
    4、本文介绍jmeter录制模式

    • 一、打开录制模版
    1. 打开jmeter,点击文件》Templates
    2. Template选择Recording,代表选择默认录制模版的意思,点击create创建
    3. 进入到录制页面,设置好浏览器代理,点击启动开始录制
    4. 在浏览器点击下载按钮,就可以成功录制到下载请求

    5. 直接执行请求,我们可以看到/upload/downloadZbwj这个接口会返回下载的文件流
    • 二、编写beanshel脚本获取文件流保存
    1. 右键点击获取文件流的请求,点击右键》添加》后置处理器》BeanShell PostProcessor
    2. 代码如下
    import java.io.*;
    import org.apache.jmeter.services.FileServer; 
    byte[] result = prev.getResponseData();                 //用来获取返回的文件流
    String str = FileServer.getFileServer().getBaseDir();   //获取脚本执行目录,我是在script目录下执行的脚本
    str = str.replace("script", "");                        //将目录去掉script
    String file_name = str+"data//${__time(,)}.cgzbwj";     //拼接目录,把目录改成data下,这样保存的文件就在data目录下,time函数用来获取时间戳,这样保证每次下载名字不同
    File file = new File(file_name);
    FileOutputStream out = new FileOutputStream(file);
    out.write(result);                                    //文件写入到文件
    out.close();
    


    3. 该脚本代码兼容windows、linux环境,前提是执行的脚本目录结构如下,脚本保存到script目录

    • 三、执行测试
    1. 线程数设置1,循环5次,点击执行
    2. 压测结果,如图,文件被正常下载到了data目录下


    如果文章对你有帮助,欢迎关注本人公众号,公众号与本平台文章同步,方便大家查阅,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制


    QQ技术交流群:加群请输入验证信息 CSDN
                  在这里插入图片描述


    微信二维码关注公众号:


    关注之后,回复资源下载,即可获取本人共享的各种资源下载地址:

  • 相关阅读:
    spring 配置多个properties
    redis 一些使用过的命令
    ftpclient 遇到的一些问题
    tomcat+nginx 横向扩展
    easyui 刷新页面
    tomcat 发布本地文件
    java httpclient 跳过证书验证
    https增加临时证书,tomcat配置
    echarts getAttribute”的值: 对象为 null 或未定义 错误解决方法,
    数据的导入导出
  • 原文地址:https://www.cnblogs.com/Jmeter-Automation/p/13178324.html
Copyright © 2011-2022 走看看