JMeter工具簡單介紹

一漱抓、JMeter介紹

Apache JMeter是100%純JAVA桌面應(yīng)用程序乞娄,被設(shè)計(jì)為用于測試客戶端/服務(wù)端結(jié)構(gòu)的軟件(例如web應(yīng)用程序)。它可以用來測試靜態(tài)和動(dòng)態(tài)資源的性能范删,例如:靜態(tài)文件,Java Servlet,CGI Scripts,Java Object,數(shù)據(jù)庫和FTP服務(wù)器等等。JMeter可用于模擬大量負(fù)載來測試一臺(tái)服務(wù)器搁骑,網(wǎng)絡(luò)或者對象的健壯性或者分析不同負(fù)載下的整體性能。同時(shí)娄周,JMeter可以幫助你對你的應(yīng)用程序進(jìn)行回歸測試裳涛。通過你創(chuàng)建的測試腳本和assertions來驗(yàn)證你的程序返回了所期待的值。為了更高的適應(yīng)性鹃彻,JMeter允許你使用正則表達(dá)式來創(chuàng)建這些assertions.

JMeter與LoadRunner比較

JMeter 是一款開源(有著典型開源工具特點(diǎn):界面不美觀)測試工具,雖然與LoadRunner相比有很多不足欢摄,比如:它結(jié)果分析能力沒有LoadRunner詳細(xì);很它的優(yōu)點(diǎn)也有很多:

1.開源绿淋,他是一款開源的免費(fèi)軟件,使用它你不需要支付任何費(fèi)用裁赠,

2.小巧凸舵,相比LR的龐大(最新LR11將近4GB)渐苏,它非常小巧琼富,不需要安裝薯鼠,但需要JDK環(huán)境,因?yàn)樗鞘褂胘ava開發(fā)的工具郊艘。

3.功能強(qiáng)大,jmeter設(shè)計(jì)之初只是一個(gè)簡單的web性能測試工具,但經(jīng)過不段的更新擴(kuò)展斥滤,現(xiàn)在可以完成數(shù)據(jù)庫、FTP挑胸、LDAP漆腌、WebService等方面的測試。因?yàn)樗拈_源性螟左,當(dāng)然你也可以根據(jù)自己的需求擴(kuò)展它的功能。

兩者最大的區(qū)別:jmeter不支持IP欺騙,而LR支持红且。

JMeter缺點(diǎn)與內(nèi)部功能詳細(xì)說明

使用JMeter無法驗(yàn)證JS程序景东,也無法驗(yàn)證頁面UI,所以要須要和Selenium配合來完成Web2.0應(yīng)用的測試。

二派阱、JMeter下載安裝

1)JMeter安裝

  1. http://jmeter.apache.org/下載最新版本的JMeter盒刚,解壓文件到任意目錄

2.安裝JDK橘原,配置環(huán)境變量JAVA_HOME.

3.系統(tǒng)要求:JMeter2.11 需要JDK1.6以上的版本支持運(yùn)行

4.JMeter可以運(yùn)行在如下操作系統(tǒng)上:Unix吩愧,Windows和Open VMS.

5.避免在一個(gè)有空格的路徑安裝JMeter脐帝,這將導(dǎo)致遠(yuǎn)程測試出現(xiàn)問題。

2)JMeter插件安裝

1.插件下載地址: http://jmeter-plugins.org/downloads/all/

2.插件下載后解壓:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-2.12\lib\ext目錄甘穿。

三腮恩、JMeter運(yùn)行

  1. 進(jìn)入bin目錄運(yùn)行jmeter.bat啟動(dòng)jmeter

注意:打開的時(shí)候會(huì)有兩個(gè)窗口梢杭,JMeter的命令窗口和JMeter的圖形操作界面温兼,不可以關(guān)閉命令窗口。

2.JMeter的classpath:

如果你想添加其他JAR文件到JMeter的classpath中,你必須復(fù)制他們到lib目錄中;

如果你開發(fā)了一個(gè)JMeter特定組件或有效的jar文件装处,復(fù)制到lib目錄下的ext目錄中。

  1. 打開之后顯示的是中文,如果你想使用其他語言绅这,比如英文,那么通過菜單選項(xiàng)->選擇語言->英文即可,當(dāng)然轉(zhuǎn)為中文也是同樣操作缎浇。

四、JMeter測試計(jì)劃元件

打開Jmeter頁面:包括測試計(jì)劃+工作臺(tái)。

1厕九、Test Plan(測試計(jì)劃):用來描述一個(gè)性能測試并闲,包含與本次性能測試所有相關(guān)的功能九巡。也就說本的性能測試的所有內(nèi)容是于基于一個(gè)計(jì)劃的涕滋。

右鍵單擊“測試計(jì)劃”彈出菜單:

image

注意:

“函數(shù)測試模式”復(fù)選框,如果被選擇渣玲,它會(huì)使Jmeter記錄來自服務(wù)器返回的每個(gè)取樣的數(shù)據(jù)搀捷。如果你在測試監(jiān)聽器中選擇一個(gè)文件,這個(gè)數(shù)據(jù)將被寫入文件镰绎。如果你嘗試一個(gè)較小的測試來保證Jmeter配置正確并且你的服務(wù)器正在返回期望的結(jié)果重绷,這是很有用的愤钾。這樣做的后果就是這個(gè)文件會(huì)快速的增大谦疾,并且Jmeter的效率會(huì)影響匣摘。

如果不記錄數(shù)據(jù)到文件,這個(gè)選項(xiàng)就沒有不同了弹砚。

2失暴、Threads(Users)線程用戶

image

雖然有三個(gè)添加線程組的選項(xiàng)肛跌,名字不一樣侧纯,創(chuàng)建之后,其界面是完全一樣的,之前的版本只有一個(gè)線程組的名字∞闭現(xiàn)在多一個(gè)setUptheread Group與terDown Thread Group

  1. setup thread group

一種特殊類型的ThreadGroup的,可用于執(zhí)行預(yù)測試操作砰碴。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是,這些類型的線程執(zhí)行測試前進(jìn)行定期線程組的執(zhí)行包券。

setUp Thread Group類似于lr的init.可用于執(zhí)行預(yù)測試操作盗温。

  1. teardown thread group

一種特殊類型的ThreadGroup的羞反,可用于執(zhí)行測試后動(dòng)作陶贼。這些線程的行為完全像一個(gè)正常的線程組元件。不同的是廉沮,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線程組。

tearDown Thread Group類似于lr的end.可用于執(zhí)行測試后動(dòng)作。

  1. thread group(線程組).

這個(gè)就是我們通常添加運(yùn)行的線程。通俗的講一個(gè)線程組,颈墅,可以看做一個(gè)虛擬用戶組,線程組中的每個(gè)線程都可以理解為一個(gè)虛擬用戶雾袱。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會(huì)發(fā)生改變的恤筛。

image

線程組:

名稱:就如字面意思,起個(gè)有意義的名字就行

注釋:

線程數(shù):這里選擇5

Ramp-Up Period:單位是秒芹橡,默認(rèn)時(shí)間是1秒毒坛。它指定了啟動(dòng)所有線程所花費(fèi)的時(shí)間,比如林说,當(dāng)前的設(shè)定表示“在5秒內(nèi)啟動(dòng)5個(gè)線程煎殷,每個(gè)線程的間隔時(shí)間為1秒”。如果你需要Jmeter立即啟動(dòng)所有線程腿箩,將此設(shè)定為0即可

循環(huán)次數(shù):表示每個(gè)線程執(zhí)行多少次請求豪直。

3、測試片段(Test Fragment)

測試片段元素是控制器上的一個(gè)種特殊的線程組珠移,它在測試樹上與線程組處于一個(gè)層級(jí)弓乙。它與線程組有所不同,因?yàn)樗槐粓?zhí)行钧惧,除非它是一個(gè)模塊控制器或者是被控制器所引用時(shí)才會(huì)被執(zhí)行暇韧。

image

控制器

JMeter有兩種類型的控制器:取樣器(sample)和邏輯控制器(Logic Controller),用這些原件來驅(qū)動(dòng)處理一個(gè)測試垢乙。

4锨咙、取樣器(Sampler)

取樣器(Sampler)是性能測試中向服務(wù)器發(fā)送請求,記錄響應(yīng)信息追逮,記錄響應(yīng)時(shí)間的最小單元,JMeter原生支持多種不同的sampler粹舵, 如HTTP Request Sampler 钮孵、 FTP Request Sampler 、TCP Request Sampler 眼滤、 JDBC Request Sampler 等巴席,每一種不同類型的 sampler 可以根據(jù)設(shè)置的參數(shù)向服務(wù)器發(fā)出不同類型的請求。

在Jmeter的所有Sampler中诅需,Java Request Sampler與BeanShell RequstSampler是兩種特殊的可定制的Sampler.

image

5漾唉、邏輯控制器(Logic Controller)

邏輯控制器荧库,包括兩類無件,一類是用于控制test plan 中 sampler節(jié)點(diǎn)發(fā)送請求的邏輯順序的控制器赵刑,常用的有如果(If)控制器 分衫、switch Controller 、Runtime Controller般此、循環(huán)控制器等邀桑。另一類是用來組織可控制sampler 來節(jié)點(diǎn)的, 如事務(wù)控制器、吞吐量控制器。

image

6影斑、配置元件(Config Element)

配置元件(config element)用于提供對靜態(tài)數(shù)據(jù)配置的支持 CSV Data Set config 可以將本地?cái)?shù)據(jù)文件形成數(shù)據(jù)池 (Data Pool)片迅,而對應(yīng)于HTTP Request Sampler和TCP Request Sampler等類型的配制無件則可以修改 Sampler的默認(rèn)數(shù)據(jù)。

例如耻台,HTTP Cookie Manager 可以用于對 HTTPRequest Sampler 的 cookie 進(jìn)行管理。

HTTP 請求默認(rèn)值不會(huì)觸發(fā)Jmeter發(fā)送http請求坝咐,而只是定義HTTP請求的默認(rèn)屬性氮昧。

image

7专筷、定時(shí)器(Timer)

定時(shí)器(Timer)用于操作之間設(shè)置等待時(shí)間蒸苇,等待時(shí)間是性能測試中常用的控制客戶端QPS的手段 類似于LoadRunner里面的“思考時(shí)間”。 Jmeter 定義了Bean Shell Timer味咳、Constant Throughput Timer、固定定時(shí)器等不同類型的Timer檬嘀。

image

8掂铐、前置處理器(Per Processors)

前置處理器用于在實(shí)際的請求發(fā)出之前對即將發(fā)出的請求進(jìn)行特殊處理蒿秦。例如棍鳖,HTTP URL重寫修復(fù)符則可以實(shí)現(xiàn)URL重寫,當(dāng)RUL中有sessionID 一類的session信息時(shí)渡处,可以通過該處理器填充發(fā)出請求的實(shí)際的sessionID 镜悉。

image

9、后置處理器(Post Processors)

后置處理器是用于對Sampler發(fā)出請求后得到的服務(wù)器響應(yīng)進(jìn)行處理医瘫。一般用來提取響應(yīng)中的特定數(shù)據(jù)(類似LoadRunner測試工具中的關(guān)聯(lián)概念)侣肄。例如,Xpath Extractor 則可以用于提取響應(yīng)數(shù)據(jù)中通過給定Xpath 值獲得的數(shù)據(jù);正則表達(dá)式提取器醇份,則可以提取響應(yīng)數(shù)據(jù)中通過正則表達(dá)式獲得的數(shù)據(jù)稼锅。

image

10、斷言(Assertions)

斷言用于檢查測試中得到的相應(yīng)數(shù)據(jù)等是否符合預(yù)期僚纷,斷言一般用來設(shè)置檢查點(diǎn)矩距,用以保證性能測試過程中的數(shù)據(jù)交互是否與預(yù)期一致。

image

11怖竭、監(jiān)聽器(Listener)

這個(gè)監(jiān)聽器可不是用來監(jiān)聽系統(tǒng)資源的元件锥债。它是用來對測試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件。 圖形結(jié)果痊臭、查看結(jié)果樹哮肚、聚合報(bào)告、用表格察看結(jié)果都是我們經(jīng)常用到的元件广匙。

image

五允趟、工作臺(tái)

image

在測試中我們可能需要暫時(shí)更改一些組件,可以把一些需要更改的組件保存在工作臺(tái)中鸦致,測試完成后再恢復(fù)潮剪,但是切記:不能退出jmeter.一旦退出jmeter,工作臺(tái)中的內(nèi)容就會(huì)消失蹋凝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲁纠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鳍寂,更是在濱河造成了極大的恐慌改含,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迄汛,死亡現(xiàn)場離奇詭異捍壤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞍爱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鹃觉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睹逃,你說我怎么就攤上這事盗扇〉豢希” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵疗隶,是天一觀的道長佑笋。 經(jīng)常有香客問我,道長斑鼻,這世上最難降的妖魔是什么蒋纬? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坚弱,結(jié)果婚禮上蜀备,老公的妹妹穿的比我還像新娘。我一直安慰自己荒叶,他們只是感情好碾阁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著停撞,像睡著了一般瓷蛙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戈毒,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天艰猬,我揣著相機(jī)與錄音,去河邊找鬼埋市。 笑死冠桃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的道宅。 我是一名探鬼主播食听,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼污茵!你這毒婦竟也來了樱报?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泞当,失蹤者是張志新(化名)和其女友劉穎迹蛤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體襟士,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盗飒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陋桂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逆趣。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嗜历,靈堂內(nèi)的尸體忽然破棺而出宣渗,到底是詐尸還是另有隱情抖所,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布落包,位于F島的核電站部蛇,受9級(jí)特大地震影響摊唇,放射性物質(zhì)發(fā)生泄漏咐蝇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一巷查、第九天 我趴在偏房一處隱蔽的房頂上張望有序。 院中可真熱鬧,春花似錦岛请、人聲如沸旭寿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盅称。三九已至,卻和暖如春后室,著一層夾襖步出監(jiān)牢的瞬間缩膝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工岸霹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疾层,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓贡避,卻偏偏與公主長得像痛黎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子刮吧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

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