文件(图片)上传与下载接口

1. 图片上传

1.1 设置接口参数:填写方法与普通接口一致

1.2 上传文件

文件名称:本地文件保存路径,相对路径在安装路径apache-jmeter-5.3\bin下

多文件上传,可进行参数化设置,并添加循环控制器完成多次调用

注意:测试文件上传接口时,消息头Content-Type应禁用掉

2. 获取已上传文件列表

目的:获取文件下载地址,为后续下载文件做准备

分别通过正则表达式提取器、json提取器获取文件下载ip、路径、文件名、文件数量(作为下载循环次数)

注意:每个文件的下载ip一致,只取一个值即可,匹配数量为1

            每个文件的下载路径和文件名都不同,每个值都要取到,匹配数量应为-1(-1即全部),这些值会存放在数组中,可用循环控制器取值

3. 下载并保存文件

3.1 添加ForEach控制器

变量为每个文件的下载地址(因ip相同,故只取路径作为循环变量),循环次数为文件数量

3.2 添加下载接口

因文件下载的ip一样,所以只保存了一个值,变量名用正则表达式提取出来的变量名即可

文件下载路径不同, 每个路径都进行了保存,通过ForEach控制器来取值,每循环一次,数组下标加1,因此这里的变量名应用循环控制器输出的变量名

3.3 添加beanshell断言,保存文件到本地

import java.io.*;

//获取接口响应数据

byte[] result = prev.getResponseData();

//获取正则表达式提取的文件名 当做本地保存的名称

String _file = vars.get("url");

//设置文件路径

String file_name = "D:\\Jmeter练习\\下载图片\\"+ _file;

File file = new File(file_name);

FileOutputStream out = new FileOutputStream(file);

out.write(result);

out.close();

4. 其他

4.1 增加beanshell断言:每次进行文件下载前先确定本地是否有要保存下载文件的目录,没有则新建,有则先删除再新建

位置:放在了下载接口前,获取已上传文件接口中

删除文件夹方法:在网上能找到,直接调用即可,调用时需判断文件夹是否存在

4.2 调用上传文件接口前,先将已有文件删除,避免下载过多

通过获取已上传列表接口获取到文件id和数量,通过ForEach控制器按id进行删除

你可能感兴趣的:(文件(图片)上传与下载接口)