背景:在JMeter組件之HTTP請求--上傳文件中,介紹瞭如何使用JMeter調用上傳文件接口進行文件上傳。但最近在用這種方式使用的時候遇到新的問題。這裏簡要記錄如何解決的這個問題。
步驟:基本的步驟詳見JMeter組件之HTTP請求--上傳文件
問題:文件未能正常上傳,接口返回錯誤碼:400
先列舉走的“彎路”:
1. 選擇客戶端的實現方式。在HTTP請求的Advanced->Client implementation中選擇HttpClient4;不選擇任何方式。
2. 修改了MIME類型。不輸入;輸入multpart/form-data...
上述方式都未能解決問題,出現返回碼:500,或者413。總之都沒有成功。
原因:文件過大,這裏上傳的文件已經達到了300M+,JMeter是使用Java實現的客戶端,所以在上傳文件時,使用了Heap,由於缺省配置比較小,所以導致文件上傳無法成功。當Advanced->Client implementation中選擇Java時,控制檯日誌有報錯:Java.lang.OutOfMemoryError: Java heap space...
解法:
1. 在JMeter的安裝目錄下,找到bin/jmeter.bat文件,使用記事本打開。
2. 查找字段:HEAP。缺省設置爲: set HEAP=-Xms512m -Xmx512m
3. 修改:set HEAP=-Xms2048m -Xmx2048m
4. 保存並重啓JMeter。
5. 重新測試接口後成功。
參考資料: