日常工作上測試的時候,會有一些場景是匯入/上傳檔案。我們系統多是excel檔案,這裡就用excel檔案為例,詳述一下此次測試遇到的坑。最終結果是成功的,請看到最後!
1、獲取介面的一些引數資訊
先按F12調出控制檯,然後實際操作一次,看一下呼叫的一些介面以及傳參資訊(會用到的,圖中標註了1,2,3,4)
1、2是伺服器ip、請求方式以及路徑情況
3是資訊頭
4是請求引數
2、在jmeter上開始寫
注意,這裡引數名稱【file】會是一個坑點
下面是請求頭的配置。注意,這裡引數【Content-Type】會是一個坑點
配置好這些引數後,執行,發現報錯
檢視請求引數等資訊來分析
3、執行報錯,開始一步步解決問題
比對發現引數沒問題,但是對【fileUpload:(binary)】這一個引數有疑問,所以去問了前端開發
https://blog.csdn.net/weixin_44994731/article/details/111238747---------對這種流形式的講解
根據開發給的文件來看,是資訊頭中配置的Content-Type引數跟以前不太一樣,我比對了一下,我配置的是對的,問題不是在這裡
後又跟前端開發要了一個之前他們聯調的引數請求來比對,發現Content-Type配置的確實不對
修改了頭資訊後,再次嘗試,仍舊報錯,再次比對,發現我的Contet-Type取值仍舊不對
再次去百度學習一波後,意識到,在請求引數這裡這個Content-Type指的是這個引數的型別,而不是在頭資訊中配置
且這裡的name指的是引數名稱,因此對檔案的一些配置引數資訊做了調整(引數名稱改成fileUplod是因為第一步獲取引數時請求引數中寫的時fileUpload,是要用在這裡的)
excel檔案的MIME型別是:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
儲存後執行,仍舊報錯(跟之前手動操作的引數資訊各種比對,沒有發現錯誤。心態有點崩......)
想著是不是系統暫時沒法訪問,就再次手動操作一次,繼續比對引數
這次發現了不同,請求頭資訊中【Content-Type】的值,不一樣了!!!這個是動態變化的
繼續問百度,找到一個同病相憐的老哥(帶箭頭的是重點需要看的資訊),最終解決辦法是:只要把HTTP資訊頭裡面的content-type整個移除即可。
把HTTP資訊頭裡面的content-type整個移除後再次執行,成功!!