Jmeter測試上傳圖片base64編碼接口

最近遇到一個項目,接口中有須要上傳圖片的字段,它是以圖片base64編碼格式的形式傳遞的。(Base64目前主要用於HTML五、移動開發等不考慮IE6的場景中。)請求報文示例以下:css

Jmeter測試上傳圖片base64編碼接口

關於如何測試實現的問題:

1)如何對圖片進行編碼?
2)爲了實現接口自動化測試,如何能實現自動base64編碼html

解決方案:shell

方法1:利用圖片在線轉碼base64編碼網站進行編碼。
編碼網站:http://tool.css-js.com/base64.html
Jmeter測試上傳圖片base64編碼接口服務器

上傳本地圖片,根據須要勾選:「包含頭」等選項,生成圖片base64編碼便可。ide

缺點:測試不一樣的圖片時,都須要手工進行編碼,再複製編碼到接口請求報文中,沒法實現自動化,測試效率低。測試

方法2:利用Jmeter的beanshell編寫圖片base64編碼的轉換代碼
1)編寫圖片base64編碼代碼
通常狀況,開發會提供該代碼;若是沒有,也不用怕,百度一下便可,或者有代碼功底的同窗可本身寫。部分代碼以下:網站

Jmeter測試上傳圖片base64編碼接口

2)生成jar包,放置在${JMETER_HOME}\lib\ext目錄下編碼

3)編寫beanshell,調用編碼方法進行編碼
Jmeter測試上傳圖片base64編碼接口orm

4)參數化請求報文
Jmeter測試上傳圖片base64編碼接口htm

實際請求報文:
Jmeter測試上傳圖片base64編碼接口

此方法較好的解決了手工圖片base64編碼的問題,爲後續的自動化測試提供支持。

擴展一下:若是上傳圖片不是以base64編碼的格式,即以圖片文件的方式進行發送請求報文時,該如何處理?

解決方案:利用jmeter的sampler中「同請求一塊兒發送文件」的功能
Jmeter測試上傳圖片base64編碼接口

a、點擊【同請求一塊兒發送文件】欄目的添加按鈕;
b、點擊瀏覽按鈕,選擇一張須要上傳的圖片,地址將會自動記錄到文件名稱欄目;
c、填寫參數名稱,此處爲【image】;
d、MIME類型爲multipart/form-data

(注意:另一種設置就是>爲了上傳文件,還必須勾選"Use multipart/form-data for POST",而後MIME類型可根據實際狀況填寫,不然request將不包含上傳的文件。)

保存該HTTP請求,並執行,查看服務器,便可發現,上面步驟選擇的圖片已經成功上傳到服務器。如需進行圖片參數化,只需對圖片的路徑進行參數化便可。

相關文章
相關標籤/搜索