1.元件的作用域
JMeter中共有8類可被執(zhí)行的元件(測(cè)試計(jì)劃與線程組不屬于元件), 這些元件中,取樣器是典型的不與其它元件發(fā)生交互作用的元件,邏輯控制器只對(duì)其子節(jié)點(diǎn)的取樣器有效,而其它元件(config elements 、 timers 、post-processors、assertions、listeners)需要與取樣器(sampler)等元件交互。
配置元件(config elements )
元件會(huì)影響其作用范圍內(nèi)的所有元件。
前置處理程序(Per-processors)
元件在其作用范圍內(nèi)的每一個(gè)sampler元件之前執(zhí)行。
定時(shí)器(timers )
元件對(duì)其作用范圍內(nèi)的每一個(gè)sampler 有效
后置處理程序(Post-processors)
元件在其作用范圍內(nèi)的每一個(gè)sampler元件之后執(zhí)行。
斷言(Assertions)
元件對(duì)其作用范圍內(nèi)的每一個(gè)sampler 元件執(zhí)行后的結(jié)果執(zhí)行校驗(yàn)。
監(jiān)聽器(Listeners)
元件收集其作用范圍的每一個(gè)sampler元件的信息并呈現(xiàn)。
在jmeter中,元件的作用域是靠測(cè)試計(jì)劃的的樹型結(jié)構(gòu)中元件的父子關(guān)系來(lái)確定的,作用域的原則是:
取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。
邏輯控制器(Logic Controller)元件只對(duì)其子節(jié)點(diǎn)中的取樣器 和 邏輯控制器作用。
除取樣器 和邏輯控制器 元件外,其他6類元件,如果是某個(gè)sampler的子節(jié)點(diǎn),則該元件公對(duì)其父子節(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í)行順序
了解了元件有作用域之后,來(lái)看看元件的執(zhí)行順序,元件執(zhí)行順序的規(guī)則很簡(jiǎn)單,在同一作用域名范圍內(nèi),測(cè)試計(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)需要注意:
* 前置處理器、后置處理器和斷言等元件只能對(duì) 取樣器作用,因此,如果在它們的作用域內(nèi)沒有任何取樣器,則不會(huì)被執(zhí)行。
* 如果在同一作用域范圍內(nèi)有多個(gè)同一類型的元件,則這些元件按照它們?cè)跍y(cè)試計(jì)劃中的上下順序一次執(zhí)行。
* 一個(gè)斷言在測(cè)試樹中是分等級(jí)的。如果它的父元件是請(qǐng)求,它被應(yīng)用于那個(gè)請(qǐng)求。如果它的父元件是控制器,它影響所有那個(gè)控制器下的所有請(qǐng)求。