jmeter-文件上傳和下載文件


jmeter-文件上傳和下載文件

文件上傳

一、測試功能:

1、導入excel文件。

二、重點步驟:

1、Fiddler抓取入參,其中BODY信息如下:

Name:Content-Disposition: form-data; name="CONTENT"; filename="200SKU.xlsx"

Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Value:<file>

注:其中name為參數名稱,Content-Type為MIME類型

2、jmeter添加sample之HTTP請求,填寫內容如下圖:

三、注意事項

1、在http請求過程中上傳附件(Excel文件、圖片、安裝包、視頻文件等)雖然基本上Content-Type為:multipart/form-data,但Content-Type也有不一樣的,一般情況下Excel文件的Content-Type為:application/vnd.openxmlformats-officedocunment,spreadsheetml.sheet;圖片Content-Type為: image/jpeg,app包Content-Type為:application/octet-stream。最終填寫的值要以抓包中的入參信息為准。

2、Request Headers中的Content-Type在此HTTP請求中不放在Parameters中維護,因為它是動態的信息。

3、喜歡粘貼復制HTTP請求的朋友們要注意,除了上傳附件的請求中要勾選 Use multipart/form-data for POST和Browser-compatible headers,下面的請求就要去勾選啦!並且如果HTTP信息頭管理器是公用的話要注意區別開來,否則腳本會報錯。

4、Usemultipart/form-data for POST:當發送HTTP POST請求時,使用Use multipart/form-data方法發送,可用它做文件上傳,這個屬性是與方法POST綁定的。這里需要勾選此項。

5、Browser-compatibleheaders:瀏覽器兼容模式,如果使用了Use multipart/form-data for POST,這里建議勾選此項。

6、按以上方式維護HTTP請求,執行腳本,如果報錯且提示“導入的數據為空”,那么需要把Implementation選擇為“HttpClient4”或者“Java”。選擇哪一個需要用Badboy錄制一下后導出成.jmx文件,再用jmeter打開查看。

7、Implementation中:

Java:使用的http是使用的JAVA JVM提供的方法,有相關的限制:1)連接如何重用在請求中沒有控制;2)當jmeter釋放了一個請求后,在同樣的進程中可能不會再使用了;3)只使用於單進程模式;4)HTTPS代理請求有兩個bug沒存在;5)不支持虛擬主機;6)不支持相關的方法;7)不支持存儲證書的請求。

HttpClient4:使用Apache HttpClient 4.1部件。

空白:使用HTTP默認請求中的配置或jmeter.properties中jmeter.httpsample中的配置。

 

文件下載

3.1准備工作

圖片的url是:http://a.hiphotos.baidu.com/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

3.2 編寫腳本流程

      首先添加一個線程組,然后在線程組里面添加一個http請求,因為是獲取數據,所有是get請求,寫好下載的地址

              1、添加線程組 :右鍵測試計划,添加-Threads(Users)-線程組;

              2、添加一個http請求:右鍵線程組,添加-Sampler-HTTP請求;

              3、寫好http請求中的url和路徑;

        不過這個是下載腳本,下載的話,有一步是要把文件保存到咱們本地的,這個jmeter沒有現成的東西可以用,就得咱們自己寫beanshell來實現,把文件保存到本地。

        當然你如果要寫beanshell的話,你得會它的語法,它就是java寫的。不過也不用愁不會寫java咋整,這個保存文件的是死格式就這么寫,記住就行了,需要下載的時候復制過去就行。

              4、添加beanshell,獲取到返回的文件內容,保存到一個文件里面。右鍵線程組,添加-Sampler-BeanShell Sampler,beanshell代碼如下:

import java.io.*;
 
byte[] result = prev.getResponseData();  //這個是獲取到請求返回的數據,prev是獲取上個請求的返回
 
String file_name = "C:\\Users\\bjniuhanyang\\Desktop\\BaiDu.jpg"; //代表存放文件的位置和文件名
 
File file = new File(file_name);
 
FileOutputStream out = new FileOutputStream(file);
 
out.write(result);
 
out.close(); 

 

 5、添加一個查看結果樹,查看接口調用結果。右鍵線程組,添加-監聽器-查看結果樹;

   3.3 腳本實例

       協議:http
       服務器名稱:a.hiphotos.baidu.com

       端口號:80 (提示,端口號默認是就是80,可以不用寫哦)
       請求類型:get

       路徑:/image/pic/item/4b90f603738da977b1e8c6c7ba51f8198718e313.jpg

     腳本截圖如下:

 

      下面這個是http請求里面的,也就是咱們獲取圖片的

      

 

 

      下面這個是beanshell里面的內容,也就是咱們保存文件的操作。

     

 

      2.4 運行腳本,查看結果

          看下面的圖,運行結果,已經可以看到剛才這張圖片了,而且請求都是成功的。

 

  咱們再去桌面上看,文件已經存在桌面上了。

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM