1. 程式人生 > 其它 >Jmeter上傳和下載檔案介面除錯

Jmeter上傳和下載檔案介面除錯

 目錄

上傳檔案

在除錯上傳或匯入檔案的介面時,首先需要和前端溝通上傳檔案的MIME型別,一般來說,如果只上傳某一類檔案,則MIME會有對應的型別,但如果上傳的檔案沒有型別限制,一般會採用:multipart/form-data;

下面是一個匯入SN白名單的介面,使用的MIME型別為:multipart/form-data,介面具體資訊如下:

匯入白名單介面地址:172.16.160.206:8090/AuthServer/api/whitelist/import
請求方式:POST

請求引數:
Int: groupId
File:uploadFile

返回資料:
{
“code”: 0,
“msg”: “SUCCESS”,
“data”: null,
“timestamp”: 1524657294334
}

1.先新建一個http請求,選擇HTTP請求方式為POST,輸入介面訪問路徑,內容編碼輸入:utf-8,如圖:

2.在引數tab頁中輸入groupId及其取值;

3.切換到檔案上傳tab頁,檔名稱處輸入檔案的存放路徑,我這裡放的是Linux下的路徑,如果是windows下的路徑則直接複製路徑過來即可,如:E:\project\authorServer\V2\apitest\Interface test\11.xlsx

4.引數名稱輸入入參的名稱:uploadFile,MIME型別輸入:multipart/form-data,勾選“對POST使用multipart/form-data”;

5.所有資訊錄入完畢後,執行介面,返回資料正確,則檔案上傳成功。

6.需要特別注意的是,如果需要用到HTTP資訊頭管理器,裡面不要配置Content_Type,將該引數刪掉,否則會造成匯入或上傳不成功;

下載檔案

下載檔案相對來說比較麻煩點,需要使用BeanShell後置處理程式處理匯出的檔案。放到Linux系統下進行jenkins整合時,因為匯出來的檔案顯示亂碼,所以會造成構建失敗。

下面著眼於將jmeter介面檔案放在Linux系統下的jenkins中進行構建來講解。

1.在http請求下新增BeanShell後置處理程式,通過下面的程式碼將結果處理為:匯出成功或匯出失敗,可以方便的進行斷言;

2.將斷言設定為:匯出成功 來進行斷言;

程式碼如下:

  1. String resPonseCode = prev.getResponseCode();
  2. if(resPonseCode.equals("200")){
  3. ResponseData = prev.getResponseData();
  4. String ResponseDataType = ResponseData.getClass().getName();
  5. if(ResponseDataType.equals("[B")){
  6. byte[] result = ResponseData; //這個是獲取到請求返回的資料,prev是獲取上個請求的返回
  7. log.warn(result.getClass()+"");
  8. String file_name = "/home/jenkins_home/workspace/AuthServer-Interface-test/Interface test/jmeterDownloadFiles/snwhitelist_${__time(yyyyMMddHHmmss,)}.xlsx"; //代表存放檔案的位置和檔名
  9. File file = new File(file_name);
  10. FileOutputStream out = new FileOutputStream(file);
  11. out.write(result);
  12. out.close();
  13. if(file.exists()){
  14. //根據實際情況各業務自己判斷是否需要補充對匯出檔案的內容驗證,此處暫時只判斷檔案是否存在
  15. prev.setResponseData("匯出成功","UTF-8");
  16. log.warn("匯出成功");
  17. }
  18. else{
  19. prev.setResponseData("匯出失敗","UTF-8");
  20. log.warn("匯出失敗");
  21. }
  22. }
  23. }