最近不少同窗都在問jmeter上傳,下載文件的腳本怎麼作?前端
正巧這陣子忙完有時間,就來「折騰」一番,哈哈java
現整理出來和你們分享web
到底該怎麼作?spring
1、準備工做:shell
上傳接口一個(自行開發解決了)apache
下載接口tomcat
ps:沒有困難創造困難也要上服務器
jmeter4.0版本app
上傳接口源碼post
/** * 文件上傳 */ @RequestMapping(value = "/fileUpload", method = RequestMethod.POST) @ApiOperation(value = "上傳文件", httpMethod = "POST") @ResponseBody public String fileUpload(@RequestParam(value = "file", required = false) MultipartFile file) { if (Objects.isNull(file)) { return getMessage("90110", "上傳文件不能爲空!"); } String fileName = file.getOriginalFilename(); String path = "F:/upload"; File dest = new File(path + "/" + fileName); if (!dest.getParentFile().exists()) { //判斷文件父目錄是否存在 dest.getParentFile().mkdir(); } try { //保存文件 file.transferTo(dest); return getMessage("90000", "上傳文件成功!"); } catch (IllegalStateException e) { // TODO Auto-generated catch block return getMessage("90555", "上傳文件失敗!"); } catch (IOException e) { return getMessage("90555", "上傳文件失敗!"); } }
2、jmeter作上傳的腳本
2.一、編寫腳本流程
首先添加一個線程組,而後在線程組裏面添加一個http請求,由於是發送數據,全部是post請求,寫好上傳的地址,而後寫好文件路徑
一、添加線程組:右鍵測試計劃,添加-Threads(Users)-線程組;
二、添加一個http請求:右鍵線程組,添加-Sampler-HTTP請求;
三、寫好http請求中的url和路徑,以及要上傳的文件
四、添加一個查看結果樹,查看接口調用結果。右鍵線程組,添加-監聽器-查看結果樹;
2.二、腳本實例
協議:http
服務器名稱:127.0.0.1
端口號:8888
請求類型:post
路徑:/fileUpload
body:要選files_upload這個tab頁,寫文件路徑,和參數名
下面是腳本截圖:
2.三、運行腳本,查看結果
看下面的圖,運行結果,接口返回成功,再去我本地F盤(接口裏寫死的)下是否有文件,看一下,到底有沒有成功。
看下面的圖,對應目錄下已經有我們剛纔上傳的文件了,及時間也對得上
可能遇到的坑:
ps:此處爲代碼開發部分,感興趣的同窗能夠了解下及解決方案參考
問題一:關於報錯:
Request」,」exception」:」org.springframework.web.multipart.support.MissingServletRequestPartException」,」message」:」Required request part ‘file’ is not present」,」path」:」/excel/import/upload」} 我錯誤的緣由和解決方法: 主要是因爲前臺傳遞mutipartFile,表單的名字是file,可是再feign調用的時候我使用的是requestPart(「file」). 所以沒法傳遞。 修改前端表單的文件名爲file
問題二:關於報錯
400 bad request: Required request part ‘file’ is not present 猜想經過@RequestParam(value = 「file」, required = false)這種方式來取參的話,file字段就是可選的了。 這個錯誤大概是說沒有file這個字段,而這個字段又是必須的,即便用了註釋,以下面 @RequestParam("file") MultipartFile file 那麼就須要咱們去檢查下前端頁面是否存在這個字段了
問題三:關於報錯
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found 不手動添加content-type後就好了:此時訪問成功,去掉消息頭多餘的添加
3、jmeter下載文件
3.一、準備工做:
圖片的url:
http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg
3.二、編寫腳本流程
首先添加一個線程組,而後在線程組裏面添加一個http請求,由於是獲取數據,全部是get請求,寫好下載的地址
一、添加線程組:右鍵測試計劃,添加-Threads(Users)-線程組;
二、添加一個http請求:右鍵線程組,添加-Sampler-HTTP請求;
三、寫好http請求中的url和路徑;
四、添加beanshell,獲取到返回的文件內容,保存到一個文件裏面。右鍵線程組,添加-Sampler-BeanShellSampler
beanshell代碼以下:
importjava.io.*; byte[]result=prev.getResponseData();//這個是獲取到請求返回的數據,prev是獲取上個請求的返回 Stringfile_name="F:\\BaiDu.jpg";//表明存放文件的位置和文件名 Filefile=newFile(file_name); FileOutputStreamout=newFileOutputStream(file); out.write(result); out.close();
五、添加一個查看結果樹,查看接口調用結果。右鍵線程組,添加-監聽器-查看結果樹;
3.三、腳本實例
協議:http
服務器名稱:a.hiphotos.baidu.com
端口號:80 (提示,端口號默認是就是80,能夠不用寫哦)
請求類型:get
路徑:
/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg
腳本截圖以下:
下面這個是beanshell裏面的內容,也就是我們保存文件的操做。
3.四、運行腳本,查看結果
看下面的圖,運行結果,已經能夠看到剛纔這張圖片了,並且請求都是成功的。
我們再去F盤根目錄下看,文件已經存在F盤根目錄下了
以上就是利用jmeter實現上傳下載操做啦,感興趣的同窗能夠本身動動手練習下!(1079636098)軟件測試學習羣裏一塊兒討論交流今後再也不孤單。
- End -