
1. 摘要
本文介紹Jmeter界面各個(gè)菜單及界面的功能介紹,并重點(diǎn)講解監(jiān)聽(tīng)器介紹。
2. 界面基本介紹
jmeter面板大致分為菜單欄,功能區(qū),用例視圖區(qū)以及詳細(xì)配置區(qū)。

2.1 菜單欄
菜單欄從左到右分別是:
JMeter:jmeter信息展示;
File(文件):主要是新建、打開(kāi)和保存;
Edit(編輯):主要是添加元件、保存、打開(kāi)、禁用等;
Search(查找):查找和清除查找;
Run(運(yùn)行):主要是運(yùn)行,分布式運(yùn)行;
Options(選項(xiàng)):主要是函數(shù)和日志;
Help(幫助),我們可以點(diǎn)擊幫助,查看Jmeter幫助文檔。
2.1.1 文件
新建:新建一個(gè)空白的測(cè)試計(jì)劃
Templates<模板>:對(duì)于一些常用功能的示例模板,點(diǎn)擊模板中的鏈接可跳轉(zhuǎn)到官方的介紹頁(yè)面
打開(kāi):彈出路徑選擇框,可選擇并打開(kāi)一個(gè)新的JMX格式的腳本文件
Open Recent<最近打開(kāi)>:顯示最近打開(kāi)過(guò)的腳本記錄,選擇后可打開(kāi)對(duì)應(yīng)的腳本
合并:將多個(gè)JMX文件合并成一個(gè)文件,指將所選文件的內(nèi)容合并到當(dāng)前文件中來(lái)
保存測(cè)試計(jì)劃:就字面意思,保存整個(gè)測(cè)試計(jì)劃
保存測(cè)試計(jì)劃為:類(lèi)似于文本編輯器中的另存為,保存的是整個(gè)測(cè)試計(jì)劃
選中部分保存為:僅保存選擇部分,類(lèi)似于選中部分另存為XXX
save as Test fragment:保存為測(cè)試片段,其中測(cè)試計(jì)劃、測(cè)試組是不能被保存為測(cè)試片段的<4.0之前的版本工作臺(tái)也是不能保存的,4.0開(kāi)始工作臺(tái)被去掉了>。
Revert:還原,還原到上次保存時(shí)的狀態(tài)
退出:關(guān)閉程序
2.1.2 編輯
添加:根據(jù)當(dāng)前再樹(shù)形標(biāo)簽頁(yè)中所選中的標(biāo)簽,來(lái)顯示不同的添加內(nèi)容
粘貼:就是粘貼,將復(fù)制的部分粘貼過(guò)來(lái)
打開(kāi):等同于文件—打開(kāi)
合并:等同于文件—合并
選中部分另存為:等同于文件—選中部分保存為
Save Node As Image:保存節(jié)點(diǎn)為圖片,只會(huì)截取并保存右側(cè)內(nèi)容顯示區(qū)域
Save Screen As Image:保存屏幕為圖片,會(huì)保存整個(gè)jmeter程序的界面
啟用:對(duì)當(dāng)前選中的標(biāo)簽進(jìn)行啟用操作
禁用:對(duì)當(dāng)前選中的標(biāo)簽進(jìn)行禁用操作
Toggle:切換,對(duì)當(dāng)前選中的標(biāo)簽進(jìn)行禁用/啟用切換操作,禁用變啟用、啟用變禁用
幫助:跳到官方幫助文檔頁(yè)面
2.1.3 搜索
Search:查詢(xún)功能,查找到的內(nèi)容會(huì)在樹(shù)形結(jié)構(gòu)中框紅顯示
Reset Search:重置查詢(xún),對(duì)前面框紅的內(nèi)容進(jìn)行清除
2.1.4 運(yùn)行
啟動(dòng):運(yùn)行測(cè)試計(jì)劃
Start no pauses:不停頓啟動(dòng),運(yùn)行測(cè)試計(jì)劃,但會(huì)忽略測(cè)試計(jì)劃中的定時(shí)器等待
遠(yuǎn)程啟動(dòng):分布式測(cè)試時(shí)使用,指定啟動(dòng)一個(gè)遠(yuǎn)程agent運(yùn)行。
遠(yuǎn)程全部啟動(dòng):分布式測(cè)試時(shí)使用,啟動(dòng)所有的遠(yuǎn)程agent運(yùn)行。
停止:停止執(zhí)行測(cè)試samper;
關(guān)閉:停止線(xiàn)程組的全部用例執(zhí)行;
遠(yuǎn)程停止:分布式測(cè)試時(shí)使用,指定停止一個(gè)遠(yuǎn)程agent運(yùn)行。
遠(yuǎn)程全部停止:分布式測(cè)試時(shí)使用,停止所有的遠(yuǎn)程agent運(yùn)行。
遠(yuǎn)程關(guān)閉:類(lèi)似于遠(yuǎn)程停止。
遠(yuǎn)程全部關(guān)閉:類(lèi)似于遠(yuǎn)程全部停止。
遠(yuǎn)程退出:
遠(yuǎn)程全部退出:
清除:清除當(dāng)前所選標(biāo)簽的執(zhí)行結(jié)果,只對(duì)監(jiān)聽(tīng)器有用。
清除全部:清除當(dāng)前計(jì)劃中的所有監(jiān)聽(tīng)器的執(zhí)行結(jié)果。
2.1.5 選項(xiàng)
函數(shù)助手對(duì)話(huà)框:彈出函數(shù)助手彈窗,可快速生成需要的代碼
外觀:可用改變jmeter的界面風(fēng)格主題。
Log Viewer:打開(kāi)\關(guān)閉日志輸出框
Log Level:設(shè)定運(yùn)行輸出日期的等級(jí)
SSL管理器:導(dǎo)入外置的SSL管理器,用于更好的管理證書(shū)。
選擇語(yǔ)言:改變界面的語(yǔ)言種類(lèi),適配不完善的地方依舊使用的英語(yǔ)。
Collapse All:展開(kāi)所有的菜單
Expand All: 折疊所有的菜單
Zoom In:放大,頁(yè)面中的文字整體放大
Zoom Out:縮小,頁(yè)面中的文字整體縮小
Save automatically before run:翻譯過(guò)來(lái)是保存之前自動(dòng)運(yùn)行,但沒(méi)發(fā)現(xiàn)實(shí)際意義
Plugins Manager:插件管理器
2.2 功能區(qū)

功能區(qū)從左到右分別是:
- 新建測(cè)試計(jì)劃;
- 選擇測(cè)試計(jì)劃模板創(chuàng)建一個(gè)新的測(cè)試計(jì)劃;
- 打開(kāi)jmeter腳本;
- 保存jmeter腳本;
- 剪切;
- 復(fù)制;
- 粘貼;
- 展開(kāi)目錄樹(shù);
- 收起目錄樹(shù);
- 禁用或啟用元件;
- 本機(jī)開(kāi)始運(yùn)行當(dāng)前測(cè)試計(jì)劃;
- 立即開(kāi)始在本機(jī)運(yùn)行當(dāng)前測(cè)試計(jì)劃;
- 停止;
- 關(guān)閉;
- 清除;
- 清除全部;
- 查找;
- 清除查找;
- 函數(shù)助手對(duì)話(huà)框;
- 幫助。
2.3 狀態(tài)區(qū)

狀態(tài)展示區(qū)從左到右分別是:
用例執(zhí)行時(shí)間;
用例狀態(tài):如果是黃色感嘆號(hào)則是正常的,如果是紅色數(shù)字的代表有問(wèn)題(warnings/errors 數(shù)量就是多少);
點(diǎn)擊黃色嘆號(hào)會(huì)展示jmeter日志(這個(gè)日志是jmeter使用加載信息的日志jmeter.log,并不是測(cè)試腳本運(yùn)行的日志).
3. 界面基本操作
3.1 模板

3.2 線(xiàn)程組
線(xiàn)程組相當(dāng)于有多個(gè)用戶(hù),同時(shí)去執(zhí)行相同的任務(wù)。每個(gè)線(xiàn)程之間都互不影響。


區(qū)域一:在采樣器失敗后怎么處理(LoadRunner里面也有類(lèi)似的運(yùn)行設(shè)置選項(xiàng),對(duì)比去學(xué)習(xí)):
1、continue:繼續(xù)執(zhí)行接下來(lái)的操作;
2、Start Next Thread Loop:開(kāi)始下一次循環(huán);
3、stop Thread:停止線(xiàn)程,退出該線(xiàn)程(不再執(zhí)行此線(xiàn)程的操作);
4、stop Test:等待當(dāng)前執(zhí)行的采樣器結(jié)束后,結(jié)束整個(gè)測(cè)試;
5、Stop Test Now:馬上停止測(cè)試;
區(qū)域二:線(xiàn)程屬性
1、Number of Threads(users):線(xiàn)程數(shù),相當(dāng)于模擬的用戶(hù)數(shù)量;
2、Ramp-up Period(in seconds):達(dá)到指定線(xiàn)程需要的時(shí)間,例如線(xiàn)程數(shù)為100,時(shí)間設(shè)定為10s,那么就是10s加載 100個(gè)線(xiàn)程,每秒啟動(dòng)的線(xiàn)程數(shù)=100/10=10;
3、Loop Count:如果填具體的數(shù)值,就是循環(huán)對(duì)應(yīng)的次數(shù);如果選擇“Forever”,則一直執(zhí)行下去,直到手動(dòng)停止;
4、Delay Thread creation until needed:延遲線(xiàn)程創(chuàng)建,直到需要才創(chuàng)建。

舉例:Jmeter 使用線(xiàn)程模擬用戶(hù),增加一個(gè)線(xiàn)程就是多一個(gè)模擬用戶(hù)。Number of Threads 表示模擬的并發(fā)用戶(hù)數(shù)。
當(dāng)取
Number of Threads = 5 時(shí),為了便于觀察結(jié)果,我們將 Ramp-Up Period 設(shè)置為 5秒 ,這樣能將5個(gè)線(xiàn)程發(fā)起請(qǐng)求的時(shí)間在時(shí)間軸上完全分開(kāi)而不重疊。屬性列表如下:
上圖可以看出,Jmeter 在5秒鐘內(nèi)發(fā)起了5個(gè)線(xiàn)程,每個(gè)線(xiàn)程各發(fā)出1個(gè)請(qǐng)求。在時(shí)間軸上延伸是下圖的樣子,一條線(xiàn)表示一個(gè)用戶(hù):

區(qū)域三:調(diào)度器配置
需要選中調(diào)度器(scheduler),調(diào)度器配置才生效。
a.Duration(seconds):持續(xù)時(shí)間,測(cè)試計(jì)劃持續(xù)多長(zhǎng)時(shí)間。
b.Startup delay(seconds):啟動(dòng)延時(shí)。點(diǎn)擊啟動(dòng)按鈕后,僅初始化場(chǎng)景,不運(yùn)行線(xiàn)程,等待延時(shí)時(shí)間到才運(yùn)行。
3.3 新建一個(gè)HTTP請(qǐng)求
服務(wù)器名稱(chēng)或IP、端口號(hào) :配置目標(biāo)服務(wù)器名稱(chēng)或者IP地址,端口號(hào)默認(rèn)情況下為80,也可以指定其它端口號(hào)。
方法:發(fā)送請(qǐng)求的具體方法,可以是GET、POST等。
路徑:配置路徑,注意在填寫(xiě)路徑時(shí)服務(wù)器地址、端口及參數(shù)不需要,只需要填寫(xiě)剩余后的部分。
Content encoding :編碼方式。此處采用utf-8,如果為空,則表示采用ISO-8859-1編碼。
參數(shù)配置:表中每行表示一個(gè)參數(shù)(與URL中的 name=value相對(duì)應(yīng))


4. 監(jiān)聽(tīng)器的介紹和使用

察看結(jié)果樹(shù)
Summary Report
聚合報(bào)告
Backend Listener
Aggregate Graph
斷言結(jié)果
Comparison Assertion Visualizer
生成概要結(jié)果
圖形結(jié)果
JSR223 Listener
郵件觀察儀
Response Time Graph
保存響應(yīng)到文件
Simple Data Writer
用表格察看結(jié)果
BeanShell Listener
4.1 察看結(jié)果樹(shù)
調(diào)試?yán)?。想必大家也都?jīng)常用,不做介紹。有點(diǎn)類(lèi)似我們的抓包,可以看到request以及response信息。




4.2 Summary Report
Summary Report 為測(cè)試中的每個(gè)不同命名的請(qǐng)求創(chuàng)建一個(gè)表行。這與聚合報(bào)告類(lèi)似,只是它使用更少的內(nèi)存。

參數(shù)說(shuō)明:
文件名:保存的路徑
Configure:點(diǎn)擊打開(kāi),選擇要監(jiān)聽(tīng)的事項(xiàng)
Label 取樣器別名,如果勾選Include group name ,則會(huì)添加線(xiàn)程組的名稱(chēng)作為前綴
Samples 取樣器運(yùn)行次數(shù)
Average 請(qǐng)求(事務(wù))的平均響應(yīng)時(shí)間
Min 請(qǐng)求的最小響應(yīng)時(shí)間
Max 請(qǐng)求的最大響應(yīng)時(shí)間
Std. Dev 響應(yīng)時(shí)間的標(biāo)準(zhǔn)方差
Error % 事務(wù)錯(cuò)誤率
Throughput 吞吐量 也就是TPS
Received KB/sec 每秒收到的千字節(jié)
Sent KB/sec 每秒發(fā)送的千字節(jié)
Avg. Bytes 響應(yīng)平均流量
4.3 聚合報(bào)告
與Summary Report類(lèi)似,但是表格中的內(nèi)容有些許區(qū)別。

Label 取樣器別名,如果勾選Include group name ,則會(huì)添加線(xiàn)程組的名稱(chēng)作為前綴
Samples 取樣器運(yùn)行次數(shù)
Average 請(qǐng)求(事務(wù))的平均響應(yīng)時(shí)間
Median 中位數(shù)
90% Line 90%用戶(hù)響應(yīng)時(shí)間
95% Line 90%用戶(hù)響應(yīng)時(shí)間
99% Line 90%用戶(hù)響應(yīng)時(shí)間
Min 最小響應(yīng)時(shí)間
Max 最大響應(yīng)時(shí)間
Error 錯(cuò)誤率
Throughput 吞吐率
Received KB/sec 每秒收到的千字節(jié)
Sent KB/sec 每秒收到的千字節(jié)
4.4 Aggregate Graph
通過(guò)Aggregate Graph 我們可以看到表格顯示的結(jié)果與圖形結(jié)果,看著挺復(fù)雜,其實(shí)稍微翻譯一下就知道,絕大多數(shù)都是對(duì)圖形的設(shè)置。

Column settings
Columns to display 選擇要在圖表中顯示的列
Rectangles color 單擊右側(cè)顏色矩形打開(kāi)彈出對(duì)話(huà)框,選擇自定義顏色。(就是點(diǎn)擊)
Foreground color 允許更改值文本顏色
Value font 允許定義文本的字體設(shè)置
Draw outlines bar? 在條形圖上繪制或不繪制邊界線(xiàn)
Show number grouping? 是否顯示Y軸標(biāo)簽中的數(shù)字分組
Value labels vertical? 更改值標(biāo)簽的方向。(默認(rèn)為水平)
Column label selection 按結(jié)果標(biāo)簽過(guò)濾
Title
在圖表的頭部定義圖表的標(biāo)題
Graph size
根據(jù)當(dāng)前JMeter窗口大小的寬度和高度計(jì)算圖形大小。使用“ 寬度”和“ 高度”字段定義自定義大小。單位是像素。
X Axis settings
定義X軸標(biāo)簽的最大長(zhǎng)度(以像素為單位)
Y Axis settings
為Y軸定義自定義最大值。
Legend
定義圖表圖例的放置和字體設(shè)置

4.5 圖形結(jié)果
樣本數(shù)目:是總共發(fā)送到服務(wù)器的請(qǐng)求數(shù)。
最新樣本:表示服務(wù)器相應(yīng)最后一個(gè)請(qǐng)求的響應(yīng)時(shí)間。
吞吐量:服務(wù)器每分鐘處理的請(qǐng)求數(shù)。
平均值:是總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)(平均響應(yīng)時(shí)間)。
中間值:一半的響應(yīng)時(shí)間請(qǐng)求高于該值。
偏離:代表服務(wù)器相應(yīng)時(shí)間變化的數(shù)據(jù)的分布

4.6 用表格查看結(jié)果
Sample:每個(gè)請(qǐng)求的序號(hào)
Start Time:每個(gè)請(qǐng)求開(kāi)始時(shí)間
Thread Name:每個(gè)線(xiàn)程的名稱(chēng)
Label:Http請(qǐng)求名稱(chēng)
Sample Time:每個(gè)請(qǐng)求所花時(shí)間,單位毫秒
Status:請(qǐng)求狀態(tài),如果為勾則表示成功,如果為叉表示失敗。
Bytes:請(qǐng)求的字節(jié)數(shù)
樣本數(shù)目:也就是上面所說(shuō)的請(qǐng)求個(gè)數(shù),成功的情況下等于你設(shè)定的并發(fā)數(shù)目乘以循環(huán)次數(shù)
平均:每個(gè)線(xiàn)程請(qǐng)求的平均時(shí)間
最新樣本:表示服務(wù)器響應(yīng)最后一個(gè)請(qǐng)求的時(shí)間
偏離:服務(wù)器響應(yīng)時(shí)間變化、離散程度測(cè)量值的大小,或者,換句話(huà)說(shuō),就是數(shù)據(jù)的分布。

4.7 Response Time Graph
響應(yīng)時(shí)間圖形監(jiān)聽(tīng)器。有點(diǎn)和我們之前介紹的Aggregate Graph類(lèi)似

參數(shù)解釋
Interval (ms) X軸間隔的時(shí)間(以毫秒為單位)
Sampler label selection 按結(jié)果標(biāo)簽過(guò)濾??梢允褂谜齽t表達(dá)式
Title 在圖表的頭部定義圖表的標(biāo)題
Line settings 定義線(xiàn)條的寬度
Graph size 根據(jù)當(dāng)前JMeter窗口大小的寬度和高度計(jì)算圖形大小。使用“ 寬度”和“ 高度”字段定義自定義大小。單位是像素。
X Axis settings 自定義X軸標(biāo)簽的日期格式
Y Axis settings 為Y軸定義自定義最大值(以毫秒為單位)
Legend 定義圖表圖例的放置和字體設(shè)置

4.8 郵件觀察儀
如果測(cè)試運(yùn)行從服務(wù)器收到太多失敗的響應(yīng),則可以將郵件程序可視化工具設(shè)置為發(fā)送電子郵件,這個(gè)不錯(cuò),起到及時(shí)通知效果,下面我使用的是163 SMTP進(jìn)行測(cè)試??梢詫?shí)現(xiàn)。
from 發(fā)送人 addressee 接收人


4. 9 輸出性能報(bào)告


輸入以下命令,進(jìn)行性能測(cè)試并輸出CSV執(zhí)行結(jié)果文件和HTML報(bào)告
jmeter -n -t C:\temp\jmeter.jmx -l C:\temp\jmeterfile\test.csv -e -o C:\temp\jmetertest
三個(gè)路徑依次是:xxx.jmx文件路徑,輸出xxx.csv文件路徑,要保存的http report的文件路徑
[注意]當(dāng)這個(gè)兩個(gè)目錄已經(jīng)生成了文件時(shí),請(qǐng)先清除或者備份,保持目錄為空時(shí),在執(zhí)行以下操作

4.10 響應(yīng)斷言





4.11 持續(xù)時(shí)間斷言





4.12 字節(jié)斷言




4.13 Backend Listener
4.14 JSR223 Listener

JMeter 支持使用編程語(yǔ)言來(lái)開(kāi)發(fā)測(cè)試,最常用的莫過(guò)于 BeanShell
但是 BeanShell 腳本的效率卻不高
針對(duì)此種情況,JMeter 給了測(cè)試開(kāi)發(fā)人員更多的選擇,引入了 JSR223 組件元素,提供了使用多種編程語(yǔ)言開(kāi)發(fā)測(cè)試的可能性,其中包括了性能較高的Groovy語(yǔ)言
在使用 JSR223 組件元素開(kāi)發(fā)測(cè)試時(shí),可以使用其內(nèi)置的變量,有助于精簡(jiǎn)腳本,提高開(kāi)發(fā)測(cè)試的效率
JSR223 定義了可集成在Java平臺(tái)上運(yùn)行的一系列腳本語(yǔ)言,比如 Groovy,JavaScript 等。
Jmeter 有哪些 JSR223:
定時(shí)器: JSR223 Timer
前置處理器:JSR223 PreProcessor
采樣器: JSR223 Sampler
后置處理器:JSR223 PostProcessor
斷言: JSR223 斷言
監(jiān)聽(tīng)器: JSR223 Listener
4.15 保存響應(yīng)到文件
4.16 Simple Data Writer
用來(lái)記錄取樣器響應(yīng)結(jié)果,不會(huì)以圖形方式顯示。配合NON GUI模式使用
5.參考
(1)第一章 JMETER的基礎(chǔ)使用:2 界面介紹
https://www.freesion.com/article/22281097125/
(2)(三)JMeter GUI操作界面介紹
https://www.pianshen.com/article/83111732967/
(3)JMeter學(xué)習(xí)--基礎(chǔ)Jmeter操作(一)【JMeter界面操作介紹】
https://www.pianshen.com/article/77231145947/
(4)12、jmeter-監(jiān)聽(tīng)器介紹與使用
https://www.cnblogs.com/jingdenghuakai/p/11125879.html