1. 程式人生 > >jmeter--基本組件介紹

jmeter--基本組件介紹

apache 意義 可以關閉 .net 整體 data 快速 組元 邏輯控制

一、JMeter 介紹

Apache JMeter是100%純Java桌面應用程序,被設計為用於測試客戶端/服務端結構的軟件(例如web應用程序)。它可以用來測試靜態和動態資源的性能,例如:靜態文件,Java Servlet,CGI Scripts,java Object,數據庫和FTP服務器等等。JMeter可用於模擬大量負載來測試一臺服務器,網絡或者對象的健壯性或者分析不同負載下的整體性能。 同時,JMeter可以幫助你對你的應用程序進行回歸測試。通過你創建的測試腳本和assertions來驗證你的程序返回了所期待的值。為了更高的適應性,JMeter允許你使用正則表達式來創建這些assertions。

二、JMeter 下載安裝

1)JMeter安裝

1. http://jmeter.apache.org/下載最新版本的JMeter,解壓文件到任意目錄

2. 安裝JDK,配置環境變量JAVA_HOME.

3. 系統要求:JMeter2.11 需要JDK1.6及以上的版本支持運行、3.1版本需要JDK1.7及以上版本支持運行、3.3版本需要JDK1.8及以上版本支持運行。

4. JMeter可以運行在如下操作系統上:Unix,Windows和Open VMS。

5. 避免在一個有空格的路徑安裝JMeter,這將導致遠程測試出現問題。

2)JMeter插件安裝

1. 插件下載地址: http://jmeter-plugins.org/downloads/all/

2. 插件下載後解壓:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-2.12\lib\ext目錄。

三、JMeter 運行

1. 進入bin目錄運行jmeter.bat啟動jmeter

註意:打開的時候會有兩個窗口,JMeter的命令窗口和JMeter的圖形操作界面,不可以關閉命令窗口。

2. JMeter的classpath:

如果你想添加其他JAR文件到JMeter的classpath中,你必須復制他們到lib目錄中;

如果你開發了一個JMeter特定組件或有效的jar文件,復制到lib目錄下的ext目錄中。

3. 打開之後顯示的是中文,如果你想使用其他語言,比如英文,那麽通過菜單選項->選擇語言->英文即可,當然轉為中文也是同樣操作。

四、JMeter 測試計劃元件

打開Jmeter頁面:包括測試計劃+工作臺。

1、Test Plan (測試計劃):用來描述一個性能測試,包含與本次性能測試所有相關的功能。也就說本的性能測試的所有內容是於基於一個計劃的。

右鍵單擊“測試計劃”彈出菜單:

技術分享

註意:

“函數測試模式”復選框,如果被選擇,它會使Jmeter記錄來自服務器返回的每個取樣的數據。如果你在測試監聽器中選擇一個文件,這個數據將被寫入文件。如果你嘗試一個較小的測試來保證Jmeter配置正確並且你的服務器正在返回期望的結果,這是很有用的。這樣做的後果就是這個文件會快速的增大,並且Jmeter的效率會影響。

如果不記錄數據到文件,這個選項就沒有不同了。

2、Threads (Users)線程 用戶

技術分享

雖然有三個添加線程組的選項,名字不一樣, 創建之後,其界面是完全一樣的。之前的版本只有一個線程組的名字。現在多一個setUp theread Group 與terDown Thread Group

1) setup thread group

一種特殊類型的ThreadGroup的,可用於執行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試前進行定期線程組的執行。

setUp Thread Group類似於lr的init.可用於執行預測試操作。

2) teardown thread group.

一種特殊類型的ThreadGroup的,可用於執行測試後動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束後執行定期的線程組。

tearDown Thread Group類似於lr的end.可用於執行測試後動作。

3) thread group(線程組).

這個就是我們通常添加運行的線程。通俗的講一個線程組,,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。

技術分享

線程組:

  名稱:就如字面意思,起個有意義的名字就行。

  註釋:可以對線程組添加備註以標記。

  在取樣器錯誤後要執行的動作:

    繼續:表示某個線程錯誤後,後面的線程繼續運行。

    停止線程:表示後面的線程都停止運行,返回出錯之前的測試結果。

    停止測試:表示停止測試,不返回測試結果。

  線程屬性:

  線程組:即用戶數,一個虛擬用戶占用一個進程或線程,需要多少用戶並發,設置多少虛擬用戶數在這裏也就是設置多少個線程數。

  Ramp-Up Period(in seconds)準備時長:設置的虛擬用戶數需要多長時間全部啟動。比如線程數為100,準備時長為10,那麽需要10秒鐘啟動100個線程,也就是每秒鐘啟動10個線程。如果你需要Jmeter立即啟動所有線程,將此設定為0即可。

  循環次數:表示每個線程執行多少次請求。如果線程數為20,循環次數為100,那麽每個線程發送100次請求。總請求數為20*100=2000 。如果勾選了“永遠”,那麽所有線程會一直發送請求,直到選擇停止運行腳本。

  Delay Thread creation until needed:直到需要時創建線程,其作用可以延遲線程的創建,減少不必要的資源損失。

  調度器:可以設置線程組啟動的開始時間和結束時間。實踐結論是配置調度器時,需要設置循環次數為永遠,防止因循環次數不夠而終止壓測。

    啟動時間:測試計劃什麽時候啟動,啟動延遲會覆蓋它。當啟動時間已過,手動運行腳本時當前時間也會覆蓋它(但啟動時間頁面顯示不會變)。

    結束時間:測試計劃什麽時候結束,持續時間會覆蓋它。

    持續時間(秒):測試計劃持續多長時間,會覆蓋結束時間。

    啟動延遲(秒):測試計劃延遲多長時間啟動,會覆蓋啟動時間。

3、測試片段(Test Fragment)

測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處於一個層級。它與線程組有所不同,因為它不被執行,除非它是一個模塊控制器或者是被控制器所引用時才會被執行。

技術分享

控制器:Meter有兩種類型的控制器:取樣器(sample)和邏輯控制器(Logic Controller),用這些原件來驅動處理一個測試。

4、取樣器(Sampler)

取樣器(Sampler)是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter 原生支持多種不同的sampler , 如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、 JDBC Request Sampler 等,每一種不同類型的 sampler 可以根據設置的參數向服務器發出不同類型的請求。

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

技術分享

5、邏輯控制器(Logic Controller)

邏輯控制器,包括兩類無件,一類是用於控制test plan 中 sampler 節點發送請求的邏輯順序的控制器,常用的有 如果(If)控制器 、 switch Controller 、Runtime Controller、循環控制器等。另一類是用來組織可控制 sampler 來節點的, 如 事務控制器、吞吐量控制器。

技術分享

6、配置元件(Config Element)

配置元件(config element)用於提供對靜態數據配置的支持。CSV Data Set config 可以將本地數據文件形成數據池 (Data Pool),而對應於HTTP Request Sampler和 TCP Request Sampler等類型的配制無件則可以修改 Sampler的默認數據。例如,HTTP Cookie Manager 可以用於對 HTTP Request Sampler 的 cookie 進行管理。HTTP 請求默認值不會觸發Jmeter發送http請求,而只是定義HTTP請求的默認屬性。

技術分享

7、定時器(Timer)

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

技術分享

8、前置處理器(Per Processors)

前置處理器用於在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP URL重寫修復符則可以實現URL重寫,當RUL中有sessionID 一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID 。

技術分享

9、後置處理器(Post Processors)

後置處理器是用於對Sampler 發出請求後得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath Extractor 則可以用於提取響應數據中通過給定XPath 值獲得的數據;正則表達式提取器,則可以提取響應數據中通過正則表達式獲得的數據。

技術分享

10、斷言(Assertions)

斷言用於檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。

技術分享

11、監聽器(Listener)

這個監聽器可不是用來監聽系統資源的元件。它是用來對測試結果數據進行處理和可視化展示的一系列元件。 圖形結果、查看結果樹、聚合報告、用表格察看結果都是我們經常用到的元件。

技術分享

五、工作臺

技術分享

在測試中我們可能需要暫時更改一些組件,可以把一些需要更改的組件保存在工作臺中,測試完成後再恢復,但是切記:不能退出jmeter.一旦退出jmeter,工作臺中的內容就會消失。

1、工作臺-非測試元件-Property Display,此元件相當於是jmeter.properties的GUI。

技術分享

六、幫助

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

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

技術分享

到此,我們已經簡單了解了jmeter的基本組成原件,我們後序的測試工作也就是使用這些元件來完成測試任務。

jmeter--基本組件介紹