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

  • 一、打开录制模版
  1. 打开jmeter,点击文件》Templates

    image
  2. Template选择Recording,代表选择默认录制模版的意思,点击create创建

    image
  3. 进入到录制页面,设置好浏览器代理,点击启动开始录制

    image
  4. 在浏览器点击下载按钮,就可以成功录制到下载请求

    image

    image
  5. 直接执行请求,我们可以看到/upload/downloadZbwj这个接口会返回下载的文件流

    image
  • 二、编写beanshel脚本获取文件流保存
  1. 右键点击获取文件流的请求,点击右键》添加》后置处理器》BeanShell PostProcessor

    image
  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();

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

    image

    image
  • 三、执行测试
  1. 线程数设置1,循环5次,点击执行

    image
  2. 压测结果,如图,文件被正常下载到了data目录下

    image

    image

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


QQ技术交流群:加群请输入验证信息 博客园
              

在这里插入图片描述

微信二维码关注公众号:

image

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

使用Jmeter如何测试下载接口的更多相关文章

  1. Jmeter分布式测试dubbo接口2

    上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试. 在上次的例子中,我们只是实现了简单的dubbo ...

  2. Jmeter分布式测试dubbo接口1

    最近工作中接到一个需求,需要对一个Dubbo接口进行压力测试,测试其性能,之前一直使用jmeter做压力测试,在踏了好多坑之后,决定把这些记录下来,顺便也希望能帮助到大家. 开始测试之前,我们需要先知 ...

  3. jmeter测试dubbo接口

    本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...

  4. Jmeter - 测试 http 接口

    前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对 ...

  5. 【jmeter】 jmeter 测试HTTP接口

    到apache官网下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 1.运行 bin/jmeter.bat ,添加线程组 2.添加HTTP请求 ...

  6. jmeter 测试websocket接口(一)

    jmeter 测试websocket接口时,需要对jmeter添加测试websocket的jar包. 下载地址: https://download.csdn.net/download/qq_14913 ...

  7. 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)

    目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...

  8. JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

    JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是t ...

  9. 『动善时』JMeter基础 — 52、使用JMeter测试Dubbo接口

    目录 1.Dubbo介绍 2.准备测试Dubbo接口的环境 3.Dubbo Sample界面详解 4.Dubbo Sample组件的使用 (1)测试计划内包含的元件 (2)使用zookeeper协议请 ...

随机推荐

  1. MySQL递归查询

    MySQL8.0已经支持CTE递归查询,举例说明 CREATE TABLE EMP (EMPNO integer NOT NULL, ENAME ), JOB ), MGR integer, HIRE ...

  2. Android_四大组件之ContentProvider

    一.概述 ContentProvider(内容提供者)管理对结构化数据集的访问,它们封装数据,并提供用于定义数据安全性的机制.其他应用,通过Context的ContentResolver对象 作为客户 ...

  3. [JavaWeb基础] 020.Velocity 模板引擎简单示例

    1.什么是Velocity 一种J2EE的前端模版技术,和JSP,Freemarker差不多,都是用来展示网页内容的.和JSP不同的是velocity只能显示Action中的数据,不能处理数据.不能写 ...

  4. 【转】B树、B+树、B*树、R 树、QuadTree

    从B树.B+树.B*树谈到R 树 QuadTree(四叉树) 四叉树空间索引原理及其实现

  5. windows下nodejs的安装

    1.下载 从nodejs官网下载地址:http://www.nodejs.org 2.安装 双击node-v4.4.0-x64.msi或者其他版本 3.环境搭建 进入cmd命令窗口 进入到nodejs ...

  6. Rocket - debug - TLDebugModuleInner - Hart Bus Access

    https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...

  7. Chisel3 - util - Math vs. CircuitMath

    https://mp.weixin.qq.com/s/8lC8vQnBdKW9C39H0QFFkA     对数相关的辅助方法,Math通过软件方法实现,CircuitMath通过硬件方法实现.   ...

  8. 【JSP】el、jstl、MVC、三层架构

    JSP[Java Server Pages] [概念] java服务器页面 简化的servlet设计 html语法中扩展java 跨平台 JSP全名为Java Server Pages,中文名叫jav ...

  9. 一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝)

    背景 在日常开发中,偶尔会遇到需要复制对象的情况,需要进行对象的复制. 由于现在流行标题党,所以,一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝) 理解 首先就需要理解 js 中的数据类型 ...

  10. Java实现 LeetCode 188 买卖股票的最佳时机 IV

    188. 买卖股票的最佳时机 IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多 ...