最近很多同学都在问jmeter上传,下载文件的脚本怎么做?

正巧这阵子忙完有时间,就来“折腾”一番,哈哈

现整理出来和大家分享

到底该怎么做?

一、准备工作:

上传接口一个(自行开发解决了)

下载接口

ps:没有困难创造困难也要上

jmeter4.0版本

上传接口源码

/**

     * 文件上传

     */

    @RequestMapping(value = "/fileUpload", method = RequestMethod.POST)

    @ApiOperation(value = "上传文件", httpMethod = "POST")

    @ResponseBody

    public String fileUpload(@RequestParam(value = "file", required = false) MultipartFile file) {

        if (Objects.isNull(file)) {

            return getMessage("90110", "上传文件不能为空!");

        }

        String fileName = file.getOriginalFilename();

        String path = "F:/upload";

        File dest = new File(path + "/" + fileName);

        if (!dest.getParentFile().exists()) { //判断文件父目录是否存在

            dest.getParentFile().mkdir();

        }

        try {

            //保存文件

            file.transferTo(dest);

            return getMessage("90000", "上传文件成功!");

        } catch (IllegalStateException e) {

            // TODO Auto-generated catch block

            return getMessage("90555", "上传文件失败!");

        } catch (IOException e) {

            return getMessage("90555", "上传文件失败!");

        }

    }

  

二、jmeter做上传的脚本

2.1、编写脚本流程

首先添加一个线程组,然后在线程组里面添加一个http请求,因为是发送数据,所有是post请求,写好上传的地址,然后写好文件路径

1、添加线程组:右键测试计划,添加-Threads(Users)-线程组;

2、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;

3、写好http请求中的url和路径,以及要上传的文件

4、添加一个查看结果树,查看接口调用结果。右键线程组,添加-监听器-查看结果树;

2.2、脚本实例

协议:http

服务器名称:127.0.0.1

端口号:8888

请求类型:post

路径:/fileUpload

body:要选files_upload这个tab页,写文件路径,和参数名

下面是脚本截图:

2.3、运行脚本,查看结果

看下面的图,运行结果,接口返回成功,再去我本地F盘(接口里写死的)下是否有文件,看一下,到底有没有成功。

看下面的图,对应目录下已经有咱们刚才上传的文件了,及时间也对得上

可能遇到的坑:

ps:此处为代码开发部分,感兴趣的同学可以了解下及解决方案参考

问题一:关于报错:

Request”,”exception”:”org.springframework.web.multipart.support.MissingServletRequestPartException”,”message”:”Required request part ‘file’ is not present”,”path”:”/excel/import/upload”}

我错误的原因和解决方法:

主要是由于前台传递mutipartFile,表单的名字是file,但是再feign调用的时候我使用的是requestPart(“file”). 因此无法传递。
修改前端表单的文件名为file

  

问题二:关于报错

400 bad request: Required request part ‘file’ is not present

猜测通过@RequestParam(value = “file”, required = false)这种方式来取参的话,file字段就是可选的了。

这个错误大概是说没有file这个字段,而这个字段又是必须的,即使用了注释,如下面

@RequestParam("file") MultipartFile file

那么就需要我们去检查下前端页面是否存在这个字段了

  

问题三:关于报错

org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

不手动添加content-type后就行了:此时访问成功,去掉消息头多余的添加

  

三、jmeter下载文件

3.1、准备工作:

图片的url:

http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

3.2、编写脚本流程

首先添加一个线程组,然后在线程组里面添加一个http请求,因为是获取数据,所有是get请求,写好下载的地址

1、添加线程组:右键测试计划,添加-Threads(Users)-线程组;
2、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;
3、写好http请求中的url和路径;
4、添加beanshell,获取到返回的文件内容,保存到一个文件里面。右键线程组,添加-Sampler-BeanShellSampler

beanshell代码如下:

importjava.io.*;

byte[]result=prev.getResponseData();//这个是获取到请求返回的数据,prev是获取上个请求的返回

Stringfile_name="F:\\BaiDu.jpg";//代表存放文件的位置和文件名

Filefile=newFile(file_name);

FileOutputStreamout=newFileOutputStream(file);

out.write(result);

out.close();

  

5、添加一个查看结果树,查看接口调用结果。右键线程组,添加-监听器-查看结果树;

3.3、脚本实例

协议:http
服务器名称:a.hiphotos.baidu.com
端口号:80 (提示,端口号默认是就是80,可以不用写哦)
请求类型:get

路径:

/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg
脚本截图如下:

下面这个是beanshell里面的内容,也就是咱们保存文件的操作。

3.4、运行脚本,查看结果

看下面的图,运行结果,已经可以看到刚才这张图片了,而且请求都是成功的。

咱们再去F盘根目录下看,文件已经存在F盘根目录下了

以上就是利用jmeter实现上传下载操作啦,感兴趣的同学可以自己动动手练习下!(1079636098)软件测试学习群里一起讨论交流从此不再孤单。

-  End  -

一篇文章,学会jmeter模拟文件上传、下载操作的更多相关文章

  1. Spring Boot 教程 - 文件上传下载

    在日常的开发工作中,基本上每个项目都会有各种文件的上传和下载,大多数文件都是excel文件,操作excel的JavaAPI我用的是apache的POI进行操作的,POI我之后会专门讲到.此次我们不讲如 ...

  2. Jmeter之模拟文件上传、下载接口操作

    上周群里有位同学,问我用jmeter怎么上传文件?因好久没用jmeter了,顺便自己也复习下,现整理出来和大家分享 一.准备工作: 上传接口一个(自行开发解决了) 下载接口 ps:没有困难创造困难也要 ...

  3. 【SSH2(实用文章)】--Struts2文件上传和下载的例子

    回想一下,再上一篇文章Struts2实现机制,该步骤做一步一步来解决,这种决心不仅要理清再次Struts2用法.映射机制及其在深入分析.最后一个例子来介绍Struts2一种用法,这里将做一个有关文件上 ...

  4. Java实现FTP批量大文件上传下载篇1

    本文介绍了在Java中,如何使用Java现有的可用的库来编写FTP客户端代码,并开发成Applet控件,做成基于Web的批量.大文件的上传下载控件.文章在比较了一系列FTP客户库的基础上,就其中一个比 ...

  5. Fiddler2 模拟文件上传

    最近遇到一个需求,需要上传音频文件, 服务端使用webService 通过spring3 进行文件上传.代码完成后使用 html 通过post 方式请求接口成功了,但不知道如何使用Fiddler2工具 ...

  6. jmeter测试文件上传功能

    最近为了完成自动化KPI开始慢慢接触jmeter,其中遇到了不少问题,今天就遇到了文件上传的问题,在这里记录下加深记忆,也可供jmeter初级使用者作为一个参考.另外论坛上已有同事发过关于jmeter ...

  7. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  8. Retrofit2文件上传下载及其进度显示

    序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...

  9. Hadoop之HDFS原理及文件上传下载源码分析(下)

    上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...

随机推荐

  1. 深度学习中损失函数之RMS和MES

    学校给我们一人赞助了100美元购买英文原版图书,几方打听后选择了PRML 即Pattern Recognition and Machine Learning.自从拆封这本书开始慢慢的品读,经常会有相见 ...

  2. UWP实现第二字幕并且跟随系统的设置

    话不多说,先看一下最终效果 系统设置默认 在系统设置里面更改字幕的显示效果 需求 要求播放器可以显示第二字幕,类似旁白的文字解释.比如片中出现了一个专业术语,这个时候观众可能有些疑惑.所以需要在屏幕上 ...

  3. 设计模式系列之组合模式(Composite Pattern)——树形结构的处理

    说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...

  4. Vue错误汇总

    1.Vue导入js后没反应{{msg}}仍是{{msg}} 错误原因:js里写错了,或者没new一个Vue html页面: 解决方法:代码加入 new

  5. es性能调优---写优化操作

    ES 的默认配置,是综合了数据可靠性.写入速度.搜索实时性等因素.实际使用时,我们需要根据公司要求,进行偏向性的优化. 写优化 假设我们的应用场景要求是,每秒 300 万的写入速度,每条 500 字节 ...

  6. 尚学堂 213_尚学堂_高淇_java300集最全视频教程_反射机制_提高反射效率_操作泛型_操作注解_合并文件.mp4

    在反射的时候如果去掉了安全性检测机制,能够大大的提高反射的执行效率,我们来看下面的代码进行比较 package com.bjsxt.test; import java.lang.reflect.Met ...

  7. 学写PEP,参与Python语言的设计

    如果你为Python写了一篇PEP,这篇PEP成功的被Python指导委员会接受了,那么以后你在吹牛皮的时候你就可以说我主导了Python语言某个特性的设计工作. -- 跬蟒 我就问你主导Python ...

  8. python实现将大文件夹分割成多个子文件夹

    楼主用的linux,一旦数据达到几万,文件夹打开就会变卡,同时也方便同时分工协作,便于git管理,写了个将大文件夹分割成多个小文件夹的脚本 如操作文件夹:img,脚本不破坏img的数据,创建img_1 ...

  9. Eclipse中Debug时鼠标悬停不能查看变量值解决办法

    问题描述:Eclipse在Debug模式下,当鼠标移动到某个变量上面时不自动显示该变量对应的值. 解决方法:在Eclipse中点击 Window->Preferences->Java-&g ...

  10. tomcat配置项目虚拟路径

    tomcat版本:apache-tomcat-7.0.42 参考:http://blog.csdn.net/pangdingshan/article/details/7214786 一.虚拟根目录 1 ...