jmeter-1-基本介紹

一、JMeter?介紹

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

同時(shí),JMeter可以幫助你對(duì)你的應(yīng)用程序進(jìn)行回歸測(cè)試。通過(guò)你創(chuàng)建的測(cè)試腳本和assertions來(lái)驗(yàn)證你的程序返回了所期待的值。為了更高的適應(yīng)性,JMeter允許你使用正則表達(dá)式來(lái)創(chuàng)建這些assertions.

JMeter與LoadRunner比較

JMeter?是一款開源(有著典型開源工具特點(diǎn):界面不美觀)測(cè)試工具,雖然與LoadRunner相比有很多不足,比如:它結(jié)果分析能力沒(méi)有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ì)之初只是一個(gè)簡(jiǎn)單的web性能測(cè)試工具,但經(jīng)過(guò)不段的更新擴(kuò)展,現(xiàn)在可以完成數(shù)據(jù)庫(kù)、FTP、LDAP、WebService等方面的測(cè)試。因?yàn)樗拈_源性,當(dāng)然你也可以根據(jù)自己的需求擴(kuò)展它的功能。

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

JMeter缺點(diǎn)

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

二、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)程測(cè)試出現(xiàn)問(wèn)題。

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

監(jiān)控插件,用來(lái)監(jiān)控被測(cè)服務(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啟動(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目錄中。

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


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

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

1、Test?Plan?(測(cè)試計(jì)劃):用來(lái)描述一個(gè)性能測(cè)試,包含與本次性能測(cè)試所有相關(guān)的功能。也就說(shuō)本的性能測(cè)試的所有內(nèi)容是于基于一個(gè)計(jì)劃的。

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

注意

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

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


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

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

1)?setup?thread?group?

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

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

2)?teardown?thread?group.?

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

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

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

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


線程組:

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

  注釋:

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

  Ramp-Up Period:?jiǎn)挝皇敲?,默認(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í)行多少次請(qǐng)求。


3、測(cè)試片段(Test?Fragment)

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




控制器

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

4、取樣器(Sampler)

??? 取樣器(Sampler)是性能測(cè)試中向服務(wù)器發(fā)送請(qǐng)求,記錄響應(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ā)出不同類型的請(qǐng)求。

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

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

??? 邏輯控制器,包括兩類無(wú)件,一類是用于控制test?plan?中?sampler?節(jié)點(diǎn)發(fā)送請(qǐng)求的邏輯順序的控制器,常用的有?如果(If)控制器?、 switch?Controller?、Runtime?Controller、循環(huán)控制器等。另一類是用來(lái)組織可控制?sampler?來(lái)節(jié)點(diǎn)的, 如?事務(wù)控制器、吞吐量控制器。

6、配置元件(Config?Element)

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

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

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



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

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


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

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


9、后置處理器(Post?Processors)

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



10、斷言(Assertions)

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



11、監(jiān)聽(tīng)器(Listener)

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



五、幫助

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

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

到此,我們已經(jīng)簡(jiǎn)單了解了jmeter的基本組成原件,我們后序的測(cè)試工作也就是使用這些元件來(lái)完成測(cè)試任務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容