使用 JMeter 就一定需要?jiǎng)?chuàng)建一個(gè)測(cè)試計(jì)劃(Test Plan),每一個(gè)測(cè)試都需要在測(cè)試計(jì)劃中描述。
本篇文章接第一篇JMeter -- Getting Started.
2. Building a Test Plan
測(cè)試計(jì)劃描述JMeter運(yùn)行時(shí)將執(zhí)行的一系列步驟。一個(gè)完整的測(cè)試計(jì)劃將由一個(gè)或多個(gè)線程組( Thread Groups)、邏輯控制器(logic controllers)、示例生成控制器(sample generating controllers)、監(jiān)聽器(listeners)、計(jì)時(shí)器(timers)、斷言(assertions)和配置元素(configuration elements)組成。
問題:一個(gè)測(cè)試計(jì)劃有多個(gè)線程組的目的是什么,可以滿足哪些場(chǎng)景?
注意:這里所說的各種 controllers 都是下文將要講到的元素(Elements)之一。



?
2.1 添加和刪除元素(Adding and Removing Elements)
向測(cè)試計(jì)劃添加元素可以通過右鍵單擊樹中的一個(gè)元素并從“添加(add)”列表中選擇一個(gè)新元素來完成?;蛘撸梢酝ㄟ^選擇“合并(merge)”或“打開(open)”選項(xiàng)從文件中加載和添加元素。
要?jiǎng)h除一個(gè)元素,請(qǐng)確保選中了該元素,右鍵單擊該元素,并選擇“刪除(remove)”選項(xiàng)。
?
2.2加載和保存元素(Loading and Saving Elements)
要從文件中加載元素,右鍵單擊要向其添加已加載元素的現(xiàn)有樹元素,并選擇“merge”選項(xiàng)。選擇保存元素的文件。JMeter將把元素合并到樹中。
要保存樹元素,右鍵單擊一個(gè)元素并選擇“save Selection As…(保存測(cè)試計(jì)劃為...)”選項(xiàng)。JMeter將保存選中的元素,以及它下面的所有子元素。通過這種方式,您可以保存測(cè)試樹片段和單個(gè)元素供以后使用。


?
2.3配置樹元素(Configuring Tree Elements)
測(cè)試樹中的任何元素都將在JMeter的右邊框架中顯示控件。這些控件允許您配置特定測(cè)試元素的行為??梢詾樵嘏渲檬裁慈Q于元素的類型。
The Test Tree itself can be manipulated by dragging and dropping components around the test tree.
可以通過在測(cè)試樹周圍拖放組件來操縱測(cè)試樹本身。

?
2.4保存測(cè)試計(jì)劃(Saving the Test Plan)
雖然不是必需的,但是我們建議您在運(yùn)行測(cè)試計(jì)劃之前將它保存到一個(gè)文件中。要保存測(cè)試計(jì)劃,請(qǐng)從文件菜單中選擇“save”或“save Test Plan As…”(對(duì)于最新版本,不再需要首先選擇測(cè)試計(jì)劃元素)。
JMeter allows you to save the entire Test Plan tree or only a portion of it. To save only the elements located in a particular "branch" of the Test Plan tree, select the Test Plan element in the tree from which to start the "branch", and then click your right mouse button to access the "Save Selection As …" menu item. Alternatively, select the appropriate Test Plan element and then select "Save Selection As …" from the Edit menu.
JMeter允許您保存整個(gè)測(cè)試計(jì)劃樹,或者只保存其中的一部分。要僅保存位于測(cè)試計(jì)劃樹的特定“分支”中的元素,請(qǐng)選擇要從其中開始“分支”的測(cè)試計(jì)劃元素,然后單擊鼠標(biāo)右鍵訪問“save Selection As…”菜單項(xiàng)。或者,選擇適當(dāng)?shù)臏y(cè)試計(jì)劃元素,然后從編輯菜單中選擇“Save Selection As…”。
?
2.5 執(zhí)行測(cè)試計(jì)劃(Running a Test Plan)
要運(yùn)行測(cè)試計(jì)劃,請(qǐng)從“run(運(yùn)行)”菜單項(xiàng)中選擇“Start(啟動(dòng))”(Control + r)。當(dāng)JMeter運(yùn)行時(shí),它在菜單欄下的區(qū)域右邊顯示一個(gè)綠色的小框。你也可以檢查“運(yùn)行”菜單。如果“Start”被禁用,“Stop”被啟用,那么JMeter正在運(yùn)行您的測(cè)試計(jì)劃(或者,至少,它認(rèn)為是這樣)。
綠色框左邊的數(shù)字是活動(dòng)線程數(shù)/線程總數(shù)。這些只適用于本地運(yùn)行的測(cè)試;它們不包括使用客戶機(jī)-服務(wù)器模式時(shí)在遠(yuǎn)程系統(tǒng)上啟動(dòng)的任何線程。
只有在調(diào)試測(cè)試計(jì)劃時(shí)才應(yīng)該使用這里描述的GUI模式。要運(yùn)行真正的負(fù)載測(cè)試,請(qǐng)使用非GUI(NON-GUI)模式。
?
2.6 Stopping a Test
菜單上有兩種停止命令:
Stop(Control+.)-如果可能,立即停止線程。許多采樣器都是可中斷的,這意味著可以盡早終止活動(dòng)樣本。stop命令將檢查所有線程是否在默認(rèn)超時(shí)(即5000 ms = 5秒)內(nèi)停止。[可以使用JMeter屬性jmeterengine.threadstop.wait來更改這一點(diǎn)。如果線程沒有停止,則顯示一條消息。停止命令可以重試,但如果失敗,則需要退出JMeter來清理。
Shutdown(Control +,)——請(qǐng)求線程在當(dāng)前工作結(jié)束時(shí)停止。不會(huì)中斷任何活動(dòng)樣本。模式關(guān)閉對(duì)話框?qū)⒈3只顒?dòng)狀態(tài),直到所有線程都停止。
如果關(guān)閉時(shí)間太長(zhǎng)。關(guān)閉關(guān)閉對(duì)話框并選擇Run/Stop,或僅按Control + .。
在非gui模式下運(yùn)行JMeter時(shí),沒有菜單,JMeter不響應(yīng)諸如Control +.等按鍵。因此JMeter非gui模式將偵聽特定端口上的命令(默認(rèn)為4445,參見JMeter屬性jmeterengine.nongui.port)。如果使用的是缺省端口(例如另一個(gè)JMeter實(shí)例),JMeter支持自動(dòng)選擇備用端口。在這種情況下,JMeter將嘗試下一個(gè)更高的端口,直到它到達(dá)默認(rèn)為4455的JMeter屬性jmeterengine.nongui.maxport)。如果maxport小于或等于端口,則不會(huì)進(jìn)行端口掃描。
選擇的端口顯示在控制臺(tái)窗口中。
目前支持的命令如下:
- 關(guān)閉(Shutdown)——優(yōu)雅的關(guān)閉
-
StopTestNow——立即關(guān)閉
Stop&Shutdown
可以使用shutdown[.cmd|]發(fā)送這些命令。sh)或stoptest .cmd |。sh腳本分別。這些腳本可以在JMeter bin目錄中找到。只有在腳本從同一個(gè)主機(jī)運(yùn)行時(shí),才能接受這些命令。
?
2.7 錯(cuò)誤報(bào)告 (Error reporting)
JMeter向JMeter.log文件報(bào)告警告和錯(cuò)誤,以及測(cè)試運(yùn)行本身的一些信息。JMeter顯示在JMeter.log文件中發(fā)現(xiàn)的警告/錯(cuò)誤數(shù)量,在窗口右邊的警告圖標(biāo)(三角形)旁邊。單擊警告圖標(biāo),就可以顯示jmeter窗口底部的jmeter.log文件。只是偶爾會(huì)出現(xiàn)JMeter無法捕獲和記錄的錯(cuò)誤;這些將出現(xiàn)在命令控制臺(tái)上。如果測(cè)試的行為不像您期望的那樣,請(qǐng)檢查日志文件,以防報(bào)告任何錯(cuò)誤(例如,函數(shù)調(diào)用中的語法錯(cuò)誤)。
在日志文件中通常不報(bào)告抽樣錯(cuò)誤(例如沒有找到的HTTP 404文件)。相反,它們作為示例結(jié)果的屬性存儲(chǔ)。示例結(jié)果的狀態(tài)可以在不同的監(jiān)聽器(Listeners)中看到。
