前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Jmeter如何测试http下载接口

使用Jmeter如何测试http下载接口

作者头像
jmeter技术研究
发布2020-07-01 15:06:07
1.7K0
发布2020-07-01 15:06:07
举报

机会只留给那些有准备的人

改变能改变的,接受不能改变的,就是进步

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

一、打开录制模版

  1. 打开jmeter,点击文件》Templates
  1. Template选择Recording,代表选择默认录制模版的意思,点击create创建
  1. 进入到录制页面,设置好浏览器代理,点击启动开始录制
  1. 在浏览器点击下载按钮,就可以成功录制到下载请求
  1. 直接执行请求,我们可以看到/upload/downloadZbwj这个接口会返回下载的文件流

二、编写beanshel脚本获取文件流保存

  1. 右键点击获取文件流的请求,点击右键》添加》后置处理器》BeanShell PostProcessor
  1. 代码如下
代码语言:javascript
复制
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();
  1. 该脚本代码兼容windows、linux环境,前提是执行的脚本目录结构如下,脚本保存到script目录

三、执行测试

  1. 线程数设置1,循环5次,点击执行
  1. 压测结果,如图,文件被正常下载到了data目录下
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 jmeter相关技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档