染指流年2016  

转Jmeter文件上传、下载脚本具体实现

Jmeter

文件上传

 

 

J

meter做上传的脚

上传是向服务器发送数据的过程,一般发送数据用post请求,本文用的Jmeter是3.2的版本进行演示。

 

a:准备工作

 有个上传文件的接口,接口文档如下图:

 

 

ps:打码的是公司接口的域名,这里本地进行启动服务,所以请求的ip填写127.0.0.1即可, 端口号是 8888。

 有了这个上传文件的接口说明,也知道该接口的请求参数了,下面就是可以写脚本了。

 b:编写脚本流程

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

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

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

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

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

 c :脚本实例

 协议:http

服务器名称:127.0.0.1

端口号:8888

请求类型:post

路径:/file/upload

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

下面是脚本截图:

 d:运行脚本,查看结果

 看下面的图,运行结果,接口返回成功,再去服务端上传的目录下,看一下,到底有没有成功。

看下面的图,服务端的files目录下已经有咱们刚才上传的文件了。

 

说明上次请求就已经实现了,大家可以自行动手尝试一下。

meter下载文件

 a :准备工作

下载文件就是把一个文件保存到本地的过程,咱们Jmeter这次实现下载请求的过程就是下载一张百度上的图片,图片的url是http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

b :编写脚本流程

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

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

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

3、写好http请求中的url和路径;

下载需要将文件保存到本地,jmeter没有现成插件可以用,咱们可以自己写beanshell来实现,把文件保存到本地。

4、添加beanshell,获取到返回的文件内容,保存到一个文件里面。右键线程组,添加-Sampler-BeanShell Sampler,beanshell代码如下:

 

下面是文字版的:

import java.io.*;

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

String file_name = "C:\\Users\\BestTest\\Desktop\\BaiDu.jpg"; //代表存放文件的位置和文件名

File file = new File(file_name);

FileOutputStream out = new FileOutputStream(file);

out.write(result);

out.close();

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

  c : 脚本实例

协议:http

服务器名称:a.hiphotos.baidu.com

端口号:80 (提示,端口号默认是就是80,可以不用写哦)

请求类型:get

路径:/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

脚本截图如下:

下面这个是http请求里面的,就是整个脚本的基本请求。

 

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

 d :运行脚本,查看结果

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

咱们再去桌面上看,文件已经存在桌面上了。

 

 

 

 

posted on 2018-03-14 21:10  染指流年2016  阅读(417)  评论(0编辑  收藏  举报