『動善時』JMeter基礎 — 15、使用JMeter實現上傳文件

在上一篇文章【使用JMeter發送Post請求】中,我們只介紹了在參數選項頁中添加數據,並且使用了兩種提交數據類型application/x-www-form-urlencodedmultipart/form-data進行演示。

這篇文章我們說明如何使用文件上傳選項頁,實現Post請求上傳文件。

1、用於演示的項目說明

Httpbin是一個使用Python + Flask編寫的HTTP Request & Response Service項目,該服務主要用於測試 HTTP庫,你可以向他發送請求,然後他會按照指定的規則將你的請求返回(查看你所發送請求中的信息)。

Httpbin支持HTTP/HTTPS請求,支持所有的HTTP動詞,能測試HTTP請求和響應的各種信息,比如 cookieipheaders 和登錄驗證等。

Httpbin接口地址://httpbin.org/

提示:按照規則請求//httpbin.org/,會返回發送請求報文的完整內容。

具體可查看//www.cnblogs.com/liuyuelinfighting/p/14788860.html文章,有詳細說明。

2、測試計劃內包含的元件

添加元件操作步驟

  1. 創建測試計劃。
  2. 創建線程組:選中「測試計劃」右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組裏面,添加取樣器「HTTP請求」組件:選中「線程組」右鍵 —> 添加 —> 取樣器 —> HTTP請求
  4. 在線程組裏面,添加監聽器「察看結果樹」組件:查看結果,選中「線程組」右鍵 —> 添加 —> 監聽器 —> 察看結果樹

最終測試計劃中的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。

3、HTTP請求界面內容

取樣器「HTTP請求」界面,如下圖所示:

image

關於參數編輯如下:

(1)編寫接口所需要上傳的文件數據

上傳文件選項頁內容:

image

說明

  1. 上傳文件時,需要勾選Use multipart/form-data for post選項。(我個人實踐中發現,在上傳文件選項頁編輯參數後,Post請求默認會以multipart/form-data數據格式進行提交數據,勾不勾選沒有區別。但是工作中按照接口文檔來操作,如果沒有說明最後好勾選上。)
  2. 上傳文件選項頁中,需要填寫三個參數:
    1)文件名稱:輸入上傳文件的路徑;(注意:通過以JMeter腳本所在目錄為目標點,可以使用文件的相對路徑。)
    2)參數名稱:自定義變量名,例如Filedata(被賦值於文件內容);
    3)MIME類型:例如application/octet-stream
  3. 參數選項頁和消息體數據選項頁只能選擇其一。

(2)編寫接口所需要的其他數據

我們在上傳文件的同時,也可以在參數選項頁中添加接口需要其他參數:

image

4、查看結果

執行腳本後,結果如下圖所示:

image

我們可以看到文件中的內容和Form表單中的數據,都發送出去了。

5、總結

在日常工作中,如果接口寫的很詳細,我們就完全按照接口文檔的要求編寫JMeter腳本。

如果接口中有部分內容寫的不明確,我們可以按照通用的請求規範來編寫JMeter腳本。

如果面對一個項目沒有接口文檔,那我們就需要使用工具抓取請求,來查看該接口具體的內容,當然可以找開發溝通了解。

6、補充:MIME類型簡介

(1)MIME說明

MIME(Multipurpose Internet Mail Extensions):多用途網絡郵件擴展類型,可被稱為Media typeContent type

MIME用於設定某種類型的文件,當被瀏覽器打開的時候,需要用什麼樣的應用程序。多用於HTTP通信和設定文檔類型例如HTML。

即:之所以叫多用途網絡郵件擴展類型,因為它最早被用於電子郵件系統,後用於瀏覽器。

概括的說:MIME類型即Content-Type的值,服務端會檢測這個Content-Type的值。

(2)常見類型

如下表:

文件後綴 Mime類型 說明
.flv flv/flv-flash 在線播放
.html或.htm text/html 超文本標記語言文本
.rtf application/rtf RTF文本
.gif image/gif GIF圖形
.jpeg.jpg image/jpeg JPEG圖形
.au audio/basic au聲音文件
.mid.midi audio/midiaudio/x-midi MIDI音樂文件
.ra.ram.rm audio/x-pn-realaudio RealAudio音樂文件
.mpg.mpeg.mp3 video/mpeg MPEG文件
.avi video/x-msvideo AVI文件
.gz application/x-gzip GZIP文件
.tar application/x-tar TAR文件
.exe application/octet-stream 下載文件類型
.rmvb video/vnd.rn-realvideo 在線播放
.txt text/plain 普通文本
.mrp application/octet-stream MRP文件(國內普遍的手機)
.ipa application/iphone-package-archive IPA文件(IPHONE)
.deb application/x-debian-package-archive DED文件(IPHONE)
.apk application/vnd.android.package-archive APK文件(安卓系統)
.cab application/vnd.cab-com-archive CAB文件(Windows Mobile)
.xap application/x-silverlight-app XAP文件(Windows Phone 7)
.sis application/vnd.symbian.install-archive SIS文件(symbian平台)
.jar application/java-archive JAR文件(JAVA平台手機通用格式)
.jad text/vnd.sun.j2me.app-descriptor JAD文件(JAVA平台手機通用格式)
.sisx application/vnd.symbian.epoc/x-sisx-app SISX文件(symbian平台)

參考://www.cnblogs.com/alummox/p/9515147.html