問題描述:有的請求需要上傳文件,這裏就需要把http請求裏把文件和參數一起傳給服務器。
解決方案一:
1、在請求上勾選use multipart/form-data for post
2、在 parameters上寫上需要上傳的文件的參數名,值處要進行參數化(可以用fiddler和httpwatch、badboy等查看上傳文件的參數名);也可以不寫
3、在files upload上寫上文件相關信息,具體如下:
1)文件名稱:要上傳的文件所在路徑(如:D:\scriptFile\jmeter\data\ggpt-czda-weiming.xls)
2)參數名稱:與前面寫的參數名一致(可以用fiddler和httpwatch、badboy等查看上傳文件的參數名)
3)MIME類型:application/vnd.ms-excel(因爲這裏要上傳的是excel,所以這麼寫,別的類型百度一下)
解決方案二:
有時候會遇到直接傳可能總是報錯,也找不到原因,這時就可以考慮用BeanShell進行文件上傳(用BeanShell的前置處理器或後置處理器都可以,根據需要而定)
這裏可能需要從源代碼去找上傳文件這裏的腳本,找到對應的腳本,粘貼過來放入script輸入框中,
示例:題庫上傳word文檔的腳本,選擇了filename的命名規則這一句放入的BeanShell的script輸入框。
uploader.on( 'beforeFileQueued', function( file ) {
upError = false;
var pick=this.options.pick;
pick=pick.split("_")[1];
var paperID=$(this.options.pick).attr("paperID");
$("#uploadPaperId").val(paperID);
file.name=Math.random()+file.name;
checkIsUpload(paperID,file,uploaders[pick]);
});