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)聽(tīng)器(Listeners)
元件收集其作用范圍的每一個(gè)sampler元件的信息并呈現(xiàn)定铜。
在jmeter中,元件的作用域是靠測(cè)試計(jì)劃的的樹(shù)型結(jié)構(gòu)中元件的父子關(guān)系來(lái)確定的怕敬,作用域的原則是:
取樣器(sampler)元件不和其它元件相互作用揣炕,因此不存在作用域的問(wèn)題。
邏輯控制器(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)聽(tīng)器(Listeners)(除非Sampler?得到的返回結(jié)果為空)飒赃。
關(guān)于執(zhí)行順序理逊,有三點(diǎn)需要注意:
*??前置處理器、后置處理器和斷言等元件只能對(duì)?取樣器作用盒揉,因此,如果在它們的作用域內(nèi)沒(méi)有任何取樣器兑徘,則不會(huì)被執(zhí)行刚盈。
*??如果在同一作用域范圍內(nèi)有多個(gè)同一類型的元件,則這些元件按照它們?cè)跍y(cè)試計(jì)劃中的上下順序一次執(zhí)行挂脑。
* ?一個(gè)斷言在測(cè)試樹(shù)中是分等級(jí)的藕漱。如果它的父元件是請(qǐng)求,它就被應(yīng)用于那個(gè)請(qǐng)求崭闲。如果它的父元件是控制器肋联,它就影響所有那個(gè)控制器下的所有請(qǐng)求。