1. 程式人生 > 實用技巧 >jmeter(四)HTTP請求

jmeter(四)HTTP請求

啟動jmeter,建立一個測試計劃

這裡再次說說怎麼安裝和啟動jmeter吧,昨天下午又被人問到怎樣安裝和使用,我也是醉了;在我看來,百度能解決百分之八十的問題,特別是基礎的問題。。。

安裝:去官網下載一個安裝包,官網地址:jmeter.apache.org(Windows系統下載.zip包,Linux系統下載.tgz包)

環境:jmeter是一個純java工具,因此,JDK必不可少,現在最新版的jmeter是3.1,做了很多的優化,建議使用1.7及以上的JDK

JDK版本請注意和作業系統吻合,下載後預設安裝,一般不需要修改環境變數

啟動:開啟jmeter資料夾,bin檔案→jmeter.bat(Windows執行檔案)檔案,就可以啟動jmeter了

啟動jmeter,預設有一個測試計劃,然後,修改計劃名稱,儘量使其變得有意義,容易看懂,然後,新建一個執行緒組

這裡執行緒數我設定為1,方便演示

然後,新增一個http資訊頭管理器

這裡解釋一下為什麼要新增http資訊頭管理器:

JMeter不是瀏覽器,因此其行為並不和瀏覽器完全一致。這些JMeter提供的配置元件中的HTTP屬性管理器用於儘可能模擬瀏覽器行為,在HTTP協議層上傳送給被測應用的http請求

(1)HTTP Request Defaults(請求預設值)

用於設定其作用範圍內的所有HTTP的預設值,可被設定的內容包括HTTP請求的host、埠、協議等

(2)HTTP Authorization Manager(授權管理器)

用於設定自動對一些需要NTLM驗證的頁面進行認證和登入

(3)HTTP Cache Manager

用於模擬瀏覽器的Cache行為。為Test Plan增加該屬性管理器後,Test Plan執行過程中會使用Last-Modified、ETag和Expired等決定是否從Cache中獲取相應的元素

(4)HTTP Cookie Manager(cookie管理器)

用於管理Test Plan執行時的所有Cookie。HTTP Cookie Manager可以自動儲存伺服器傳送給客戶端的所有Cookie,並在傳送請求時附加上合適的Cookie

同時,使用者也可以在HTTP Cookie Manager中手工新增一些Cookie,這些被手工新增的Cookie會在傳送請求時被自動附加到請求

(5)HTTP Header Manager(資訊頭管理器)

用於定製Sampler發出的HTTP請求的請求頭的內容。不同的瀏覽器發出的HTTP請求具有不同的Agent

訪問某些有防盜鏈的頁面時需要正確的Refer...這些情況下都需要通過HTTP Header Manager來保證傳送的HTTP請求是正確的

http資訊頭管理器新增好之後,需要填入資訊頭的名稱以及對應的值,如下

Content-Type意思可以理解為引數名稱、型別,值下面輸入對應的引數型別就行了,這裡我測試時候需要傳輸json型別,因此就填入了application/json

接著,新增Sampler(取樣器)→http請求

按照截圖所示,填入測試的伺服器地址、埠、所用的戶協議、方法,這裡方法我用的是POST,然後填入路徑,選擇Body Data;

關於http請求的的屬性引數說明:

1)名稱:用於標識一個sample。建議使用一個有意義的名稱

2)註釋:對於測試沒任何影響,僅用來記錄使用者可讀的註釋資訊

3)伺服器名稱或IP:http請求傳送的目標伺服器名稱或者IP地址,比如http://www.baidu.com

4)埠號:目標伺服器的埠號,預設值為80,可不填

5)協議:向目標伺服器傳送http請求時的協議,http/https,大小寫不敏感,預設http

6)方法:傳送http請求的方法(連結:http://www.cnblogs.com/imyalost/p/5630940.html)

7)Content encoding:內容的編碼方式(Content-Type=application/json;charset=utf-8)

8)路徑:目標的URL路徑(不包括伺服器地址和埠)

9)自動重定向:如果選中該項,發出的http請求得到響應是301/302,jmeter會重定向到新的介面

10)Use keep Alive:jmeter 和目標伺服器之間使用 Keep-Alive方式進行HTTP通訊(預設選中)

11)Use multipart/from-data for HTTP POST :當傳送HTTP POST 請求時,使用

12)Parameters、Body Data以及Files Upload的區別:

1.parameter是指函式定義中引數,而argument指的是函式呼叫時的實際引數

2.簡略描述為:parameter=形參(formal parameter), argument=實參(actual parameter)

 3.在不很嚴格的情況下,現在二者可以混用,一般用argument,而parameter則比較少用

While defining method, variables passed in the method are called parameters.

當定義方法時,傳遞到方法中的變數稱為引數.

While using those methods, values passed to those variables are called arguments.

當呼叫方法時,傳給變數的值稱為引數.(有時argument被翻譯為“引數“)

4、Body Data指的是實體資料,就是請求報文裡面主體實體的內容,一般我們向伺服器傳送請求,攜帶的實體主體引數,可以寫入這裡

5、Files Upload指的是:從HTML檔案獲取所有有內含的資源:被選中時,發出HTTP請求並獲得響應的HTML檔案內容後還對該HTML

進行Parse 並獲取HTML中包含的所有資源(圖片、flash等):(預設不選中)

如果使用者只希望獲取特定資源,可以在下方的Embedded URLs must match 文字框中填入需要下載的特定資源表示式,只有能匹配指定正則表示式的URL指向資源會被下載

接下來可以給這個測試計劃新增一個監視器,常用的監視器有“檢視結果樹”和“聚合報告”

新增好監視器,點選執行,開始測試

如上,測試結束後,如果我們的請求成功傳送給伺服器,那麼結果樹裡面的模擬請求會顯示為綠色,可以通過取樣器結果裡面的響應狀態碼資訊來判斷

也可以點選請求模組,檢視我們傳送的請求

裡面有我們傳送的請求的方法、協議、地址以及實體主體資料,以及資料型別,大小,傳送時間,客戶端版本等資訊

響應資料:裡面包含伺服器返回給我們的響應資料實體,如下圖