1. 圖片上傳
1.1 設置接口參數(shù):填寫方法與普通接口一致
1.2 上傳文件
文件名稱:本地文件保存路徑叹卷,相對路徑在安裝路徑apache-jmeter-5.3\bin下
多文件上傳杰赛,可進行參數(shù)化設置,并添加循環(huán)控制器完成多次調(diào)用
注意:測試文件上傳接口時委煤,消息頭Content-Type應禁用掉
2. 獲取已上傳文件列表
目的:獲取文件下載地址,為后續(xù)下載文件做準備
分別通過正則表達式提取器、json提取器獲取文件下載ip舍咖、路徑镊靴、文件名铣卡、文件數(shù)量(作為下載循環(huán)次數(shù))
注意:每個文件的下載ip一致,只取一個值即可偏竟,匹配數(shù)量為1
? ? ? ? ? ? 每個文件的下載路徑和文件名都不同煮落,每個值都要取到,匹配數(shù)量應為-1(-1即全部)踊谋,這些值會存放在數(shù)組中蝉仇,可用循環(huán)控制器取值
3. 下載并保存文件
3.1 添加ForEach控制器
變量為每個文件的下載地址(因ip相同,故只取路徑作為循環(huán)變量)殖蚕,循環(huán)次數(shù)為文件數(shù)量
3.2 添加下載接口
因文件下載的ip一樣轿衔,所以只保存了一個值,變量名用正則表達式提取出來的變量名即可
文件下載路徑不同睦疫, 每個路徑都進行了保存害驹,通過ForEach控制器來取值,每循環(huán)一次蛤育,數(shù)組下標加1宛官,因此這里的變量名應用循環(huán)控制器輸出的變量名
3.3 添加beanshell斷言,保存文件到本地
import java.io.*;
//獲取接口響應數(shù)據(jù)
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斷言:每次進行文件下載前先確定本地是否有要保存下載文件的目錄瓦糕,沒有則新建底洗,有則先刪除再新建
位置:放在了下載接口前,獲取已上傳文件接口中
刪除文件夾方法:在網(wǎng)上能找到咕娄,直接調(diào)用即可枷恕,調(diào)用時需判斷文件夾是否存在
4.2 調(diào)用上傳文件接口前,先將已有文件刪除谭胚,避免下載過多
通過獲取已上傳列表接口獲取到文件id和數(shù)量徐块,通過ForEach控制器按id進行刪除