JMeter學習(三) 元件的作用域和執行順序
轉載自 ==== jmeter學習(三)元件的作用域與執行順序
1.元件的作用域
JMeter中共有8類可被執行的元件(測試計劃與線程組不屬於元件),這些元件中,取樣器是典型的不與其它元件發生交互作用的元件,邏輯控制器只對其子節點的取樣器有效,而其它元件(config elements 、timers 、post-processors、assertions、listeners、)需要與取樣器(sampler)等元件交互。
配置元件(config elements )
元件會影響其作用範圍內的所有元件。
前置處理程序(Per-processors)
元件在其作用範圍內的每一個sampler元件之前執行。
定時器(timers )
元件對其作用範圍內的每一個sampler 有效
後置處理程序(Post-processors)
元件在其作用範圍內的每一個sampler元件之後執行。
斷言(Assertions)
元件對其作用範圍內的每一個sampler 元件執行後的結果執行校驗。
監聽器(Listeners)
元件收集其作用範圍的每一個sampler元件的信息並呈現。
在jmeter中,元件的作用域是靠測試計劃的的樹型結構中元件的父子關系來確定的,作用域的原則是:
- 取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。
- 邏輯控制器(Logic Controller)元件只對其子節點中的取樣器 和 邏輯控制器作用。
- 除取樣器 和邏輯控制器 元件外,其他6類元件,如果是某個sampler的子節點,則該元件公對其父子節點起作用。
- 除取樣器和邏輯控制器元件外的其他6類元件,如果其父節點不是sampler ,則其作用域是該元件父節點下的其他所有後代節點(包括子節點,子節點的子節點等)。
2.元件的執行順序
了解了元件有作用域之後,來看看元件的執行順序,元件執行順序的規則很簡單,在同一作用域名範圍內,測試計劃中的元件按照如下順序執行。
(1)配置元件(config elements )
(2)前置處理程序(Per-processors)
(3)定時器(timers )
(4)取樣器(Sampler)
(5)後置處理程序(Post-processors) (除非Sampler 得到的返回結果為空)。
(6)斷言(Assertions)(除非Sampler 得到的返回結果為空)。
(7)監聽器(Listeners)(除非Sampler 得到的返回結果為空)。
關於執行順序,有三點需要註意:
* 前置處理器、後置處理器和斷言等元件只能對 取樣器作用,因此,如果在它們的作用域內沒有任何取樣器,則不會被執行。
* 如果在同一作用域範圍內有多個同一類型的元件,則這些元件按照它們在測試計劃中的上下順序一次執行。
* 一個斷言在測試樹中是分等級的。如果它的父元件是請求,它就被應用於那個請求。如果它的父元件是控制器,它就影響所有那個控制器下的所有請求。
JMeter學習(三) 元件的作用域和執行順序