Apache JMeter--1基礎介紹

來源:互聯網
上載者:User

標籤:更新   man   users   extractor   顯示   選中   斷言   開放   回應時間   

一、JMeter  介紹

近期公司要做jmeter調研,將效能測試推廣到全部測試組,便一邊學習一邊做記錄。

Apache JMeter是100%純JAVA傳統型應用程式,是一款優秀的開源效能測試工具,被設計為用於測試用戶端/服務端結構的軟體(例如web應用程式)。它可以用來測試靜態和動態資源的效能,例如:靜態檔案,Java Servlet,CGI Scripts,Java Object,資料庫和FTP伺服器等等。JMeter可用於類比大量負載來測試一台伺服器,網路或者對象的健壯性或者分析不同負載下的整體效能。

同時,JMeter可以協助你對你的應用程式進行迴歸測試。通過你建立的測試指令碼和assertions來驗證你的程式返回了所期待的值。為了更高的適應性,JMeter允許你使用Regex來建立這些assertions.

JMeter與LoadRunner比較

JMeter 是一款開源(有著典型開源工具特點:介面不美觀)測試載入器,雖然與LoadRunner相比有很多不足,比如:它結果分析能力沒有LoadRunner詳細;很它的優點也有很多:

 

  •   開源,他是一款開源的免費軟體,使用它你不需要支付任何費用,
  •   小巧,相比LR的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
  •   功能強大,jmeter設計之初只是一個簡單的web效能測試工具,但經過不段的更新擴充,現在可以完成資料庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然你也可以根據自己的需求擴充它的功能。

 兩者最大的區別:jmeter不支援IP欺騙,而LR支援。

 JMeter缺點

  使用JMeter無法驗證JS程式,也無法驗證頁面UI,所以要須要和Selenium配合來完成Web2.0應用的測試。 

二、安裝及下載

 

這裡附一個最新的jmeter官網:http://jmeter.apache.org/download_jmeter.cgi  。該連結是4.0版本的jmeter安裝包。

 

jmeter本身不需要安裝,只需要配置好JDK環境,然後在在jmeter檔案中的bin檔案中開啟jmeter.bat檔案即可

1)JMeter下載

一般開放原代碼軟體都會有兩個版本發布: Source Distribution 和 Binary Distribution ,
Source 是原始碼版,你需要自己編譯成可執行軟體。 
Binaries是可執行版,直接下載解壓就可以拿來用的,他已經給你編譯好的版本,下載Binaries/apache-jmeter-4.0.zip即可。

 

2)JMeter安裝

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

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

3. 系統要求:JMeter4 需要JDK1.8及以上的版本支援運行

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

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

 

3)JMeter外掛程式安裝

1. 外掛程式: http://jmeter-plugins.org/downloads/all/

2. 外掛程式下載後解壓:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-4.0\lib\ext目錄。

三、JMeter 運行

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

   注意:開啟的時候會有兩個視窗,JMeter的命令視窗和JMeter的圖形操作介面,不可以關閉命令視窗。

2. JMeter的classpath:

   如果你想添加其他JAR檔案到JMeter的classpath中,你必須複製他們到lib目錄中;

   如果你開發了一個JMeter特定組件或有效jar檔案,複製到lib目錄下的ext目錄中。

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

 

四、JMeter 測試計劃元件 

4.0版本以下的jmeter,開啟Jmeter頁面:包括測試計劃+工作台。

4.0版本的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(loadrunner)的init.可用於執行預測試操作。

2) teardown thread group. 

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

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

3) thread group(線程組).

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

線程組:

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

  注釋:

  線程數:這裡選擇5

  Ramp-Up Period:單位是秒,預設時間是1秒。它指定了啟動所有線程所花費的時間,比如,當前的設定表示“在1秒內啟動5個線程,每個線程的間隔時間為0.2秒”。如果你需要Jmeter立即啟動所有線程,將此設定為0即可

  迴圈次數:表示每個線程執行多少次請求。

 

3、測試片段(Test Fragment)

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

 

控制器

JMeter有兩種類型的控制器:取樣器(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 (CSV資料檔案設定)可以將本機資料檔案形成資料池 (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 值獲得的資料;Regex提取器,則可以提取響應資料中通過Regex獲得的資料。

10、斷言(Assertions)

斷言用於檢查測試中得到的相應資料等是否符合預期,斷言一般用來設定檢查點,用以保證效能測試過程中的資料互動是否與預期一致。

11、監聽器(Listener)

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

五、工作台

1)4.0以下版本:

工作台為測試中不使用的測試元素提供一個臨時存的位置,目的是提供複製/粘貼或者其他目的。儲存測試計劃工作台的內容預設不會儲存除非選擇”save workbench”(儲存工作台)選項。工作台可以被獨立的儲存,比如在選中工作台節點時,右鍵–選中部分儲存為。

2)4.0版本

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

 

工作台只能包含

 

  • HTTP(S) Test Script Recorder
  • HTTP Mirror Server
  • Property Display

 

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

 

六、協助

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

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

 

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

 

Apache JMeter--1基礎介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.