1. 程式人生 > >幾種效能自動化測試工具整理

幾種效能自動化測試工具整理

在移動應用和網路服務正式釋出之前,除了進行必要的功能測試和安全測試,為了保證網際網路產品的服務交付質量,往往還需要做壓力/負載/效能測試。然而很多傳統企業在試水網際網路+的過程中,往往由於資源或產品迭代速度等原因忽視了這一塊工作,導致新產品上線之後頻繁出現卡頓等嚴重影響使用者體驗的問題。那麼網際網路產品為什麼要進行壓力/負載/效能測試,又有哪些工具幫我們實現呢,本文將為您細說端詳。壓力/負載/測試效能之異同在產品研發過程中,常常會混淆壓力/負載/效能測試這三者之間的區別,這三種測試到底有什麼不同呢? - 壓力測試(壓力測試),也稱為強度測試,通過模擬實際應用的軟硬體環境及使用者使用過程的系統負荷,長時間或超大負荷地執行測試軟體,來測試被測系統的效能,可靠性,穩定性等。壓力測試需要確定 個系統的瓶頸或者不能接收的效能點,來獲得系統能提供的最大的服務級別。通俗地講,壓力測試是為了發現在什麼條件下你的應用程式的效能會變得不可接受.-負載測試(負載測試)通常被定義為給被測系統加上它所能操作的最大任務數的過程,負載測試有時也會被稱為“容量測試”或者“耐久性測試/永續性測試”,其目標是確定並確保系統在超出最大預期工作量的情況下仍能正常執行。對於WEB應用來講,負載則是併發使用者或者HTTP連線的數量。負載測試通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。在這種測試中,將使測試物件承擔不同的工作量,以評測和評估測試物件在不同工作量條件下的效能行為,以及持續正常執行的能力.-

效能測試(PerformanceTesting)的目的不是去找系統錯誤,而是排除系統的效能瓶頸,併為迴歸測試建立一個基準而效能測試的操作,實際上就是一個非常小心受控的測量分析過程:“執行負載試驗 - >測度效能 - >除錯系統“在理想的情況下,被測應用在這個時候已經是足夠穩定,所以這個過程得以順利進行效能測試還有另一個目標就是建立一組被測系統的基準資料。應用在網路上的效能測試重點是利用成熟先進的自動化技術進行網路應用效能監控,網路應用效能分析和網路預測。雖然三種測試的目的截然不同,但其測試操作的環節都是基本一致的,因此一次測試過程中完全可以包含效能測試,負載測試,壓力測試三個方面的內容,所使用的測試工具往往大同小異.
1,LoadRunner
LoadRunner的是一種預測系統行為和效能的負載測試工具,通過模擬實際使用者的 操作行為進行實時效能監測,來幫助測試人員更快的查詢和發現問題.LoadRunner適用於各種體系架構,能支援廣泛的協議和技術,為測試提供特殊的解決方案。企業通過LoadRunner的的能最大限度地縮短測試時間,優化效能並加速應用系統的釋出週期.LoadRunner的提供了3大主要功能模組:虛擬使用者生成(用於錄製效能測試指令碼)中,LoadRunner的控制器(用於建立,執行和監控場景)時,LoadRunner分析(用於分析效能測試結果),既可以作為獨立的工具完成各自的功能,又可以作為LoadRunner的一部分彼此銜接,與其他模組共同完成軟體效能的整體測試。

2,Jmeter
JMeter作為一款廣為流傳的開源壓測產品,如今JMeter可以用於測試靜態和動態資源,例如靜態檔案,Java小服務程式,CGI指令碼,Java物件,資料庫,FTP伺服器等等,還能對伺服器,網路或物件模擬巨大的負載,通過不同壓力類別測試它們的強度和分析整體效能。另外,JMeter的能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果為了最大限度的靈活性,JMeter的的允許使用正則表示式建立斷言.JMeter的的特點包括對HTTP,FTP伺服器,資料庫進行壓力/效能測試;完全的可移植性;完全擺線和輕量元件支援包;完全多執行緒;快取和離線分析/回放測試結果;可連結的取樣器;具有提供動態輸入到測試的功能;支撐指令碼程式設計的取樣器等。在設計階段,JMeter能夠充當HTTP PROXY(代理)來記錄瀏覽器的H. TTP請求,也可以記錄的Apache Web伺服器等的日誌檔案來重現HTTP流量,並在測試執行時以此為依據設定重複次數和併發度(執行緒數)來進行壓測。!

3,nGrinder
nGrinder是基於磨床開源專案,由NHN公司的開發團隊進行了重新設計.nGrinder是一款非常易用,有簡潔友好的使用者介面和控制器劑分散式結構的強大的壓力測試工具.nGrinder測試基於蟒測試指令碼(常規也可),使用者按照一定規範編寫測試指令碼中,控制器會將指令碼一集需要的資源分發到劑,用的Jython的執行。並且在執行的過程中收集執行情況,相應時間,測試目標伺服器的執行情況等。並且儲存這些資料生成測試報告,以供檢視。這款框架的一大特點就是非常的簡單易用,安裝也很容易,可以說是開箱即用.nGrinderr直接部署成網服務,支援多使用者使用,可擴充套件性好,可自定義外掛!
4 ,加特林!

5,Apache的AB
這裡寫圖片描述
6,java本地測試小工具— stresstester

        /*
        StressTestUtils.test(int concurrencyLevel, int totalRequests, StressTask stressTask, int warmUpTime);
        concurrencyLevel  總併發次數
        totalRequests 總請求次數, 單個執行緒請求次數= totalRequests/concurrencyLevel
        stressTask  併發主體
        warmUpTime  初始綠燈測試stressTask次數
        */
        StressTestUtils.testAndPrint(50, 200, new StressTask() {
            public Object doTask() throws Exception {
                callrpc.call();
                return null;
            }
        });

這裡寫圖片描述