JMeter學(xué)習(xí)(二)元件的作用域與執(zhí)行順序

1.元件的作用域

JMeter中共有8類可被執(zhí)行的元件(測試計(jì)劃與線程組不屬于元件),這些元件中,取樣器是典型的不與其它元件發(fā)生交互作用的元件,邏輯控制器只對其子節(jié)點(diǎn)的取樣器有效,而其它元件(config?elements?、timers?、post-processors、assertions、listeners、)需要與取樣器(sampler)等元件交互。

配置元件(config?elements?

  元件會影響其作用范圍內(nèi)的所有元件。

前置處理程序(Per-processors)

  元件在其作用范圍內(nèi)的每一個(gè)sampler元件之前執(zhí)行。

定時(shí)器(timers?)

  元件對其作用范圍內(nèi)的每一個(gè)sampler?有效

后置處理程序(Post-processors)

  元件在其作用范圍內(nèi)的每一個(gè)sampler元件之后執(zhí)行。

斷言(Assertions)

  元件對其作用范圍內(nèi)的每一個(gè)sampler?元件執(zhí)行后的結(jié)果執(zhí)行校驗(yàn)。

監(jiān)聽器(Listeners)

  元件收集其作用范圍的每一個(gè)sampler元件的信息并呈現(xiàn)。

在jmeter中,元件的作用域是靠測試計(jì)劃的的樹型結(jié)構(gòu)中元件的父子關(guān)系來確定的,作用域的原則是:

?取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。

?邏輯控制器(Logic?Controller)元件只對其子節(jié)點(diǎn)中的取樣器?和?邏輯控制器作用。

?除取樣器?和邏輯控制器?元件外,其他6類元件,如果是某個(gè)sampler的子節(jié)點(diǎn),則該元件公對其父子節(jié)點(diǎn)起作用。

?除取樣器和邏輯控制器元件外的其他6類元件,如果其父節(jié)點(diǎn)不是sampler?,則其作用域是該元件父節(jié)點(diǎn)下的其他所有后代節(jié)點(diǎn)(包括子節(jié)點(diǎn),子節(jié)點(diǎn)的子節(jié)點(diǎn)等)。

2.元件的執(zhí)行順序

了解了元件有作用域之后,來看看元件的執(zhí)行順序,元件執(zhí)行順序的規(guī)則很簡單,在同一作用域名范圍內(nèi),測試計(jì)劃中的元件按照如下順序執(zhí)行。

(1)配置元件(config?elements?)

(2)前置處理程序(Per-processors)

(3)定時(shí)器(timers?)

(4)取樣器(Sampler)

(5)后置處理程序(Post-processors)?(除非Sampler?得到的返回結(jié)果為空)。

(6)斷言(Assertions)(除非Sampler?得到的返回結(jié)果為空)。

(7)監(jiān)聽器(Listeners)(除非Sampler?得到的返回結(jié)果為空)。


關(guān)于執(zhí)行順序,有三點(diǎn)需要注意:

*??前置處理器、后置處理器和斷言等元件只能對?取樣器作用,因此,如果在它們的作用域內(nèi)沒有任何取樣器,則不會被執(zhí)行。

*??如果在同一作用域范圍內(nèi)有多個(gè)同一類型的元件,則這些元件按照它們在測試計(jì)劃中的上下順序一次執(zhí)行。

* ?一個(gè)斷言在測試樹中是分等級的。如果它的父元件是請求,它就被應(yīng)用于那個(gè)請求。如果它的父元件是控制器,它就影響所有那個(gè)控制器下的所有請求。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容