天天看點

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

最近很多同學都在問jmeter上傳,下載下傳檔案的腳本怎麼做?

正巧這陣子忙完有時間,就來“折騰”一番,哈哈

現整理出來和大家分享

到底該怎麼做?

一、準備工作:

上傳接口一個(自行開發解決了)

下載下傳接口

ps:沒有困難創造困難也要上

jmeter4.0版本

上傳接口源碼

/**      * 檔案上傳      */     @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", "上傳檔案失敗!");         }     }
           

二、jmeter做上傳的腳本

2.1、編寫腳本流程

首先添加一個線程組,然後線上程組裡面添加一個http請求,因為是發送資料,所有是post請求,寫好上傳的位址,然後寫好檔案路徑

1、添加線程組:右鍵測試計劃,添加-Threads(Users)-線程組;

2、添加一個http請求:右鍵線程組,添加-Sampler-HTTP請求;

3、寫好http請求中的url和路徑,以及要上傳的檔案

4、添加一個檢視結果樹,檢視接口調用結果。右鍵線程組,添加-監聽器-檢視結果樹;

2.2、腳本執行個體

協定:http

伺服器名稱:127.0.0.1

端口号:8888

請求類型:post

路徑:/fileUpload

body:要選files_upload這個tab頁,寫檔案路徑,和參數名

下面是腳本截圖:

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

2.3、運作腳本,檢視結果

看下面的圖,運作結果,接口傳回成功,再去我本地F盤(接口裡寫死的)下是否有檔案,看一下,到底有沒有成功。

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

看下面的圖,對應目錄下已經有咱們剛才上傳的檔案了,及時間也對得上

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

可能遇到的坑:

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後就行了:此時通路成功,去掉消息頭多餘的添加
           

三、jmeter下載下傳檔案

3.1、準備工作:

圖檔的url:

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

3.2、編寫腳本流程

首先添加一個線程組,然後線上程組裡面添加一個http請求,因為是擷取資料,所有是get請求,寫好下載下傳的位址

1、添加線程組:右鍵測試計劃,添加-Threads(Users)-線程組;2、添加一個http請求:右鍵線程組,添加-Sampler-HTTP請求;3、寫好http請求中的url和路徑;4、添加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();
           

5、添加一個檢視結果樹,檢視接口調用結果。右鍵線程組,添加-監聽器-檢視結果樹;

3.3、腳本執行個體

協定:http伺服器名稱:a.hiphotos.baidu.com端口号:80 (提示,端口号預設是就是80,可以不用寫哦)請求類型:get

路徑:

/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg腳本截圖如下:

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

下面這個是beanshell裡面的内容,也就是咱們儲存檔案的操作。

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

3.4、運作腳本,檢視結果

看下面的圖,運作結果,已經可以看到剛才這張圖檔了,而且請求都是成功的。

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

咱們再去F盤根目錄下看,檔案已經存在F盤根目錄下了

bat 判斷檔案名字含有某些字段_一篇文章,學會jmeter模拟檔案上傳、下載下傳操作

以上就是利用jmeter實作上傳下載下傳操作啦,感興趣的同學可以自己動動手練習下!(1079636098)軟體測試學習群裡一起讨論交流從此不再孤單。

- End -

如果對python自動化測試、web自動化、接口自動化、移動端自動化、面試經驗交流等等感興趣的測試人,可以關注我。加入我們免費擷取更多軟體測試進階資料!

繼續閱讀