壓力測試之badboy和Jmeter的簡單使用方法

文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/正則表達式

1.背景

所謂壓力測試是指,經過肯定一個系統的瓶頸或者不能接收的性能點,來得到系統能提供的最大的服務級別的測試。通俗地講,壓力測試是爲了發如今什麼條件下您的應用程序的性能會變得不可接受。一般進行壓力測試均是測試人員的工做,可是研發人員或多或少也須要對壓力測試有個基本的瞭解。這裏我跟你們一塊兒學習如何使用兩個經常使用工具進行壓力測試,即badboy和Jmeter。數據庫

2.badboy簡介及使用方法

2.1badboy簡介

Badboy是用C++開發的,被用於測試和開發複雜的動態應用。它提供了強大的屏幕錄製和回放功能,同時也提供了豐富的圖形結果分析功能。只要不用於商業目的就能夠無償使用。所以這兩工具的結合,就成爲了絕配。咱們能夠用Badboy錄製腳本,而後將錄製的腳本導出爲JMeter格式的腳本,最後將該腳本導入到JMeter,藉助於JMeter強大的測試功能模擬大量的虛擬用戶,進行復雜的性能測試。apache

其下載地址爲:http://www.badboy.com.au。下載完後須要進行安裝,安裝過程同通常的Windows 應用程序沒有什麼區別,安裝完成後你能夠在桌面和Windows開始菜單中看到相應的快捷方式。若是找不到,能夠找一下Badboy安裝目錄下的Badboy.exe文件,直接雙擊啓動Badboy。最後開到的啓動界面以下:瀏覽器

                       

2.2使用方法

a.在地址欄(圖中紅色方框標註的部分)中輸入你須要錄製的Web應用的URL,這裏咱們以http://www.baidu.com爲例。服務器

b.點擊「開始錄製」按鈕(圖中藍色圓圈標註的部分)開始錄製 。微信

c.開始錄製後,你能夠直接在Badboy內嵌的瀏覽器(主界面的右側)中對被測應用進行操做,全部的操做都會被記錄在主界面左側的編輯窗口中(圖中黃色方框標註的部分)。在這個試驗中,咱們在baidu的搜索引擎中輸入 JMeter 進行搜索。不過錄制下來的腳本並非一行行的代碼,而是一個個Web對象——這有點像LoadRunner的VuGen中的Tree View視圖。網絡

d.錄製完成後,點擊工具欄中的「中止錄製」按鈕(圖中紫色方框標註的部分),完成腳本的錄製。併發

 

 

e.選擇「File -> Export to JMeter」菜單,填寫文件名「baidu.jmx」,將錄製好腳本導出爲JMeter腳本格式。也能夠選擇「File -> Save」菜單保存爲Badboy腳本。工具

f.啓動JMeter並打開剛剛生成的測試腳本,就能夠用JMeter進行測試了。性能

 

3.Jmeter的簡介和使用方法

3.1Jmeter的簡介

Apache JMeter,是Apache組織開發的基於Java的針對功能和性能的測試工具。最初JMeter是爲Web/HTTP測試而設計的,可是後來它已經擴展到支持各類各樣的測試模塊。JMeter能夠用於測試靜態或者動態資源的性能(如靜態文件、Java服務程序、Servlet、CGI腳本、Perl腳本、Java對象、數據庫和查詢、FTP服務器或者其餘資源)。JMeter能夠用於模擬對服務器、網絡或對象加以巨大的負載,在不一樣壓力類別下測試它們的強度,分析總體性能。另外,JMeter可以對應用程序作功能/迴歸測試,經過建立帶有斷言的腳原本驗證你的程序返回了你指望的結果。爲了最大限度的靈活性,JMeter容許使用正則表達式建立斷言。同時它也提供了一個可替換的界面用來定製數據顯示,測試的同步及測試的建立和執行。

其下載地址爲: http://jakarta.apache.org。雙擊D:/JMeter/bin下的jmeter.bat或ApacheJMeter.jar便可開啓運行。

3.2主要組件介紹

a.測試計劃(Test Plan)

   是使用JMeter進行測試的起點,它是其它JMeter測試元件的容器。

b.線程組(Thread Group)

   表明必定數量的併發用戶,它能夠用來模擬併發用戶發送請求。

c.取樣器(sampler)

   定義實際的請求內容,被線程組包含,咱們主要用HTTP請求。

d.監聽器(Listener)

負責收集測試結果,同時也被告知告終果顯示的方式。咱們經常使用的包括:聚合報告、察看結果樹、用表格查看結果,都支持將結果數據寫入文件。其餘的添加上去看看就行。

 

 

e.邏輯控制器(Logic Controller)

能夠自定義JMeter發送請求的行爲邏輯,它與Sampler結合使用能夠模擬複雜的請求序列。

其分爲循環控制器和事務控制器。

f.斷言(Assertions)

能夠用來判斷請求響應的結果是否如用戶所指望的。它能夠用來隔離問題域,即在確保功能正確的前提下執行壓力測試。這個限制對於有效的測試是很是有用的。

g.配置元件(Config Element)

維護Sampler須要的配置信息,並根據實際的須要會修改請求的內容。咱們主要在參數化中用到CSV Data Set Config。

h.前置處理器(Pre Processors)和後置處理器(Post Processors)

負責在生成請求以前和以後完成工做。前置處理器經常用來修改請求的設置,後置處理器則經常用來處理響應的數據。咱們主要在動態關聯中用到後置處理器的正則表達式提取器。

i.定時器(Timer)

負責定義請求之間的延遲間隔。

3.3兩種使用方法

3.3.1直接導入腳本的方法

在前面咱們使用badboy進行了腳本錄製,這裏能夠直接將其導入到Jmeter中。具體補步驟以下:

a.打開JMeter會有一個默認的測試計劃,點擊文件-打開,選中錄製的腳本文件如:WebXSample_addUser.jmx,打開腳本進行測試。

b.在線程組上添加監聽器-聚合報告(用於分析測試結果)後,點擊運行-啓動,開始測試,測試完畢後在聚合報告中就能夠看到測試結果。一個簡單的測試計劃就完成了。

 

3.3.2手動編寫測試樣例的方法

a.在測試計劃中先添加一個線程組,而後在該線程組中加入http請求模塊。能夠在sampler中看到,Jmeter還能測試數據庫鏈接查詢壓力,FTP鏈接壓力等。

 

b.編寫測試請求。

 

c.添加監聽等。

d.設置線程併發量。

 

f.點擊運行,查看運行結果,進行分析。

 

 

即300個併發量中,平均時間是17074毫秒,中間段發出的的請求耗時18891毫秒,末尾百分之90處發出的請求耗時25575毫秒。整個測試過程當中,最小耗時爲2616毫秒,最大耗時爲26911毫秒。

                                                              

                                                        -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                    若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                  

相關文章
相關標籤/搜索