一篇文章,学会jmeter模拟文件上传、下载操做

最近不少同窗都在问jmeter上传,下载文件的脚本怎么作?前端

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

现整理出来和你们分享web

到底该怎么作?spring

 

 

1、准备工做:shell

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

下载接口tomcat

ps:没有困难创造困难也要上服务器

jmeter4.0版本app

上传接口源码post

/**

     * 文件上传

     */

    @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", "上传文件失败!");

        }

    }

  

2、jmeter作上传的脚本

2.一、编写脚本流程

首先添加一个线程组,而后在线程组里面添加一个http请求,由于是发送数据,全部是post请求,写好上传的地址,而后写好文件路径

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

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

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

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

2.二、脚本实例

协议:http

服务器名称:127.0.0.1

端口号:8888

请求类型:post

路径:/fileUpload

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

下面是脚本截图:

 

2.三、运行脚本,查看结果

看下面的图,运行结果,接口返回成功,再去我本地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后就好了:此时访问成功,去掉消息头多余的添加

  

3、jmeter下载文件

3.一、准备工做:

图片的url:

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

3.二、编写脚本流程

首先添加一个线程组,而后在线程组里面添加一个http请求,由于是获取数据,全部是get请求,写好下载的地址

一、添加线程组:右键测试计划,添加-Threads(Users)-线程组;
二、添加一个http请求:右键线程组,添加-Sampler-HTTP请求;
三、写好http请求中的url和路径;
四、添加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();

  

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

3.三、脚本实例

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

路径:

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

 

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

 

 

3.四、运行脚本,查看结果

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

 

 

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

 

 

以上就是利用jmeter实现上传下载操做啦,感兴趣的同窗能够本身动动手练习下!(1079636098)软件测试学习群里一块儿讨论交流今后再也不孤单。

 -  End  -

相关文章
相关标签/搜索