日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Jmeter壓力測試簡單教程(包括服務(wù)器狀態(tài)監(jiān)控)

 huowufenghuang 2018-08-16

    前段時間公司需要對服務(wù)器進行壓力測試,包括登錄前的頁面和登錄后的頁面,主要目的是測試負(fù)載均衡的實現(xiàn)效果。不知道是不是因為Jmeter不如loadRunner火爆還是什么,網(wǎng)上關(guān)于Jmeter的資料有很多但是大多千篇一律,要么簡單弄個頁面測試一下,要么全篇都是介紹很多和Jmeter無關(guān)的第三方工具,看起來很專業(yè)高深,但是作為測試小白來說,看到這樣的東西確實頭疼。我只是想好好了解一下Jmeter的使用啊,能不能完整的介紹一下?。课也恍枰私饽敲炊嗥渌牡谌焦ぞ甙。磕懿荒芙貍€圖說的清楚一點?。窟@個步驟里的參數(shù)是干嘛的???對應(yīng)的什么啊?你的這一步我怎么出現(xiàn)問題了啊?怎么不說解決方法啊。。。這應(yīng)該是我前段時間查找Jmeter資料內(nèi)心最多的問題了,真是嗶了狗了(我是一個優(yōu)雅的程序猿,很少講粗話啦~嘿嘿)。對于使用某種新的東西,我的習(xí)慣往往是先把流程完整的跑一遍,記住,是完整,清晰,好歹別人看了之后對應(yīng)著自己的需求也能照搬著實現(xiàn),吐槽了夠多了,開始進入正題,我把我遇到的坑都說清楚,包括后來怎么從坑里爬出來的。。。

    步驟一  安裝Jmeter

    我用的版本是3.1版本,為什么是3.1,因為3.2有問題,我也是跑了一段時間后才知道3.2版本太新了還是什么的,有些功能就是不行,在此建議大家,不要輕易使用最新版本,次新版本就可以了。安裝好了之后Jmeter的bin目錄下有個Jmeter.bat文件,雙擊就能運行了。


   步驟二  使用Jmeter測試未登錄頁面

    運行軟件之后,我們當(dāng)然要找個鏈接測試一下啦,這里我們以百度為例,我們右擊“測試計劃”——“添加”——“Threads(Users)——線程組”,這樣就建了一個線程組了,這是干嘛,當(dāng)然是跑線程用的啊。有了線程組之后,我們再右擊線程組,“添加”——“配置元件”——“http請求默認(rèn)值”,這個默認(rèn)值是干嘛的?里面可以設(shè)置一些常用的默認(rèn)的設(shè)置(這不是廢話嘛~),在http請求默認(rèn)值面板里面,我們可以輸入要測試的服務(wù)器的IP或者域名,這里我們輸入“www.baidu.com”,協(xié)議是“https”,你要測試的網(wǎng)址如果是http開頭那就填“http”,其他默認(rèn)不管了,這時候點擊左上角保存會彈出一個保存框,這是讓你保存你現(xiàn)在所做的測試配置,以后需要再測試的話的直接打開保存的jmx文件就行了。保存完了之后,我們再右擊“線程組”——“添加”——“Sampler”——“http請求”,哎,剛剛不是添加過了嗎?剛剛那個不是哦,剛剛那個只是默認(rèn)值,只是用來設(shè)置一些默認(rèn)配置,真正發(fā)起請求的是“http請求”,在http請求里面我們在“路徑”里面輸入斜杠“/”就行啦,表示默認(rèn)路徑,IP那一欄就不用輸入了,為什么呢?因為在http請求默認(rèn)值里面已經(jīng)輸過啦,以后可以新建多個http請求,只要修改路徑就行了,這樣就可以訪問同一個網(wǎng)站的不同頁面,這就是“http請求默認(rèn)值”的意義所在,把一些共用的設(shè)置寫一遍就好了。接著,我們再右擊“線程組”——“添加”——“監(jiān)聽器”——“察看結(jié)果數(shù)”,在這里可以查看到http請求和結(jié)果。每次新建組件和修改配置信息都要點擊保存,好了,頁面配置圖如下所示:

   


    現(xiàn)在我們點擊工具欄的綠色運行按鈕,就可以在“察看結(jié)果樹”中看到結(jié)果了


    我們新建的“http請求”返回結(jié)果200,表明請求成功,從綠色打鉤也能看出,上圖中的下拉列表框可以選擇顯示格式,我們選擇HTML,切換到“響應(yīng)數(shù)據(jù)”就可以看到返回頁面,也就是百度首頁。

    步驟三  設(shè)置線程并發(fā)數(shù)

    剛剛我們完成了一個簡單的測試,你也應(yīng)該感覺到自己啥也沒干,就能測試了,其實不然,我們點擊“線程組”可以看到線程組的設(shè)置頁面,默認(rèn)設(shè)置1個線程,1秒啟動,循環(huán)1次。線程數(shù)表示啟動多少個線程,Ramp-Up Period表示花多長時間啟動所有線程,循環(huán)次數(shù)表示每個線程的執(zhí)行次數(shù),例如,我設(shè)置線程數(shù)10,Ramp-Up Period為10,循環(huán)次數(shù)2,表示軟件將在10秒內(nèi)啟動10個線程,也就是1秒啟動1個線程,每個線程執(zhí)行兩次請求。


    此外,我們還可以勾選“調(diào)度器”,比如我填入持續(xù)時間100,啟動延遲0,將循環(huán)次數(shù)勾選“永遠”,表示線程立即啟動,執(zhí)行100秒后停止,注意,如果設(shè)置了持續(xù)時間和啟動延遲,那么下面的啟動時間和結(jié)束時間就不起作用了,也就不用管了,點擊運行即可。

    步驟四  設(shè)置其他監(jiān)聽器

    之前我們僅僅設(shè)置了“察看結(jié)果樹”這個監(jiān)聽器,我們右擊“線程組”——“添加”——“監(jiān)聽器”,里面有好多監(jiān)聽器可供選擇,比如圖形結(jié)果,用表格查看結(jié)果,聚合報告等等,這些都是反映測試過程的指標(biāo)數(shù)據(jù)。圖形結(jié)果以圖形的形式顯示吞吐量、偏移、平均值等信息,表格結(jié)果顯示每一次請求的時間,返回,發(fā)送字節(jié)數(shù),連接時間等等,聚合報告里面顯示總體請求的吞吐量,錯誤率等等。下圖為表格結(jié)果的樣式。


    可以看出,圖中顯示了20個Http請求,分別由10個線程執(zhí)行,每個線程執(zhí)行兩次,正好符合我們對于線程組的設(shè)置。圖中每一列的含義分別表示請求序號,開始時間,線程序號,請求名,請求所花的時間,請求狀態(tài),請求字節(jié)數(shù),發(fā)送字節(jié)數(shù),等待時長,連接時間。

    聚合報告如下圖所示,每一列的含義分別表示請求名稱,請求總數(shù),請求的平均響應(yīng)時間(毫秒),50%的請求的響應(yīng)時間,90%的請求的響應(yīng)時間,95%的請求的響應(yīng)時間,99%的請求的響應(yīng)時間,最小的響應(yīng)時間,最大的響應(yīng)時間,錯誤的請求率(錯誤請求數(shù)/總的請求數(shù)),吞吐量(每秒處理的請求數(shù)),接收的字節(jié)速率,發(fā)送的字節(jié)速率。


    步驟五  登錄測試

    前面我們測試的頁面是不需要登錄的,現(xiàn)在我們來測試一下登錄操作,由于登錄操作涉及到具體的內(nèi)部網(wǎng)址和參數(shù),我這里就用一般網(wǎng)址和參數(shù)代替,但是方法是一樣的,例如,我們內(nèi)網(wǎng)IP是1.1.1.1,登錄頁面是1.1.1.1/login.do,我們將1.1.1.1填入“http請求默認(rèn)值”,將/login.do填入“http請求”的路徑里面,關(guān)于登錄需要的參數(shù)我要特別說明一下,一般來說就是用戶名和密碼,但是往往還需要其他參數(shù),我們可以通過抓包工具Fiddler進行抓包,我們在網(wǎng)站中進行一次正常登錄,可以在Fiddler中看到登錄需要的post參數(shù),例如Fiddler中顯示登錄操作post參數(shù)有username,password,type,那么需要在“http請求”里面填入,下圖所示。


    點擊“添加”按鈕就可以添加參數(shù)了,保存好后,我們點擊運行,就可以在察看結(jié)果樹中看到登錄成功后的頁面了,具體的操作和前面一樣的。

    步驟六  會話保持

    我們進入登錄后的頁面后,我還想訪問例如“我的賬戶”,“我的信息”等模塊怎么辦,這些網(wǎng)頁需要登錄成功后才能訪問到,這里我們就需要進行會話的保持,我們右擊“線程組”——“添加”——“配置元件”——“httpcookie管理器”,要添加的內(nèi)容我們可以在察看結(jié)果樹的“請求”選項卡里面看到,里面可以看到登錄需要的cookie,例如JSESSIONID,我們將JSESSIONID填入cookie管理器的參數(shù)里面,如下


    此時,我們在http請求里面輸入登錄后的頁面網(wǎng)址,例如“我的信息”等等,就可以請求成功啦。

    步驟七  文件讀取網(wǎng)址

    我們在“http請求”的路徑里面填入的是我們要訪問的網(wǎng)頁,每次只能填一個,假如我想訪問好幾個網(wǎng)頁,例如首頁,通知頁,公司介紹頁等等,除了新建http請求外,我們還可以將這些網(wǎng)頁的地址存儲在TXT文件里,例如,我要訪問1.1.1.1/index.do,1.1.1.1/information.do,1.1.1.1/company.do,我們可以這樣


    網(wǎng)址填入后,我們在Jmeter里面的“選項”——“函數(shù)助手對話框”——“StringFromFile”,將TXT的完整路徑貼到圖中位置,點擊生成,可以在框里生成TXT文件的讀取路徑。


    我們將$開頭的那串路徑貼到“http請求”的路徑里面,就可以訪問到TXT里面的所有網(wǎng)頁啦,如圖所示。


    步驟八  服務(wù)器狀態(tài)實時監(jiān)聽

    上面我們介紹了幾個Jmeter自帶的監(jiān)聽器,不知你是否感覺到有一點點無力,因為里面顯示的指標(biāo)好像都不是你特別需要的,至少對于我來說,我更關(guān)心我的請求執(zhí)行過程中服務(wù)器狀態(tài)的改變,例如CPU,內(nèi)存,磁盤,網(wǎng)絡(luò),TPS,響應(yīng)時間圖等等,因為這才是壓力測試的目的所在,服務(wù)器狀態(tài)隨著請求增加的變化曲線才是我們更加需要看到的。想看到服務(wù)器變化的曲線圖,我們需要下載JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar,將這兩個jar包放入Jmeter的安裝路徑下的lib/ext/下面,重啟Jmeter后,右擊“線程組”——“添加”——“監(jiān)聽器”,我們可以看到多了好多監(jiān)聽器,大多數(shù)以“jp@gc”開頭的監(jiān)聽器,我們選擇“PerfMon Metrics Collector”,里面將會顯示服務(wù)器的狀態(tài)信息,現(xiàn)在還看不到,為什么,因為要測試的服務(wù)器需要安裝一個包,叫ServerAgent.zip,比如我的服務(wù)器是linux,我們將ServerAgent在服務(wù)器中解壓,運行里面的startAgent.sh就可以啦,啟動起來后可以看到如下


默認(rèn)端口是4444,在這里我要插一句,我當(dāng)時運行后通過Telnet始終ping不到4444端口導(dǎo)致顯示不了,后來改成4445端口啟動就可以了,具體的服務(wù)器命令是ServerAgent-2.2.3/startAgent.sh--udp-port 4445 --tcp-port 4445,這樣就表示將serverAgent在4445端口啟動,你可以將4445換成其他端口,如果默認(rèn)的4444端口不行的小伙伴可以試試其他端口哦。好了,我們回到Jmeter軟件,按下圖填入服務(wù)器的地址和端口號,以及需要監(jiān)控的硬件,如CPU,內(nèi)存,磁盤,網(wǎng)絡(luò)等等。


    好了,我們點擊運行,可以在chart下看到服務(wù)器的狀態(tài)變化曲線啦


    怎么樣,是你想要的吧,其實監(jiān)聽器里面還有很多其他的曲線,看英文就知道,比如TPS曲線,響應(yīng)時間曲線等等,這些你都可以自己添加,我就不贅述啦。好了,本篇博客的內(nèi)容就到這了,有什么不對的地方歡迎評論,我們一起討論一起進步,謝謝!

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多