1、為什么用命令行模式
使用GUI方式啟動jmeter,運行線程較多的測試時,會造成內(nèi)存和CPU的大量消耗,導(dǎo)致客戶機卡死;
所以一般采用的方式是在GUI模式下調(diào)整測試腳本,再用命令行模式執(zhí)行;
命令行方式支持在多個環(huán)境下使用,windosw的dos環(huán)境下,也可以在linux環(huán)境上執(zhí)行。
注意:使用命令執(zhí)行jmeter腳本必須使用jmeter 3.0及以上版本。
??
2、怎么用
2.1、執(zhí)行命令
jmeter -n -t <testplan filename> -l <listener filename>
示例: jmeter -n -t testplan.jmx -l test.jtl
示例含義:表示以命令行模式運行testplan.jmx文件,輸出的日志文件為test.jtl
2.2、參數(shù)介紹
Jmeter官方手冊給的介紹如下:
-h, –help -> prints usage information and exit
-n, –nongui -> run JMeter in nongui mode
-t, –testfile <argument> -> the jmeter test(.jmx) file to run
-l, –logfile <argument> -> the file to log samples to
-r, –runremote -> Start remote servers (as defined in remote_hosts)
-H, –proxyHost <argument> -> Set a proxy server for JMeter to use
-P, –proxyPort <argument> -> Set proxy server port for JMeter to use
中文釋義:
-h 幫助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
-t 測試文件 -> 要運行的 JMeter 測試腳本文件
-l 日志文件 -> 記錄結(jié)果的文件
??-R?遠程執(zhí)行? ->? 遠程執(zhí)行機的IP(ip地址)如果有多個ip時,使用-R 192.168.2.170,192.168.2.171(分布式使用)
-r 遠程執(zhí)行 -> 在Jmter.properties文件中指定的所有遠程服務(wù)器(分布式使用)
-H 代理主機 -> 設(shè)置 JMeter 使用的代理主機
-P 代理端口 -> 設(shè)置 JMeter 使用的代理主機的端口號
2.3、執(zhí)行過程
命令:jmeter -n -t C:\Users\yzs\Desktop\Unione_performance.jmx -l report\03-result.jtl
不在jmeter安卓目錄執(zhí)行腳本的前提是配置了jmeter的環(huán)境變量。
2.4、報告查看
上述的命令有測試結(jié)果保存到D:\report中,在GUI模式下查看測試報告:
1、在測試計劃下,添加對應(yīng)的測試報告元件,舉例增加了:查看結(jié)果樹、聚合報告
2、在“所有數(shù)據(jù)寫入一個文件”,選擇加載對應(yīng)的結(jié)果文件
3、下面就會有對應(yīng)的表格展示,具體見下圖
2.5、命令行傳遞變量值
設(shè)置線程組的線程數(shù)和循環(huán)次數(shù)。
注意格式:
${__P(threadNum)}
${__P(threadCount)}
其中P前面是兩個下劃線,()內(nèi)就是變量名
執(zhí)行時,在命令行中用-J參數(shù)給變量賦值即可:
jmeter -n -t?C:\Users\yzs\Desktop\Unione_performance.jmx?-J threadNum=10 -J threadCount=2?-l report\03-result.jtl
此次測試相當于:10個線程,循環(huán)2次,共計20個請求。
3、生成HTML報告
生成HTML報告有2種方式,一種是直接在命令行加上-o參數(shù),另一種是已有jtl結(jié)果文件,運行命令生成報告
3.1、命令行直接生成報告
jmeter -n -t 【Jmx腳本位置】-l 【中間文件result.jtl位置】-e -o 【報告指定文件夾】
-e:測試結(jié)束后,生成測試報告 -o:指定測試報告的存放位置
?注意:-o后面跟的文件夾一定是不存在的或者是空文件夾
3.2、已有jtl結(jié)果文件,運行命令生成報告
jmeter -g【已經(jīng)存在的.jtl文件的路徑】-o 【用于存放html報告的目錄】
注意:經(jīng)實操,windows系統(tǒng)上,以上2種方法都可以生成HTML測試報告,但是在Linux系統(tǒng)上第1種方法,沒有生成報告,只有第二種方法才可以(具體原因后面在慢慢找吧)
3.3、HTML報告注解
用瀏覽器打開index.html
報告詳解
Dashboard:(重點查看)
Test and Report informations:指的是測試和報告信息
- File:測試結(jié)果的保存文件名稱
- Start Time:測試開始時間
- End Time:測試結(jié)束時間
- Filter for display展示過濾器
APDEX(Application Performance Index):應(yīng)用程序性能滿意度的標準
其中,
- “Apdex”范圍在0-1之間,1表示達到所有用戶均滿意,越接近1滿意度越高
- “toleration threshold”:耐受閾值(0.5秒)
- “frustration? threshold”:挫敗閾值(1.5秒)
Requests Summary:請求的通過率(OK)與失敗率(KO),百分比顯示
Statistics:數(shù)據(jù)分析,基本將Summary Report和Aggrerate Report的結(jié)果合并(平均響應(yīng)時間、TPS在此查看)
Errors:錯誤情況,依據(jù)不同的錯誤類型,將所有錯誤結(jié)果展示
關(guān)于Apdex的補充:
性能指數(shù),Apdex(Application Performance Index)是一個國際通用標準,Apdex 是用戶對應(yīng)用性能滿意度的量化值。它提供了一個統(tǒng)一的測量和報告用戶體驗的方法,把最終用戶的體驗和應(yīng)用性能作為一個完整的指標進行統(tǒng)一度量。下圖表示為通用用戶滿意度區(qū)域,0代表沒有滿意用戶,1則代表所有用戶都滿意。實際業(yè)務(wù)系統(tǒng)開發(fā)過程中,1是團隊的追求目標。
若所有請求的Apdex值都接近1,說明用戶滿意度優(yōu)秀,也從側(cè)面說明了服務(wù)器響應(yīng)速度快。
通常而言,最低要求超過0.5,當然項目組可設(shè)定具體需求。
Charts:(輔助分析)
主要有如下特點:
(1)將測試過程中經(jīng)常使用的數(shù)據(jù),用圖表的形式展示,讓測試結(jié)果更加直觀
(2)每個圖表數(shù)據(jù),有兩種展示形式
(3)支持請求樣例過濾顯示
(4)支持導(dǎo)出PNG圖片格式
Over Time Charts:
- Response Times Over Time:每秒鐘響應(yīng)時間,X軸表示的是系統(tǒng)運行的時刻,Y軸表示的是響應(yīng)時間,F(xiàn)(X,Y)表示系統(tǒng)隨著時間的推移,系統(tǒng)的響應(yīng)時間的變化,可以看出響應(yīng)時間穩(wěn)定性
- Bytes Throughput Over Time:字節(jié)接收與發(fā)送的數(shù)量,每秒傳輸字節(jié)吞吐量,表明Jmeter在測試時,隨著時間推移發(fā)送和接收的字節(jié)數(shù)
- Latencies Over Time:延遲時間
Throughput Charts:
- Hits Per Second: 每秒點擊率
- Codes Per Second:每秒狀態(tài)碼數(shù)量
- Transactions Per Second:每秒事務(wù)量
- Response Time Vs Request:響應(yīng)時間點請求的成功與失敗數(shù)
- Latency Vs Request:延遲時間點請求的成功與失敗數(shù)
Response Times Charts:
- Response Time Percentiles:響應(yīng)時間百分比
- Active Threads Over Time:激活線程數(shù)
- Time Vs Threads:響應(yīng)時間用戶數(shù), X軸表示的是活動線程數(shù),也就是并發(fā)訪問的用戶數(shù),Y軸表示的是響應(yīng)時間,F(xiàn)(X,Y)表示在某種并發(fā)量的情況下,系統(tǒng)的響應(yīng)時間是多少
- Response Time Distribution:響應(yīng)時間分布
3.4、HTML報告的自定義配置
JMeter3.0開始在bin目錄新增了reportgenerator.properties
文件保存了所有關(guān)于圖形化HTML報告生成模塊的默認配置,要變更配置,建議不要直接編輯該文件,而是推薦在user.properties
中去配置和覆蓋。
3.4.1總體配置
總體配置都是以jmeter.reportgenerator.為前綴,如:jmeter.reportgenerator.overall_granularity=60000
- overall_granularity:定義采樣點粒度,默認為60000ms,通常在穩(wěn)定性以外的測試中,我們可能需要定義更細的粒度,比如1000ms,我們可以在user.properties文件末尾添加如下配置
# Change this parameter if you want to change the granularity of over time graphs. jmeter.reportgenerator.overall_granularity=6000
- report_title:定義報告的標題,我們可能需要將標題定義為實際測試項名稱
- apdex_satisfied_threshold:定義Apdex評估中滿意的閾值(單位ms)
- apdex_tolerated_threshold: 定義Apdex評估中可容忍的閾值
? ? ? ?Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples
另外,在jmeter.pro
perties
中,有關(guān)于集合報告中的三個百分位的默認值:
aggregate_rpt_pct1 : Defaults to 50 aggregate_rpt_pct2 : Defaults to 70 aggregate_rpt_pct3 : Defaults to 99
3.5、HTML報告的定制
JMeter的HTML報告生成時是使用了固定的模板,模板文件路徑為./bin/report-template。
進入該目錄可以看到報告的每個頁面都有一個.fmkr模板文件,包括index.html.fmkr和./content/pages路徑下的幾個文件。通過查看這些模板文件,就可以知道怎樣去進行報告的輕度定制,比如將一些文本修改得更易懂,或者修改為中文等
頁面的title
默認為"Apache JMeter Dashboard"
可以由reportgenerator.properties中的jmeter.reportgenerator.report_title來統(tǒng)一定義,這種方式就是所有頁面的title都使用同一個。
也可以直接修改對應(yīng)的.fmkr文件中的title標簽中雙引號內(nèi)的值,如<title>${reportTitle!"想要設(shè)置的title"}</title>,這中方式可以為每個頁面單獨定義title
圖表的名稱
當前版本下,各圖表的名稱是直接在模板文件中定義,要修改也是直接修改模板文件中對應(yīng)元素的值即可
如要修改Transactions Per Second
圖表的名稱,可以直接在./content/pages/Throughput.html.fmkr
文件中修改,效果如下圖文章來源:http://www.zghlxwxcb.cn/news/detail-633002.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-633002.html
到了這里,關(guān)于JMeter命令行執(zhí)行+生成HTML報告的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!