1. 程式人生 > >jmeter(一)基礎介紹

jmeter(一)基礎介紹

sessionid 工具 processor 驅動 Nid 控制 log 數據交互 reads

一、優點

1、開源工具,可擴展性非常好

2、高可擴展性,用戶可自定義調試相關模塊代碼

3、精心簡單的GUI設計,小巧靈活

4、完全的可移植性和100%純java

5、完全swing和輕量組件支持(預編譯的HAR使用javax.swing.*)包

6、完全多線程框架,允許通過多個線程並發取樣以及單獨的線程對不同的功能同時取樣

7、支持腳本取樣器

二、安裝及下載

這裏附一個最新的jmeter官網下載地址:

http://jmeter.apache.org/download_jmeter.cgi

該鏈接是4.0版本的jmeter安裝包

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

最新版本,建議配置的JDK最好用1.7及以上版本

三、基礎構成

1、組成部分(目前不太懂)

1)負載發生器:產生負載,多進程或多線程模擬用戶行為

2)用戶運行器:腳本運行引擎,用戶運行器附加在進程或線程上,根據腳本模擬指定的用戶行為

3)資源生成器:生成測試過程中服務器、負載機的資源數據

4)報表生成器:根據測試中獲得的數據生成報表,提供可視化的數據顯示方式·

2、主要概念

2.1測試計劃(test plan)

描述一個性能測試,包含本次測試所有相關功能

技術分享圖片

2.2 threads(Users)

技術分享圖片

線程組:

通常添加使用的線程,一般一個線程組可看做一個虛擬用戶組,其中每個線程為一個虛擬用戶

setUp Thread Group:

種特殊類型的線程,可用於執行預測試操作。即執行測試前進行定期線程組的執行

tearDown Thread Group:

一種特殊類型的線程,可用於執行測試後動作。即執行測試結束後執行定期的線程組

以上兩個線程組,舉個例子:loadrunner的腳本除了action裏是真正的腳本核心內容,還有初始化“環境”的初始化腳本測試完畢後對應的清除信息的腳本塊,與其對應

2.3 控制器

Jmeter有2種控制器:取樣器(sampler)和邏輯控制器(Logic Controller)

作用:用這些原件驅動處理一個測試

1)取樣器(Sampler)

技術分享圖片

是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間最小單位,JMeter 原生支持多種不同的sampler

如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等

每一種不同類型的 sampler 可以根據設置的參數向服務器發出不同類型的請求。

Java Request Sampler 和 Beanshell Request Sampler 是兩種特殊的可定制的 Sampler (暫不討論)

2)邏輯控制器(Logic Controller)

技術分享圖片

包含兩類原件:

一類是控制Test Plan中Sampler節點發送請求的邏輯順序控制器,常用的有:If Controller、Swith Controller、Loop Controller、Random Controller等

另一類是用來組織和控制Sampler節點的,如Transaction Controller、Throughput Controller等

2.5 監聽器

技術分享圖片

對測試結果進行處理和可視化展示的一系列組件,常用的有圖形結果、查看結果樹、聚合報告等

以上的五類原件就可以構成一個簡單的性能測試腳本

下面再介紹幾種jmeter提供的其他組件:

2.6配置原件(Config Element)

技術分享圖片

用於提供對靜態數據配置的支持。CSV Date Set Config可以將本地數據文件形成數據池(Date Pool),而對應於HTTP Request Configuration

和TCP Request Sample等類型的Configuration元件則可以修改這些Sample的默認數據等

2.7定時器(Time)

技術分享圖片

用於操作之間設置等待時間,等待時間使性能測試中常用的控制客戶端QPS的手段,jmeter定義了Constant Times、

Constant Throughput Times、Guass Ramdon Times等不同類型的Times

2.8斷言(Assertions)

技術分享圖片

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

2.9前處理器(Pre Processors)

技術分享圖片

用於在實際請求發出之前對即將發出的請求進行特殊處理。

例如:Count處理器可以實現自增操作,自增後生成的的數據可以被將要發出的請求使用,而HTTP URL Re—Writing Modifier處理器則可以實現URL重寫,

當URL中有sessionID一類的session信息時,可以通過該處理器填充發出請求實際的sessionID。

2.10後處理器(Post Processors)

技術分享圖片

用於對Sampler發出請求後得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似loadrunner中的關聯)。

例如:Regular Expression Extractor用於提取響應數據中匹配某正則表達式的數據段,並將其填充在參數中,Xpath Extractor則可以用於提取響應數據中通過給定Xpath值獲得的數據。。。

參考自:昵稱:老_張博客,後期會對文章按照自我理解再進行完善。謝謝老張。

jmeter(一)基礎介紹