Jmeter各部件的作用

JMeter主要組件介紹

1.測(cè)試計(jì)劃(Test Plan)是使用 JMeter 進(jìn)行測(cè)試的起點(diǎn),它是其它 JMeter 測(cè)試元件的容器。

2.線程組(Thread Group)代表一定數(shù)量的并發(fā)用戶鉴扫,它可以用來(lái)模擬并發(fā)用戶發(fā)送請(qǐng)求糠馆。

3.取樣器(sampler)定義實(shí)際的請(qǐng)求內(nèi)容,被線程組包含窗怒,我們主要用HTTP請(qǐng)求绢要。

4.監(jiān)聽器(Listener)

5.邏輯控制器(Logic Controller)

6.斷言(Assertions)

7.配置元件(Config Element)

8.前置處理器(Pre Processors)和后置處理器(Post Processors)

9.定時(shí)器(Timer)

JMeter主要組件介紹-測(cè)試計(jì)劃

1.測(cè)試計(jì)劃(Test Plan)是使用 JMeter 進(jìn)行測(cè)試的起點(diǎn)巧颈,它是其它 JMeter 測(cè)試元件的容器。

2.名稱:你可以為你的測(cè)試計(jì)劃取一個(gè)有意義的名字袖扛。

3.注釋:對(duì)測(cè)試計(jì)劃的注釋。

4.用戶定義的變量:用戶可以自己定義變量,在用到此變量的時(shí)候直接用${變量名}引用即可蛆封。例:變量名=url唇礁,值=http://www.baidu.com,在需要http://www.baidu.com時(shí)直接用${url}即可惨篱。

5.Add directory or jar to classpath:向類路徑即%JMETER-HOME%\lib中添加目錄及jar包盏筐。

JMeter主要組件介紹-線程組

1.名稱:為線程組起名字。

3.線程屬性-線程數(shù):設(shè)置發(fā)送請(qǐng)求的用戶數(shù)目 砸讳,即并發(fā)數(shù)琢融。

4.線程屬性-Ramp-Up Period(in second):線程間的時(shí)間間隔,單位是秒簿寂。即所有線程在多少時(shí)間內(nèi)啟動(dòng)漾抬。

5.線程屬性-循環(huán)次數(shù):請(qǐng)求的重復(fù)次數(shù),如果選擇后面的forever(默認(rèn))常遂,那么 請(qǐng)求將一直繼續(xù)纳令,如果不選擇forever,而在輸入框中輸入數(shù)字克胳,那么請(qǐng)求將重復(fù)指定的次數(shù)平绩,如果輸入1,那么請(qǐng)求將執(zhí)行一次漠另,如果是0捏雌,會(huì)出現(xiàn)問(wèn)題。

5.調(diào)度器配置-啟動(dòng)時(shí)間:測(cè)試計(jì)劃什么時(shí)候啟動(dòng)笆搓,啟動(dòng)延遲會(huì)覆蓋它性湿。

6.調(diào)度器配置-結(jié)束時(shí)間:測(cè)試計(jì)劃什么時(shí)候結(jié)束,持續(xù)時(shí)間會(huì)覆蓋它砚作。

7.調(diào)度器配置-持續(xù)時(shí)間:測(cè)試計(jì)劃持續(xù)多長(zhǎng)時(shí)間窘奏,會(huì)覆蓋結(jié)束時(shí)間。

8.調(diào)度器配置-啟動(dòng)延遲:測(cè)試計(jì)劃延遲多長(zhǎng)時(shí)間啟動(dòng)葫录,會(huì)覆蓋啟動(dòng)時(shí)間着裹。

JMeter主要組件介紹-取樣器(HTTP請(qǐng)求)

1.名稱:HTTP請(qǐng)求的名字。

2.Web服務(wù)器-服務(wù)器名稱或IP米同、端口號(hào)骇扇,腳本錄制時(shí)自動(dòng)添加,也可以使用“用戶自定義變量”面粮。

3.HTTP請(qǐng)求:用默認(rèn)值即可少孝。

4.同請(qǐng)求一起發(fā)送參數(shù):請(qǐng)求中的參數(shù)、值可以在此設(shè)置熬苍,需要用到參數(shù)化及動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)稍走,我們?cè)诤竺鎸iT介紹袁翁。

5.同請(qǐng)求一起發(fā)送文件:我可以制定同請(qǐng)求一起發(fā)送哪個(gè)文件。

6.其他任務(wù)包括:從HTML文件中獲取所有內(nèi)含的資源婿脸、用作監(jiān)視器粱胜、Embedded URLs must match。

JMeter主要組件介紹-監(jiān)聽器

1.監(jiān)聽器(Listener)負(fù)責(zé)收集測(cè)試結(jié)果狐树,同時(shí)也被告知了結(jié)果顯示的方式焙压。

我們常用的包括:聚合報(bào)告、查看結(jié)果樹抑钟、用表格查看結(jié)果涯曲,都支持將結(jié)果數(shù)據(jù)寫入文件。

其他的添加上去看看就行在塔。聚合報(bào)告前面我們介紹過(guò)幻件,后面是查看結(jié)果樹和用表格查看結(jié)果的截圖。

JMeter主要組件介紹-監(jiān)聽器(用表格查看結(jié)果)

JMeter主要組件介紹-邏輯控制器

1.邏輯控制器(Logic Controller)可以自定義JMeter發(fā)送請(qǐng)求的行為邏輯心俗,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列傲武。

v循環(huán)控制器可以設(shè)置請(qǐng)求的循環(huán)次數(shù)或永遠(yuǎn)循環(huán)(如果選中永遠(yuǎn)的話)。

v事務(wù)控制器可以將多個(gè)請(qǐng)求放在同一個(gè)事務(wù)中城榛。如果選中Gegerate parent sample揪利,則聚合報(bào)告中只顯示事務(wù)控制器的數(shù)據(jù),而不會(huì)顯示其中的各個(gè)請(qǐng)求的數(shù)據(jù)狠持,反之則全部顯示疟位。

JMeter主要組件介紹-斷言

1.斷言(Assertions)可以用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的。它可以用來(lái)隔離問(wèn)題域喘垂,即在確保功能正確的前提下執(zhí)行壓力測(cè)試甜刻。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。

JMeter主要組件介紹-配置元件

1.配置元件(Config Element)維護(hù)Sampler需要的配置信息正勒,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容得院。我們主要在參數(shù)化中用到CSV Data Set Config

JMeter主要組件介紹-前置處理器和后置處理器

1.前置處理器(Pre Processors)和后置處理器(Post Processors)負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置章贞,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)祥绞。我們主要在動(dòng)態(tài)關(guān)聯(lián)中用到后置處理器的正則表達(dá)式提取器。

JMeter主要組件介紹-定時(shí)器

1.定時(shí)器(Timer)負(fù)責(zé)定義請(qǐng)求之間的延遲間隔鸭限。

參數(shù)化設(shè)置

1.在我們的測(cè)試計(jì)劃中我們使用的都是HTTP請(qǐng)求蜕径,在HTTP請(qǐng)求中常常會(huì)提交一些參數(shù),我們?yōu)榱瞬幌朐诿恳淮握?qǐng)求中都使用相同的參數(shù)值败京,就要想辦法讓每一次請(qǐng)求的參數(shù)的值都是不一樣的兜喻,我們就需要進(jìn)行參數(shù)化設(shè)置,這里我們介紹兩種參數(shù)化設(shè)置的方法赡麦。

一種是利用函數(shù)助手中的_Random函數(shù)進(jìn)行參數(shù)化設(shè)置;

一種是利用配置元件中的CSV Data Set Config進(jìn)行參數(shù)化設(shè)置

2.JMeter中有一個(gè)函數(shù)助手的功能,里面內(nèi)置了多個(gè)函數(shù)窍育,我們可以利用其中的_Random函數(shù)來(lái)進(jìn)行請(qǐng)求中的參數(shù)化設(shè)置。

v在JMeter中選擇“選項(xiàng)-函數(shù)助手對(duì)話框”打開函數(shù)助手對(duì)話框渡冻。

v選擇一個(gè)功能_Random。

v設(shè)定最小值為1忧便。

v設(shè)定最大值為100。

v函數(shù)名稱設(shè)為func1帽借。

v點(diǎn)擊生成將生成一個(gè)引用字符串${_Random(1,100,func1}珠增,在需要的請(qǐng)求參數(shù)中拷貝該字符串即可。

v其中函數(shù)名稱用來(lái)在引用中作區(qū)別砍艾,即我們可以設(shè)定不同的名稱在不同的地方引用同一個(gè)函數(shù)的功能

v例如:我們生成了兩個(gè)串${_Random(1,100,func1)}蒂教、 ${_Random(1,100,func2)},在添加圖書的請(qǐng)求中脆荷,我們?cè)赽ookName的參數(shù)值中引用${_Random(1,100,func1)}凝垛,在bookConcern的參數(shù)值中應(yīng)用${_Random(1,100,func2)},見截圖蜓谋,這樣測(cè)試運(yùn)行時(shí)不同的線程將產(chǎn)生不同的bookName和bookConcern梦皮。

參數(shù)化設(shè)置-CSV Data Set Config(1)

v在線程組上點(diǎn)擊右鍵選擇添加-配置元件-CSV Data Set Config,打開CSV Data Set Config桃焕。

vFilename文件名:即參數(shù)化要引用的文件名剑肯。這里是d:\number.txt

vFile encoding文件編碼:可以不填。

vVariable Names(comma-delimited)變量名(用逗號(hào)分割):多個(gè)變量可以引用同一個(gè)文件观堂,用逗號(hào)分割让网。這里是num1,num2

vDelimiter(use ‘\t’ for tab):參數(shù)文件中多個(gè)變量值的分隔符师痕,\t表示用tab鍵分割溃睹,默認(rèn)是逗號(hào)。

vRecycle on EOF?:結(jié)束后是否循環(huán)胰坟?默認(rèn)是True.

vNumber.txt文件內(nèi)容見截圖因篇。

v在添加圖書的請(qǐng)求中,我們?cè)赽ookName的參數(shù)值中引用${num1}腕铸,在bookConcern的參數(shù)值中應(yīng)用${num2}惜犀,見截圖,這樣測(cè)試運(yùn)行時(shí)不同的線程將產(chǎn)生不同的bookName和bookConcern狠裹。

動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)

1.在HTTP請(qǐng)求的參數(shù)中經(jīng)常會(huì)遇到一些參數(shù)的值是從服務(wù)器相應(yīng)的動(dòng)態(tài)數(shù)據(jù)虽界,這些數(shù)據(jù)需要進(jìn)行關(guān)聯(lián)才能使得每一次請(qǐng)求都能成功得被服務(wù)器接受,在JMeter中采用正則表達(dá)式提取器來(lái)獲取這些動(dòng)態(tài)的數(shù)據(jù)涛菠。

2.正則表達(dá)式允許用戶從服務(wù)器響應(yīng)中獲取數(shù)據(jù)莉御,作為一個(gè)后置處理器撇吞,正則表達(dá)式提取器會(huì)在每一個(gè)請(qǐng)求執(zhí)行后再執(zhí)行,正則表達(dá)式提取請(qǐng)求的參數(shù)值礁叔,產(chǎn)生模板字符串牍颈,并將結(jié)果保存到給出的變量中。

動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)(1)-正則表達(dá)式提取器

1.在HTTP請(qǐng)求的參數(shù)中經(jīng)常會(huì)遇到一些參數(shù)的值是從服務(wù)器相應(yīng)的動(dòng)態(tài)數(shù)據(jù)琅关,這些數(shù)據(jù)需要進(jìn)行關(guān)聯(lián)才能使得每一次請(qǐng)求都能成功得被服務(wù)器接受煮岁,在JMeter中采用正則表達(dá)式提取器來(lái)獲取這些動(dòng)態(tài)的數(shù)據(jù)。比如我們想要獲得從服務(wù)器相應(yīng)的TOKEN涣易,就可以使用下面的正則表達(dá)式提取器画机。

動(dòng)態(tài)數(shù)據(jù)關(guān)聯(lián)(2)

v使用時(shí)就可以使用${token_g1}來(lái)表示獲取到的TOKEN值。如下圖:

使用命令行運(yùn)行JMeter腳本

vJMeter?-n -t my_test.jmx -l log.jtl

v-n告知JMeter采用非圖形化運(yùn)行JMeter腳本

v-t指定要運(yùn)行的腳本文件

v-l指定保存執(zhí)行結(jié)果的文件名

v執(zhí)行命令前要檢查當(dāng)前目錄是否是%JMeter_Home%\bin 目錄新症;

v如果?JMeter?腳本不在當(dāng)前目錄步氏,需要指定完整的路徑;如果要把執(zhí)行的結(jié)果保存在其他地方也要指定完整的路徑徒爹。

利用XSLT分析JMeter結(jié)果文件(1)

1.將結(jié)果文件的擴(kuò)展名改為xml荚醒,例:將log.jtl改為log.xml。

2.在log.xml的文件頭

<?xml version="1.0" encoding="UTF-8"?>

<testResults version="1.2">

中添加

<?xml-stylesheet type=“text/xsl” href=“jmeter-results-report.xsl” ?>

使之變成

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="jmeter-results-report.xsl" ?>

<testResults version="1.2">

其中href指定xsl文件的路徑隆嗅,如果與xml文件在同一目錄界阁,則只寫文件名即可,否則要寫明詳細(xì)路徑榛瓮。

利用XSLT分析JMeter結(jié)果文件(2)

1.將修改后的xml文件用瀏覽器打開即可得到統(tǒng)計(jì)結(jié)果:

JMeter中進(jìn)行分布式測(cè)試

作為一個(gè)純 JAVA 的GUI應(yīng)用铺董,JMeter對(duì)于CPU和內(nèi)存的消耗還是很驚人的,所以當(dāng)需要模擬數(shù)以千計(jì)的并發(fā)用戶時(shí)禀晓,使用單臺(tái)機(jī)器模擬所有的并發(fā)用戶就有些力不從心精续,甚至還會(huì)引起JAVA內(nèi)存溢出的錯(cuò)誤。不過(guò)粹懒,JMeter也可以像 LoadRunner 一樣通過(guò)使用多臺(tái)機(jī)器運(yùn)行所謂的代理來(lái)分擔(dān)負(fù)載產(chǎn)生器自身的壓力重付,并借此來(lái)獲取更大的并發(fā)用戶數(shù),我們只需手動(dòng)配置一下即可凫乖。

v1确垫、在所有期望運(yùn)行JMeter作為 負(fù)載產(chǎn)生器的機(jī)器上安裝JMeter,并確定其中一臺(tái)機(jī)器作為 控制器帽芽,其他的機(jī)器作為 代理删掀。然后運(yùn)行所有 代理 機(jī)器上的JMeter-server.bat文件—假定我們使用兩臺(tái)機(jī)器172.20.80.47和172.20.80.68作為 代理;

v2导街、在Controller 機(jī)器的JMeter安裝目錄下找到 bin 目錄披泪,再找到 jmeter.properties 這個(gè)文件,使用記事本或者其他文字編輯工具打開它搬瑰;

v3款票、在打開的文件中查找“remote_hosts=”這個(gè)字符串控硼,你可以找到這樣一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示運(yùn)行JMeter代理的機(jī)器艾少,這里需要修改為“remote_hosts=172.20.80.47卡乾,172.20.80.68”;

v4缚够、保存文件幔妨,并重新啟動(dòng)控制器機(jī)器上的JMeter,并進(jìn)入啟動(dòng) ->遠(yuǎn)程啟動(dòng)菜單項(xiàng)谍椅。就會(huì)看到我們剛才添加的兩個(gè)代理的地址陶冷,選中即可運(yùn)行,如果想同時(shí)啟動(dòng)所有代理毯辅,選擇遠(yuǎn)程全部啟動(dòng)即可。

要進(jìn)行分布式測(cè)試代理機(jī)器上需要添加環(huán)境變量煞额,即添加用戶變量JMETER_HOME=d:\jmeter思恐,系統(tǒng)變量中的path中添加d:\jmeter\bin(假設(shè)jmeter放在d盤根目錄下)。

運(yùn)行Jmeter進(jìn)行測(cè)試(4)-聚合報(bào)告詳解

vLabel:每個(gè) JMeter 的 element (例如 HTTP Request )都有一個(gè) Name 屬性膊毁,這里顯示的就是 Name 屬性的值

v#Samples:表示你這次測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求胀莹,如果測(cè)試計(jì)劃模擬10個(gè)用戶,每個(gè)用戶迭代10次婚温,這里就會(huì)顯示100

vAverage:平均響應(yīng)時(shí)間 — 默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間描焰,當(dāng)使用了事務(wù)控制器時(shí),也可以以事務(wù)為單位顯示平均響應(yīng)時(shí)間

vMedian:中位數(shù)栅螟,也就是 50 %用戶的響應(yīng)時(shí)間

v90% Line: 90 %用戶的響應(yīng)時(shí)間

vMin:最小響應(yīng)時(shí)間

vMax:最大響應(yīng)時(shí)間

vError%:錯(cuò)誤率荆秦,本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量 / 請(qǐng)求的總數(shù)

vThroughput:吞吐量 —— 默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)( Request per Second )

vKB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市力图,隨后出現(xiàn)的幾起案子步绸,更是在濱河造成了極大的恐慌,老刑警劉巖吃媒,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓤介,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赘那,警方通過(guò)查閱死者的電腦和手機(jī)刑桑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)募舟,“玉大人祠斧,你說(shuō)我怎么就攤上這事∥刚洌” “怎么了梁肿?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蜓陌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吩蔑,道長(zhǎng)钮热,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任烛芬,我火速辦了婚禮隧期,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赘娄。我一直安慰自己仆潮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布遣臼。 她就那樣靜靜地躺著性置,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揍堰。 梳的紋絲不亂的頭發(fā)上鹏浅,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音屏歹,去河邊找鬼隐砸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蝙眶,可吹牛的內(nèi)容都是我干的季希。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼幽纷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼式塌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起友浸,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤珊搀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后尾菇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體境析,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年派诬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了劳淆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡默赂,死狀恐怖沛鸵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤曲掰,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布疾捍,位于F島的核電站,受9級(jí)特大地震影響栏妖,放射性物質(zhì)發(fā)生泄漏乱豆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一吊趾、第九天 我趴在偏房一處隱蔽的房頂上張望宛裕。 院中可真熱鬧,春花似錦论泛、人聲如沸揩尸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岩榆。三九已至,卻和暖如春坟瓢,著一層夾襖步出監(jiān)牢的瞬間朗恳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工载绿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人油航。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓崭庸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谊囚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子怕享,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 主要文體來(lái)自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano閱讀 10,966評(píng)論 3 27
  • 如果白日里的忙碌令人疲倦、煩躁镰踏,那么夜晚的寧?kù)o便給了人以輕松函筋、舒適。日間被那些瑣碎奠伪、冗長(zhǎng)的俗世擾亂了的心緒跌帐,就像一...
    落沙夕陽(yáng)閱讀 331評(píng)論 0 3