一篇文章,学会jmeter模拟文件上传、下载操作
最近很多同学都在问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模拟文件上传、下载操作的更多相关文章
- Spring Boot 教程 - 文件上传下载
在日常的开发工作中,基本上每个项目都会有各种文件的上传和下载,大多数文件都是excel文件,操作excel的JavaAPI我用的是apache的POI进行操作的,POI我之后会专门讲到.此次我们不讲如 ...
- Jmeter之模拟文件上传、下载接口操作
上周群里有位同学,问我用jmeter怎么上传文件?因好久没用jmeter了,顺便自己也复习下,现整理出来和大家分享 一.准备工作: 上传接口一个(自行开发解决了) 下载接口 ps:没有困难创造困难也要 ...
- 【SSH2(实用文章)】--Struts2文件上传和下载的例子
回想一下,再上一篇文章Struts2实现机制,该步骤做一步一步来解决,这种决心不仅要理清再次Struts2用法.映射机制及其在深入分析.最后一个例子来介绍Struts2一种用法,这里将做一个有关文件上 ...
- Java实现FTP批量大文件上传下载篇1
本文介绍了在Java中,如何使用Java现有的可用的库来编写FTP客户端代码,并开发成Applet控件,做成基于Web的批量.大文件的上传下载控件.文章在比较了一系列FTP客户库的基础上,就其中一个比 ...
- Fiddler2 模拟文件上传
最近遇到一个需求,需要上传音频文件, 服务端使用webService 通过spring3 进行文件上传.代码完成后使用 html 通过post 方式请求接口成功了,但不知道如何使用Fiddler2工具 ...
- jmeter测试文件上传功能
最近为了完成自动化KPI开始慢慢接触jmeter,其中遇到了不少问题,今天就遇到了文件上传的问题,在这里记录下加深记忆,也可供jmeter初级使用者作为一个参考.另外论坛上已有同事发过关于jmeter ...
- salesforce 零基础学习(四十二)简单文件上传下载
项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...
- Retrofit2文件上传下载及其进度显示
序 前面一篇文章介绍了Retrofit2的基本使用,这篇文章接着介绍使用Retrofit2实现文件上传和文件下载,以及上传下载过程中如何实现进度的显示. 文件上传 定义接口 1 2 3 @Multip ...
- Hadoop之HDFS原理及文件上传下载源码分析(下)
上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文 ...
随机推荐
- Android开发学习笔记Intent 一
Inten的概念 1.Intent是Android四大组件直接沟通的桥梁 2.Intent是一种运行时绑定(runtime binding)机制 Intent对象的属性 Itent的种类 Inten过 ...
- 消息队列——RabbitMQ的基本使用及高级特性
文章目录 一.引言 二.基本使用 1. 简单示例 2. work queue和公平消费消息 3. 交换机 三.高级特性 1. 消息过期 2. 死信队列 3. 延迟队列 4. 优先级队列 5. 流量控制 ...
- 2020年最佳Java调试工具(翻译)
调试是应用程序开发周期不可或缺的一部分.用Java或任何其他语言编写程序时,每个开发人员应解决的首要问题之一是可靠的调试工具的可用性. 所使用的工具类型可能影响或破坏应用程序的调试过程,因此至关重要的 ...
- Idea 快捷生成类注释与方法注释
这篇博客应该在刚使用IDEA 的时候就写了. 但是一直忘了. 今天使用新的api 接口文档生成工具 JApiDocs 的时候,看其上面有编码规范, 注释规范. 就想起了IDEA 类中, 方法中快 ...
- 手写spring事务框架-蚂蚁课堂
1.视频参加C:\Users\Administrator\Desktop\蚂蚁3期\[www.zxit8.com] 0017-(每特教育&每特学院&蚂蚁课堂)-3期-源码分析-手写Sp ...
- mybatis视频教程2-动态参数
/MyBatis_04_DynamicSQL/src/com/atguigu/mybatis/dao/EmployeeMapperDynamicSQL.java package com.atguigu ...
- APP测试经验总结
app测试哪几项: 每一款APP上线之前都需要经过严格的测试,测试周期可按项目开发周期来确定测试时间,一般测试时间为两三周(15个工作日),不过这个根据项目实际情况,可能推迟或提前的. ...
- spring boot 和shiro的代码实战demo
spring boot和shiro的代码实战 首先说明一下,这里不是基础教程,需要有一定的shiro知识,随便百度一下,都能找到很多的博客叫你基础,所以这里我只给出代码. 官方文档:http://sh ...
- 入门大数据---Python基础
前言 由于AI的发展,包括Python集成了很多计算库,所以淡入了人们的视野,成为一个极力追捧的语言. 首先概括下Python中文含义是蟒蛇,它是一个胶水语言和一个脚本语言,胶水的意思是能和多种语言集 ...
- 【秒懂Java】【第1章_初识Java】04_学习资料
为了学到更多的新知识,我们经常会去网上搜索各种学习资料.或者,在学习.工作过程中遇到了解决不了的问题,我们也会去网上搜索答案(比如百度.谷歌一下).这篇文章,主要想跟大家聊聊关于学习资料的选择. 建议 ...