一、Jmeter请求上传文件接口
例如,有个上传文件的接口,接口文档如下图:
然后编写脚本,按照前面文章中写的Http接口测试流程,添加一个线程组,在线程组里面添加一个http请求,请求方式、请求路径、再选择需要上传的文件,具体步骤如下:
1、添加线程组 (右击 测试计划-添加-Threads(Users)-线程组)
2、添加一个http请求(右击 线程组-添加-Sampler-HTTP请求)
3、填写Http请求中的url和路径,以及要上传的文件
4、添加一个察看结果树(右击 线程组-添加-监听器-察看结果树),查看接口调用结果
二、Jmeter利用beanshell实现文件下载
下载文件,就是把某个文件保存到本地。所以在百度上找了一个图片的url :https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1521452329967&di=9072d7127e431f505bdabfabed39d730&imgtype=0&src=http%3A%2F%2Fimg1.ph.126.net%2FfHIKUCeB4M8HKg0VskWh9A%3D%3D%2F6597936181820465731.jpg
然后编写脚本,按照前面文章中写的Http接口测试流程,添加一个线程组,在线程组里面添加一个http请求,请求方式(因为是获取数据,所以是get请求)、写好下载的地址,由于要把文件保存到咱们本地的,jmeter没有现成的东西可以用,需要写beanshell来实现,把文件保存到本地,具体步骤如下:
1、添加线程组 (右击 测试计划-添加-Threads(Users)-线程组)
2、添加一个http请求(右击 线程组-添加-Sampler-HTTP请求)
3、填写Http请求中的url和路径
4、添加BeanShell Sampler(右击 线程组-添加-Sampler-BeanShell Sampler)
5、编写BeanShell Sample 代码如下:
import java.io.*;
byte[] result = prev.getResponseData(); //这个是获取到请求返回的数据,prev是获取上个请求的返回
String file_name = "E:\PIC\baidu.jpg"; //代表存放文件的位置和文件名, 相对路径的话会保存到bin 目录下,且保存的文件名的后缀与原图一致
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
6、添加一个察看结果树(右击 线程组-添加-监听器-察看结果树),查看接口调用结果
再在电脑上打开 BeanShell中写的存放文件的路径,查看下载的图片,与找的原图(上面察看结果数HTTP请求响应数据里的图片)一致