bat 判断文件名字含有某些字段_一篇文章,学会jmeter模拟文件上传、下载操作-程序员宅基地

技术标签: bat 判断文件名字含有某些字段  struts2文件上传 获取不到file  dio 上传文件报错  struts2 文件上传 file为空  fileupload控件上传图片  struts2 layui文件上传 file为空  

最近很多同学都在问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页,写文件路径,和参数名

下面是脚本截图:

f2c0f6297ce56dc2edfc94250bf48d80.png

2.3、运行脚本,查看结果

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

0be377763cff07747165063691e1a18b.png

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

e227aa397e1c89c99926d186966b4a02.png

可能遇到的坑:

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脚本截图如下:

63b910e2447fa9ac46592d67a0e7a7aa.png

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

a90047203b5b3dd35a975f0ee470ce18.png

3.4、运行脚本,查看结果

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

c4ba3a5d6c6d2bee1f9179b91a2c9989.png

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

f96981bb6eab4a0bc273c340e2861c49.png

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

- End -

如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以关注我。加入我们免费获取更多软件测试进阶资料!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39979245/article/details/110264465

智能推荐

解决eNsp路由器AR一直出现###的问题_ensp路由器一直跳井号-程序员宅基地

文章浏览阅读2.2w次,点赞15次,收藏77次。在此之前先提醒你一下,ensp左侧最后一个不带型号的router是一直都可以用的,如果你的配置不涉及到ACL与NAT等配置带型号路由器的命令,那么可以不用这么麻烦,直接用第六个就好。一.试着点开你的virtualBox,如果点不开说明你的virtualBox版本与你的系统不兼容virtualBox版本与WIN10不兼容,可以下载链接:低版本更兼容的virtualBox提取码:d3d0,重安一个virtualBox版本就好二.安装好重启ensp如果还是一直出现#打开控制面板–系统与安全–防火墙,点击_ensp路由器一直跳井号

ExtJs中的xtype_ext.js中 xtype-程序员宅基地

文章浏览阅读2.5k次。论坛很多人都在谈论ExtJs的内存泄露的问题,可是我发现在ExtJs官方论坛上这样的讨论很少,不明白其中原因。今天偶然的点击的spket的extension生成模板,注意到了官方推荐的自定义组件的开发模式,发现了问题所在。关键就在xtype!结合之前的动态JS加载工具类,一个性能优秀的ExtJs开发框架逐渐成形 转载一篇xtype的文章http://www.javaeye.com/topic/191657 序言 _ext.js中 xtype

2018CCPC网络赛 && HDU 6444: G. Neko's loop(线段树)_2018 ccpc网络塞-程序员宅基地

文章浏览阅读657次。 Neko's loopTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0Problem DescriptionNeko has a loop of size n...._2018 ccpc网络塞

Bootstrap,关于table表格中点击一个按钮获取该行的某一列的值并将其传到模态框的问题解决方法_table点击按钮获取该td值-程序员宅基地

文章浏览阅读9k次。先看部分相关代码:table表格中点击一个按钮:<button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModall">表格中的按钮</button>触发模态弹出窗元素data-target,这个关键,对应下面弹窗的id。点击按钮会出现弹窗,弹窗代码:..._table点击按钮获取该td值

使用snmpwalk采集设备的OID信息_snmp 查看oid-程序员宅基地

文章浏览阅读3.5k次。打算开始学习有关监控方面的知识,但是现在很多监控系统都是根据SNMP进行的。而SNMP监控的性能指标很多都是通过snmpwalk采集设备的OID信息得到的,所以今天就来先介绍下,如何通过snmpwalk来采集设备的OID信息。要使用snmpwalk采集设备的OID信息,需要以下几个步骤:1、 理解snmpwalk的原理2、 安装snmpwalk3、 snmpwalk_snmp 查看oid

厉害了!不爱学习的他拿下4个offer,怎么做到的?-程序员宅基地

文章浏览阅读225次。有人说十月是一阵摇荡的风,有人说十月是一段匆匆的岁月,也有人说,十月是一篇值得留存的日记。对我来说,十月是一扇门,一扇开启我的新征程的大门,那天,我来到黑马,推开了我新征程的大门。文丨太原...

随便推点

Android Touch事件分发过程-程序员宅基地

文章浏览阅读181次。尽管网络上已经有很多关于这个话题的优秀文章了,但还是写了这篇文章,主要还是为了加强自己的记忆吧,自己过一遍总比看别人的分析要深刻得多,那就走起吧。简单示例先看一个示例 :布局文件 :xmlns:tools=”http://schemas.android.com/tools”android:id=”@+id/container”android:

SVN解决不能查看最近提交日志的问题_myeclipse svn插件看不了提交的历史记录-程序员宅基地

文章浏览阅读4k次。现象:在show log的时候,不能看到截止到几天前的日志,也不能看到最近几天的日志 , 出现原因不明,感觉像是修改了系统的时间后,进行了更新/提交的操作解决方法: TortoiseSVN-setting-Saved Data => clear清空Log messages(show log dialog)(未测) TortoiseSVN-setting-Log Cachin_myeclipse svn插件看不了提交的历史记录

ERROR: child process failed, exited with error number 1 MongoDB系统服务启动失败的解决办法-程序员宅基地

文章浏览阅读6.3k次。 问题描述Linux下MongoDB系统服务配置完成后,输入命令 “ systemctl start mongodb ” ,查看MongoDB系统服务是否启动成功 ,输入命令 “ systemctl status mongodb ” ,结果启动失败的,错误内容如下: ● mongodb.service - (null) Loaded: loaded (/etc/rc...._error: child process failed, exited with error number 1

Android调用WebService的SoapFault异常_soapfault - faultcode: 'soapenv:server.userexcepti-程序员宅基地

文章浏览阅读1.7w次。SoapObject soapObject = (SoapObject) envelope.getResponse();使用上面这个, SoapObject result = (SoapObject)envelope.bodyIn;这个是服务器那边没有搞定:1、 INFO/System.out(2185): SoapFault - faultcode: 'soapenv_soapfault - faultcode: 'soapenv:server.userexception' faultstring: 'java.lan

微信小店 API 手册-程序员宅基地

文章浏览阅读862次。微信商铺API手册V1.13目录1. 商品管理接口..............................._tiantianganav

An Simple Method for Sparse Matrix Optimization by GPU-程序员宅基地

文章浏览阅读69次。这是一个相当simple & naive的方法,几行代码完成的CSR稀疏矩阵格式的优化,剔除0元素。由于目前AMD的OpenCL SDK依旧没有赶上NVIDIA CUDA SDK的进度——新的CUDA 4我认为在库的丰富程度上以及易用上已经远远的超过了AMD的实现。虽然如此,今后还是得希望开源社区能够贡献基于OpenCL的数学库,或者我自己搞一个?This is a rare simp..._matrixoptimize

推荐文章

热门文章

相关标签