『動善時』JMeter基礎 — 15、使用JMeter實現上傳文件
在上一篇文章【使用JMeter發送Post請求】中,我們只介紹了在參數選項頁中添加數據,並且使用了兩種提交數據類型application/x-www-form-urlencoded
和multipart/form-data
進行演示。
這篇文章我們說明如何使用文件上傳選項頁,實現Post請求上傳文件。
1、用於演示的項目說明
Httpbin
是一個使用Python + Flask
編寫的HTTP Request & Response Service
項目,該服務主要用於測試 HTTP庫,你可以向他發送請求,然後他會按照指定的規則將你的請求返回(查看你所發送請求中的信息)。
Httpbin
支持HTTP/HTTPS
請求,支持所有的HTTP動詞,能測試HTTP請求和響應的各種信息,比如 cookie
、ip
、headers
和登錄驗證等。
Httpbin
接口地址://httpbin.org/
提示:按照規則請求
//httpbin.org/
,會返回發送請求報文的完整內容。具體可查看//www.cnblogs.com/liuyuelinfighting/p/14788860.html文章,有詳細說明。
2、測試計劃內包含的元件
添加元件操作步驟:
- 創建測試計劃。
- 創建線程組:
選中「測試計劃」右鍵 —> 添加 —> 線程(用戶) —> 線程組
。 - 在線程組裏面,添加取樣器「HTTP請求」組件:
選中「線程組」右鍵 —> 添加 —> 取樣器 —> HTTP請求
。 - 在線程組裏面,添加監聽器「察看結果樹」組件:查看結果,
選中「線程組」右鍵 —> 添加 —> 監聽器 —> 察看結果樹
。
最終測試計劃中的元件如下:
點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。
3、HTTP請求界面內容
取樣器「HTTP請求」界面,如下圖所示:
關於參數編輯如下:
(1)編寫接口所需要上傳的文件數據
上傳文件選項頁內容:
說明:
- 上傳文件時,需要勾選
Use multipart/form-data for post
選項。(我個人實踐中發現,在上傳文件選項頁編輯參數後,Post請求默認會以multipart/form-data
數據格式進行提交數據,勾不勾選沒有區別。但是工作中按照接口文檔來操作,如果沒有說明最後好勾選上。) - 在上傳文件選項頁中,需要填寫三個參數:
1)文件名稱:輸入上傳文件的路徑;(注意:通過以JMeter腳本所在目錄為目標點,可以使用文件的相對路徑。)
2)參數名稱:自定義變量名,例如Filedata
(被賦值於文件內容);
3)MIME類型:例如application/octet-stream
。 - 參數選項頁和消息體數據選項頁只能選擇其一。
(2)編寫接口所需要的其他數據
我們在上傳文件的同時,也可以在參數選項頁中添加接口需要其他參數:
4、查看結果
執行腳本後,結果如下圖所示:
我們可以看到文件中的內容和Form表單中的數據,都發送出去了。
5、總結
在日常工作中,如果接口寫的很詳細,我們就完全按照接口文檔的要求編寫JMeter腳本。
如果接口中有部分內容寫的不明確,我們可以按照通用的請求規範來編寫JMeter腳本。
如果面對一個項目沒有接口文檔,那我們就需要使用工具抓取請求,來查看該接口具體的內容,當然可以找開發溝通了解。
6、補充:MIME類型簡介
(1)MIME說明
MIME(Multipurpose Internet Mail Extensions)
:多用途網絡郵件擴展類型,可被稱為Media type
或Content 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/midi 或audio/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平台) |