一篇文章,學會jmeter模擬文件上傳、下載操做

最近不少同窗都在問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  -

相關文章
相關標籤/搜索