Jmeter元件執行順序與作用域

五柳-先生發表於2016-02-20

一、Jmeter重要元件:

1)配置元件---Config Element:
  用於初始化預設值和變數,以便後續取樣器使用。配置元件大其作用域的初始階段處理,配置元件僅對其所在的測試樹分支有效,如,在同一個作用域的任何取樣器前。

2)前置處理器--- Pre Processors:
  前置處理器會在取樣器發出請求之前做一些特殊操作。如果前置處理器附著在某個取樣器之下,那麼它只會在該取樣器執行之前執行。前置處理器通常用於在取樣器發出請求前修改取樣器的某些設定,或者更新某些變數的值(這些變數不在伺服器響應中獲取值)。

3) 計時器---Timer:
  定時器會讓作用域內的每一個取樣器都在執行前等待一個固定時長,如果不設定這種延遲,JMeter可能會在短時間內產生大量訪問請求,導致伺服器被大量請求所淹沒。如果為執行緒組新增了多個定時器,那麼JMeter會將這些定時器的時長疊加起來,共同影響作用域範圍內的取樣器。定時器可以作為取樣器或者邏輯控制器的子項,目的是隻影響作用域內的取樣器。

4) 取樣器---sampler:
  取樣器告訴JMeter傳送一個請求到指定伺服器,並等待伺服器的請求。取樣器會按照其在測試樹中的順序去執行,還可以用邏輯控制器來改變取樣器執行的重複次數。

5)後置處理器---Post Processors:
  後置處理器會在取樣器發出請求之後做一些特殊操作。如果後置處理器附著在某個取樣器之下,那麼它只會在該取樣器執行之後執行。後置處理器通常被用來處理伺服器的響應資料,特別是伺服器響應中提取資料。

6)斷言---Assertions:
  使用者可以使用斷言來檢查從伺服器獲得的響應內容。通過斷言可以測試伺服器返回的響應與測試人員的期望是否相符

7)監聽器---Listener:
  監聽器提供了對JMeter在測試期間收集到的資訊的訪問方法。"圖形結果"監聽器會將系統響應時長繪製在一張圖片之中。"檢視結果樹"監聽器會展示取樣器請求和響應的細節,還可以將測試資料匯入到檔案之中,以供後續分析。

8) 邏輯控制器---Controller:
  邏輯控制器可以幫助使用者控制JMeter的測試邏輯,特別是何時傳送請求。邏輯控制器可以改變其子測試元件的請求執行順序。

  

二、元件執行順序:

測試計劃的元素執行是有序的,通過以下方式執行:
1–配置元件(Config Element)
2–前置處理器(Pre Processors)
3–定時器(Timer)
4–取樣器(sampler)
5–後置處理器(Post Processors,只在有結果可用情況下執行)
6–斷言(Assertions,只在有結果可用情況下執行)
7–監聽器(Listener,只在有結果可用情況下執行)

 

三、元件作用域: 

元件收集其作用範圍的每一個sampler元件的資訊並呈現,在jmeter中,元件的作用域是靠測試計劃的的樹型結構中元件的父子關係來確定的,作用域的原則是: 

  • 取樣器(sampler):元件不和其它元件相互作用,因此不存在作用域的問題。
  • 邏輯控制器(Logic Controller):元件只對其子節點中的取樣器 和 邏輯控制器作用。
  • 除取樣器 和 邏輯控制器 元件外,其他6類元件,如果是某個sampler的子節點,則該元件只對其父子節點起作用。
  • 除取樣器和邏輯控制器元件外的其他6類元件,如果其父節點不是sampler ,則其作用域是該元件父節點下的其他所有後代節點(包括子節點,子節點的子節點等)。

 

四、特殊說明:

 配置元件(Config Elemnet)-->使用者自定義變數元件(User Defined Variables):這個元件不管放在哪個位置,它定義的變數都會被整個執行緒所共享。

例如:

下面這個例子,測試計劃定義如下:

1、定義了三個sampler:one、Debug Sampler、two

2、在one下面定義了一個使用者自定義變數:在這裡新增了一個變數,名為hello,值為world

3、一個監聽器:檢視結果樹

目的:測試在sampler one下定義的變數是否能被sampler two和debug sampler所引用

one:

 

User Defined Variables:

two:

 

執行結果:

 

由上可知:在one下面定義的使用者變數,在debug sampler和two處都能正常使用。

 

 

 

 

 

 

 

參考:

http://www.cnblogs.com/fnng/archive/2012/12/27/2836506.html

相關文章