jmeter-1-基本介紹

一惕虑、JMeter?介紹

Apache JMeter是100%純JAVA桌面應(yīng)用程序忙迁,被設(shè)計(jì)為用于測試客戶端/服務(wù)端結(jié)構(gòu)的軟件(例如web應(yīng)用程序)贤牛。它可以用來測試靜態(tài)和動態(tài)資源的性能构蹬,例如:靜態(tài)文件,Java Servlet,CGI Scripts,Java Object,數(shù)據(jù)庫和FTP服務(wù)器等等悔据。JMeter可用于模擬大量負(fù)載來測試一臺服務(wù)器庄敛,網(wǎng)絡(luò)或者對象的健壯性或者分析不同負(fù)載下的整體性能。

同時科汗,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)也有很多:

? 開源兴猩,他是一款開源的免費(fèi)軟件,使用它你不需要支付任何費(fèi)用早歇,

? 小巧倾芝,相比LR的龐大(最新LR11將近4GB),它非常小巧箭跳,不需要安裝晨另,但需要JDK環(huán)境,因?yàn)樗鞘褂胘ava開發(fā)的工具衅码。

? 功能強(qiáng)大,jmeter設(shè)計(jì)之初只是一個簡單的web性能測試工具脊岳,但經(jīng)過不段的更新擴(kuò)展逝段,現(xiàn)在可以完成數(shù)據(jù)庫、FTP割捅、LDAP奶躯、WebService等方面的測試。因?yàn)樗拈_源性亿驾,當(dāng)然你也可以根據(jù)自己的需求擴(kuò)展它的功能嘹黔。

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

JMeter缺點(diǎn)

使用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.避免在一個有空格的路徑安裝JMeter涨岁,這將導(dǎo)致遠(yuǎn)程測試出現(xiàn)問題。

2)JMeter監(jiān)控插件安裝

監(jiān)控插件,用來監(jiān)控被測服務(wù)器的cpu,io,等參數(shù)

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啟動jmeter

注意:打開的時候會有兩個窗口,JMeter的命令窗口和JMeter的圖形操作界面尝哆,不可以關(guān)閉命令窗口畜疾。

2.?JMeter的classpath:

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

? ?如果你開發(fā)了一個JMeter特定組件或有效的jar文件瞎暑,復(fù)制到lib目錄下的ext目錄中与帆。

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


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

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

1童太、Test?Plan?(測試計(jì)劃):用來描述一個性能測試赊窥,包含與本次性能測試所有相關(guān)的功能址遇。也就說本的性能測試的所有內(nèi)容是于基于一個計(jì)劃的斋竞。

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

注意

“函數(shù)測試模式”復(fù)選框,如果被選擇拗小,它會使Jmeter記錄來自服務(wù)器返回的每個取樣的數(shù)據(jù)剿配。如果你在測試監(jiān)聽器中選擇一個文件,這個數(shù)據(jù)將被寫入文件漾抬。如果你嘗試一個較小的測試來保證Jmeter配置正確并且你的服務(wù)器正在返回期望的結(jié)果挽荠,這是很有用的克胳。這樣做的后果就是這個文件會快速的增大,并且Jmeter的效率會影響圈匆。

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


2跃赚、Threads?(Users)線程?用戶

雖然有三個添加線程組的選項(xiàng)笆搓,名字不一樣,?創(chuàng)建之后纬傲,其界面是完全一樣的满败。之前的版本只有一個線程組的名字。現(xiàn)在多一個setUp?theread?Group?與terDown?Thread?Group

1)?setup?thread?group?

一種特殊類型的ThreadGroup的叹括,可用于執(zhí)行預(yù)測試操作算墨。這些線程的行為完全像一個正常的線程組元件。不同的是领猾,這些類型的線程執(zhí)行測試前進(jìn)行定期線程組的執(zhí)行米同。

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

2)?teardown?thread?group.?

一種特殊類型的ThreadGroup的摔竿,可用于執(zhí)行測試后動作面粮。這些線程的行為完全像一個正常的線程組元件。不同的是继低,這些類型的線程執(zhí)行測試結(jié)束后執(zhí)行定期的線程組熬苍。

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

3)?thread?group(線程組).

?????這個就是我們通常添加運(yùn)行的線程袁翁。通俗的講一個線程組,柴底,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶粱胜。線程組中包含的線程數(shù)量在測試執(zhí)行過程中是不會發(fā)生改變的柄驻。


線程組:

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

  注釋:

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

  Ramp-Up Period:單位是秒焙压,默認(rèn)時間是1秒鸿脓。它指定了啟動所有線程所花費(fèi)的時間,比如涯曲,當(dāng)前的設(shè)定表示“在5秒內(nèi)啟動5個線程野哭,每個線程的間隔時間為1秒”。如果你需要Jmeter立即啟動所有線程幻件,將此設(shè)定為0即可

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


3、測試片段(Test?Fragment)

???? 測試片段元素是控制器上的一個種特殊的線程組绰沥,它在測試樹上與線程組處于一個層級篱蝇。它與線程組有所不同贺待,因?yàn)樗槐粓?zhí)行,除非它是一個模塊控制器或者是被控制器所引用時才會被執(zhí)行零截。




控制器

JMeter有兩種類型的控制器:取樣器(sample)和邏輯控制器(Logic?Controller)狠持,用這些原件來驅(qū)動處理一個測試。

4瞻润、取樣器(Sampler)

??? 取樣器(Sampler)是性能測試中向服務(wù)器發(fā)送請求喘垂,記錄響應(yīng)信息,記錄響應(yīng)時間的最小單元绍撞,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 Requst Sampler是兩種特殊的可定制的Sampler.

5、邏輯控制器(Logic?Controller)

??? 邏輯控制器两踏,包括兩類無件败京,一類是用于控制test?plan?中?sampler?節(jié)點(diǎn)發(fā)送請求的邏輯順序的控制器,常用的有?如果(If)控制器?梦染、 switch?Controller?赡麦、Runtime?Controller、循環(huán)控制器等帕识。另一類是用來組織可控制?sampler?來節(jié)點(diǎn)的泛粹, 如?事務(wù)控制器、吞吐量控制器肮疗。

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?可以用于對?HTTP?Request?Sampler?的 cookie?進(jìn)行管理超歌。

     HTTP 請求默認(rèn)值不會觸發(fā)Jmeter發(fā)送http請求砍艾,而只是定義HTTP請求的默認(rèn)屬性蒂教。



7巍举、定時器(Timer)

定時器(Timer)用于操作之間設(shè)置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手段凝垛。類似于LoadRunner里面的“思考時間”懊悯。 JMeter?定義了Bean?Shell?Timer蜓谋、Constant?Throughput?Timer、固定定時器等不同類型的Timer炭分。


8桃焕、前置處理器(Per?Processors)

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


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ù)泞辐。



10笔横、斷言(Assertions)

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



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

這個監(jiān)聽器可不是用來監(jiān)聽系統(tǒng)資源的元件锯茄。它是用來對測試結(jié)果數(shù)據(jù)進(jìn)行處理和可視化展示的一系列元件涛菠。圖形結(jié)果、查看結(jié)果樹撇吞、聚合報告俗冻、用表格察看結(jié)果都是我們經(jīng)常用到的元件。



五牍颈、幫助

http://jmeter.apache.org/usermanual/component_reference.html

最好的幫助是:菜單-“幫助”-“幫助”迄薄。

到此,我們已經(jīng)簡單了解了jmeter的基本組成原件煮岁,我們后序的測試工作也就是使用這些元件來完成測試任務(wù)讥蔽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市画机,隨后出現(xiàn)的幾起案子冶伞,更是在濱河造成了極大的恐慌,老刑警劉巖步氏,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件响禽,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)芋类,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門隆嗅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侯繁,你說我怎么就攤上這事胖喳。” “怎么了贮竟?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵丽焊,是天一觀的道長。 經(jīng)常有香客問我咕别,道長粹懒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任顷级,我火速辦了婚禮凫乖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弓颈。我一直安慰自己帽芽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般吭从。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搬瑰,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機(jī)與錄音控硼,去河邊找鬼泽论。 笑死,一個胖子當(dāng)著我的面吹牛卡乾,可吹牛的內(nèi)容都是我干的翼悴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼幔妨,長吁一口氣:“原來是場噩夢啊……” “哼鹦赎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起误堡,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤古话,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锁施,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陪踩,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杖们,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了膊毁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡基跑,死狀恐怖婚温,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情媳否,我是刑警寧澤栅螟,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站篱竭,受9級特大地震影響力图,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掺逼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一吃媒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吕喘,春花似錦赘那、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闻察,卻和暖如春拱礁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辕漂。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工呢灶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钉嘹。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓填抬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隧期。 傳聞我的和親對象是個殘疾皇子飒责,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348