1.Jmeter的簡(jiǎn)介
Apache JMeter蟋字,是Apache組織開(kāi)發(fā)的基于Java的針對(duì)功能和性能的測(cè)試工具匀钧。最初JMeter是為Web/HTTP測(cè)試而設(shè)計(jì)的病苗,但是后來(lái)它已經(jīng)擴(kuò)展到支持各種各樣的測(cè)試模塊摩瞎。JMeter可以用于測(cè)試靜態(tài)或者動(dòng)態(tài)資源的性能(如靜態(tài)文件篮绿、Java服務(wù)程序、Servlet、CGI腳本状共、Perl腳本套耕、Java對(duì)象、數(shù)據(jù)庫(kù)和查詢峡继、FTP服務(wù)器或者其他資源)冯袍。JMeter可以用于模擬對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο蠹右跃薮蟮呢?fù)載碾牌,在不同壓力類別下測(cè)試它們的強(qiáng)度康愤,分析整體性能。另外小染,JMeter能夠?qū)?yīng)用程序做功能/回歸測(cè)試翘瓮,通過(guò)創(chuàng)建帶有斷言的腳本來(lái)驗(yàn)證你的程序返回了你期望的結(jié)果贮折。為了最大限度的靈活性裤翩,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。同時(shí)它也提供了一個(gè)可替換的界面用來(lái)定制數(shù)據(jù)顯示调榄,測(cè)試的同步及測(cè)試的創(chuàng)建和執(zhí)行踊赠。
其下載地址為:?http://jakarta.apache.org。雙擊D:/JMeter/bin下的jmeter.bat或ApacheJMeter.jar即可開(kāi)啟運(yùn)行每庆。
2.主要組件介紹
(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)聽(tīng)器(Listener)
負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式胚嘲。我們常用的包括:聚合報(bào)告作儿、察看結(jié)果樹(shù)、用表格查看結(jié)果馋劈,都支持將結(jié)果數(shù)據(jù)寫(xiě)入文件攻锰。其他的添加上去看看就行。
(5)邏輯控制器(Logic Controller)
可以自定義JMeter發(fā)送請(qǐng)求的行為邏輯妓雾,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列娶吞。
其分為循環(huán)控制器和事務(wù)控制器。
(6)斷言(Assertions)
可以用來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望的械姻。它可以用來(lái)隔離問(wèn)題域寝志,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。
(7)配置元件(Config Element)
維護(hù)Sampler需要的配置信息材部,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容毫缆。我們主要在參數(shù)化中用到CSV Data Set Config。
(8)前置處理器(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á)式提取器物臂。
(9)定時(shí)器(Timer)
負(fù)責(zé)定義請(qǐng)求之間的延遲間隔旺拉。
3.三種腳本生成方式
方式一:直接導(dǎo)入 Badboy所錄制腳本
在前面的文章我們講解了使用badboy進(jìn)行腳本錄制,這里可以直接將其導(dǎo)入到Jmeter中棵磷。具體補(bǔ)步驟如下:
(1)打開(kāi)JMeter會(huì)有一個(gè)默認(rèn)的測(cè)試計(jì)劃蛾狗,點(diǎn)擊文件->打開(kāi),選中錄制的腳本文件如:Baidu_login.jmx仪媒,打開(kāi)腳本進(jìn)行測(cè)試沉桌。
(2)在線程組(Thread Group)上添加 監(jiān)聽(tīng)器->聚合報(bào)告(用于分析測(cè)試結(jié)果)后,點(diǎn)擊 運(yùn)行-啟動(dòng)算吩,開(kāi)始測(cè)試留凭,測(cè)試完畢后在聚合報(bào)告中就可以看到測(cè)試結(jié)果。一個(gè)簡(jiǎn)單的測(cè)試計(jì)劃就完成了偎巢。
方式二:手動(dòng)編寫(xiě)測(cè)試樣例
(1)在測(cè)試計(jì)劃中先添加一個(gè)線程組蔼夜,然后在該線程組中加入http請(qǐng)求模塊⊙怪纾可以在sampler中看到求冷,Jmeter還能測(cè)試數(shù)據(jù)庫(kù)連接查詢壓力,F(xiàn)TP連接壓力等窍霞。
(2)編寫(xiě)測(cè)試請(qǐng)求匠题。
(3)添加監(jiān)聽(tīng)等。
(4)設(shè)置線程并發(fā)量官撼。
(5)點(diǎn)擊運(yùn)行梧躺,查看運(yùn)行結(jié)果,進(jìn)行分析傲绣。
即300個(gè)并發(fā)量中掠哥,平均時(shí)間是17074毫秒,中間段發(fā)出的的請(qǐng)求耗時(shí)18891毫秒秃诵,末尾百分之90處發(fā)出的請(qǐng)求耗時(shí)25575毫秒续搀。整個(gè)測(cè)試過(guò)程中,最小耗時(shí)為2616毫秒菠净,最大耗時(shí)為26911毫秒禁舷。
方式三:使用Jmeter工作臺(tái)錄制腳本(待續(xù)……)