天天看點

jmeter性能測試工具

一、Jmeter簡介

Jmeter是啥?

Apache JMeter 是Apache組織的開放源代碼項目,是一個純Java桌面應用,用于壓力測試和性能測量。它最初被設計用于Web應用測試但後來擴充到其它測試領域。

Jmeter有啥用??

Apache JMeter可以用于對靜态的和動态的資源(檔案,Servlet,Perl腳本,Java對象,資料庫和查詢,FTP伺服器或是其它資源)的性能進行測試。JMeter可以用于分析不同壓力條件下的總體性能情況。也可以使用JMeter提供的圖形化界面,分析性能名額或者在高負載情況下測試你的伺服器,腳本,對象。

Jmeter與·LR有啥差別???

jmeter性能測試工具

二、Jmeter安裝配置

 1.安裝配置好Jdk

 2..Jmeter下載下傳位址:​​http://jmeter.apache.org/download_jmeter.cgi​​

 注:下載下傳後,解壓檔案到任意目錄,避免在一個有空格的路徑安裝JMeter,這将導緻遠端測試出現問題。

 3..Jmeter啟動:解壓,bin目錄下運作ApacheJMeter.jar進行啟動。

 4.Jmeter 檔案目錄介紹

u bin:可執行檔案目錄

Bin目錄檔案

l  jmeter.bat:windows的啟動檔案

l  jmeter.log:日志檔案

l  jmeter.sh:linux的啟動檔案

l  jmeter.properties:系統配置檔案

l  jmeter-server.bat:windows分布式測試要用到的伺服器配置

l  jmeter-server:linux分布式測試要用到的伺服器配置      

u docs:接口文檔目錄

u extras:擴充插件目錄

u lib:所用到的插件目錄,裡面全是jar包,JMeter 會自動在 JMETER_HOME/lib 和 ext 目錄下尋找需要的類

u Licenses  jmeter證書目錄

u printable_docs使用者使用手冊

三、Jmeter功能概要

1. Jmeter工具組成部分:

資源生成器:用于生成測試過程中伺服器、負載機的資源代碼。(LR中的VuGen)
使用者運作器:通常是一個腳本運作引擎,根據腳本要求模拟指定的使用者行為。(LR中的Controller)
報表生成器:根據測試中實時地的資料生成報表,提供可視化的資料顯示方式。(LR中的Analysis)
負載發生器:用于産生負載,通常以多線程或是多程序的方式模拟使用者行為。(LR中Load Generators)      

Test Plan (測試計劃):用來描述一個性能測試,包含與本次性能測試所有相關的功能。也就說本次的性能測試的所有内容是于基于一個計劃的。(相當于lr的一個測試場景)Add-->添加

2.Threads (Users)線程 使用者

jmeter性能測試工具

  A. setup thread group(設定線程組)

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

 2) teardown thread group.(拆卸線程組)

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

 3)thread group(線程組).

  這個就是我們通常添加運作的線程。可以看做一個虛拟使用者組,線程組中的每個線程都可以了解為一個虛拟使用者。線程組中包含的線程數量在測試執行過程中是不會發生改變的。類似LR的action() ●

3.測試片段(Test Fragment)

jmeter性能測試工具

 

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

以下是線程組的8類可執行元件

4.配置元件(Config Element)

jmeter性能測試工具

   配置元件(config element)用于提供對靜态資料配置的支援。如CSV Data Set config 可以将本地資料檔案形成資料池(Data Pool)。

5.定時器(Timer)

jmeter性能測試工具

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

6.前置處理器(Per Processors)

jmeter性能測試工具

  用于在實際的請求發出之前對即将發出的請求進行特殊處理。例如,HTTP URL重寫修複符則可以實作URL重寫,當URL中有sessionID 一類的session資訊時,可以通過該處理器填充送出請求的實際的sessionID 。

7.後置處理器(Post Processors)

jmeter性能測試工具

  

用于對Sampler 送出請求後得到的伺服器響應進行處理。一般用來提取響應中的特定資料(類似LoadRunner測試工具中的關聯概念)。

8.斷言(Assertions)

jmeter性能測試工具

 

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

9.監聽器(Listener)

jmeter性能測試工具

  

是用來對測試結果資料進行處理和可視化展示的一系列元件。 圖行結果、檢視結果樹、聚合報告。都是我們經常用到的元件。注意:這個監聽器可不是用來監聽系統資源的元件。

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

10.取樣器(sampler)

jmeter性能測試工具

  

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

11.邏輯控制器

jmeter性能測試工具
jmeter性能測試工具

  

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

四、Jmeter腳本錄制

1.Jmeter腳本錄制

 Http請求+檢視結果樹

  代理伺服器操作步驟

u  建立一個線程組(右鍵點選“測試計劃”--->“添加”---->“線程組”)

u  建立一個http代理伺服器(右鍵點選“工作台”--->“添加”--->“非測試元件”--->“http代理伺服器”)

Tip HTTP伺服器代理設定——分組詳解

不對樣本分組:所有請求全部羅列
在組間添加分隔:加入一個虛拟的以分割線命名的動作。
每個組放入一個新的控制器:執行時按控制器給輸出結果
隻存儲每個組的第一個樣本:儲存對于一次url請求。      

設定完後要啟動代理伺服器,錄制完成後記得關閉,

u  IE--->“internet屬性”--->“連接配接”--->“區域網路設定”

jmeter性能測試工具

u  在浏覽器裡對指定的頁面進行通路。錄制完成後,把浏覽器的代理伺服器勾去掉。

2.Badboy 腳本錄制

  下載下傳位址 ​​http://www.badboy.com.au​​ (或者點選視訊左下方【擷取素材】按鈕來下載下傳)

  Badboy是一個強大的工具,旨在幫助測試和開發複雜的動态應用。Badboy包括一個簡單而全面的捕獲/回放界面,強大的負載測試的支援,詳細的報告圖表等等,進而使Web測試和開發變得更加容易.

關于錄制時的腳本錯誤提示

jmeter性能測試工具

繼續閱讀