對(duì)于新手來說,jmeter的元件是還是不少的,如果我們按照每一個(gè)元件的每一個(gè)參數(shù)的含義去學(xué)習(xí),無疑會(huì)降低學(xué)習(xí)性能測試的熱情,算我們熟悉了所有元件以及元件上的參數(shù)了,我們也不知道如何將其組合成我們想要描述的性能測試。另一方面,我們點(diǎn)擊每個(gè)節(jié)點(diǎn)上的元件都會(huì)出現(xiàn)類似或相同的菜單,他們的層級(jí)關(guān)系是什么樣的。究竟這個(gè)元件放在哪個(gè)層級(jí)的哪個(gè)位置才達(dá)到我們意愿。
如何更快速的入門jmeter,個(gè)人建議通過錄制腳本的方式,快速的了解一個(gè)性能測試應(yīng)該包括的元件以及它們的層級(jí)關(guān)系。
如下,我通過badboy工具錄制的一個(gè)腳本(腳本過程:登錄126郵箱,給自己發(fā)一封郵件,祝自己圣誕快樂!),并可以方便的將腳本導(dǎo)出為jmx格式,這也是jmeter腳本的格式,所以可以被jmeter識(shí)別并導(dǎo)入。
腳本導(dǎo)入到j(luò)meter后,我添加了兩個(gè)監(jiān)聽器(查看結(jié)果樹),因?yàn)槲姨砑颖O(jiān)聽器的位置不同,他們的作用域也是不一樣的。前一個(gè)只能監(jiān)聽到www.126.com頁面的請(qǐng)求,后一個(gè)側(cè)對(duì)所有的http請(qǐng)求進(jìn)行監(jiān)聽。
元件的作用域
先來討論一下元件有作用域。《Jmeter基礎(chǔ)之---jmeter基礎(chǔ)概念》一章中,我們介紹了8類可被執(zhí)行的元件(測試計(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中,元件的作用域是靠測試計(jì)劃的的樹型結(jié)構(gòu)中元件的父子關(guān)系來確定的,作用域的原則是:
1.取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。
2.邏輯控制器(Logic Controller)元件只對(duì)其子節(jié)點(diǎn)中的取樣器 和 邏輯控制器作用。
3.除取樣器 和邏輯控制器 元件外,其他6類元件,如果是某個(gè)sampler的子節(jié)點(diǎn),則該元件公對(duì)其父子節(jié)點(diǎn)起作用。
4.除取樣器和邏輯控制器元件外的其他6類元件,如果其父節(jié)點(diǎn)不是sampler ,則其作用域是該元件父節(jié)點(diǎn)下的其他所有后代節(jié)點(diǎn)(包括子節(jié)點(diǎn),子節(jié)點(diǎn)的子節(jié)點(diǎn)等)。
講了這些,你可能迷糊了,到底是腫么個(gè)情況呀?通過兩個(gè)栗子(例子)來理解一下他們的作用域。
A(注:下圖只是為了說明作用域,無法正常運(yùn)行)
取樣器(HTTP請(qǐng)求1 、FTP請(qǐng)求2 、TCP取樣器3) 邏輯控制器(循環(huán)控制器) 監(jiān)聽器(圖形結(jié)果1、聚合報(bào)告2)
1. HTTP請(qǐng)求1 、FTP請(qǐng)求2 、TCP取樣器3 元件沒有作用域的概念。
2. 循環(huán)控制器 元件作用域名是其子節(jié)點(diǎn)FTP請(qǐng)求2 、TCP取樣器3 。
3. 圖形結(jié)果1 元件的作用域是是FTP請(qǐng)求2 、TCP取樣器3。
4. 聚合報(bào)告2 元作的作用域是HTTP請(qǐng)求1 、FTP請(qǐng)求2 、TCP取樣器3
B (注:下圖只是為了說明作用域,無法正常運(yùn)行)
這個(gè)例子稍微復(fù)雜一些,包含的元件較多。先來分分類。
取樣器(HTTP請(qǐng)求 、FTP請(qǐng)求 、TCP取樣器、 JDBC Request )邏輯控制器(循環(huán)控制器、隨即控制器)定時(shí)器(固定定時(shí)器、Uniform Random Timer )斷言(響應(yīng)斷言、XML斷言)監(jiān)聽器(圖形結(jié)果、聚合報(bào)告)