Jmeter】Jmeter:體系結構

目錄

一、Jmeter 結構圖(x/y/z 三維空間圖)  

二、Y 空間

三、Z 空間

四、X 空間

(一)X1 空間

(1)取樣器             (2)斷言               (3)監聽器

(二)X2 空間

(1)前置處理器      (2)配置元件         (3)後置處理器

(三)X3 空間

邏輯控制器

(四)X4 空間

定時器

(五)X5 空間

線程組

一、Jmeter 結構圖(x/y/z 三維空間圖)  
X 空間:分爲 5 個維度(X1/X2/X3/X4/X5)
Y 空間:分爲 2 個維度(Y1/Y2)
Z 空間:分爲 1 個維度(Z)
     Y1    Y2    Z
X1    取樣器    斷言    監聽器
X2    前置處理器、配置元件、後置處理器         

X3    邏輯控制器     
X4    定時器     
X5    線程組
二、Y 空間
Y1:包含的是負載模擬部分,負責模擬用戶請求。
Y2: 結果驗證部分,負責驗證結果正確性。
三、Z 空間
Z: 負載結果的收集,實踐上只有一個組成部分一一 監聽器 ,監聽器不僅可以放在線程組之內,
也可以放在線程組之外,所以在圖中我們看到它們是相交的。
四、X 空間
(一)X1 空間
【取樣器】、【斷言】、【監聽器】組合在一起就可以幫我們完成發送請求、驗證結果及記錄結果三項工作。
(1)取樣器
取樣器的訪問路徑:
英文:[Test Plan]-[Thread Group]-[Add]-[Sampler]
中文:[測試計劃]-[線程組]-[添加]-[取樣器]
取樣器(又譯採樣器):
1、用來模擬用戶操作,向服務器(被測試系統)發出 Http 請求、 WebService (SOAP/XML-RPC Request) 請求或者 Java 請求等。

2、我們可以把 Http 請求元件看成是一個沒有界面的瀏覽器,它可以發送 Http 請求,接收服務器的響應數據。
JMeter 5.0 版本提供的取樣器元件有 24 個,基本涵蓋了我們常見的各種協議:
Http 、FTP 、JAVA 、JMS 、LDAP 、 MAIL 、MongoDB 、SMTP 、SOAP 、TCP 、Junit 等,
還支持BeanShell腳本。


JMeter 5.0 版本提供的取樣器元件有 24 個,基本涵蓋了我們常見的各種協議:
Http 、FTP 、JAVA 、JMS 、LDAP 、 MAIL 、MongoDB 、SMTP 、SOAP 、TCP 、Junit 等,
還支持BeanShell腳本。

 (2)斷言
斷言的訪問路徑1:
英文:[Test Plan]-[Add]-[Assertions]
中文:[測試計劃]-[添加]-[斷言]
 
斷言的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Assertions]
中文:[測試計劃]-[線程組]-[添加]-[斷言]
斷言:
1、用來驗證結果是否正確,可以幫助我們來判斷請求是否成功返回且是否符合要求。
 
2、和 LoadRunner 的檢查點一樣功能,在 JMeter 中我們不叫檢查點,稱作斷言。
 
3、說白了就是用一個預設的結果(值、表達式、時間長短等條件)與實際結果匹配,匹配到則成功,反之失敗。


JMeter 5.0 版本的斷言元件有 13 個,比如響應斷言、XML 斷言、 BeanShell 斷言,其中較常用的是響應斷言;
對於複雜的斷言還可以通過 BeanShell 腳本來完成 (BeanShell 是類 Java 的腳本語言,實際上 BeanShell 是一個小巧的 Java 
源碼解釋器,可以直接調用 Java 程序,具體有關 BeanShell 的內容請到官網 http://www.beanshell.org/ 瞭解)。

 (3)監聽器
監聽器的訪問路徑1:
英文:[Test Plan]-[Add]-[Listener]
中文:[測試計劃]-[添加]-[監聽器]
 
監聽器的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Listener]
中文:[測試計劃]-[線程組]-[添加]-[監聽器]
監聽器:
1、JMeter 的測試結果需要添加監聽器來收集, JMeter 結果收集程序的設計模式就是監聽器模式。 
 
2、JMeter 的監聽器有兩個任務:
(1) 添加結果監聽,並且可以保存測試結果到文件,這些結果數據可以供再次分析使用。 
(2) 展示結果,JMeter 可以以表格及圖形的形式展現結果,方便測試人員分析測試結果。 
我們在開發測試腳本時,不可避免需要調試,監聽器也提供了輔助(比如察看結果樹,我們以在其中看到請求與響應的數據)。
JMeter 監聽器共有 33 個元件

(二)X2 空間
【前置處理器】、【配置元件】、【後置處理器】都是爲取樣器提供數據支持的,取樣器關注的是業務邏輯。
(1)前置處理器
前置處理器的訪問路徑1:
英文:[Test Plan]-[Add]-[Pre Processors]
中文:[測試計劃]-[添加]-[前置處理器]
 
前置處理器的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Pre Processors]
中文:[測試計劃]-[線程組]-[添加]-[前置處理器]
前置處理器:
1、在測試腳本開發過程中,我們在請求發送前可能會做一些環境或者參數的準備工作,那麼我們可以在前置處理器中來完成這些工作。
 
2、比如,我們在對數據庫進行操作前需要先建立一個數據庫連接,那麼前置處理器就可以完成這個功能。


(2)配置元件
配置元件的訪問路徑1:
英文:[Test Plan]-[Add]-[Config Element]
中文:[測試計劃]-[添加]-[配置元件]
 
配置元件的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Config Element]
中文:[測試計劃]-[線程組]-[添加]-[配置元件]
配置元件:
1、性能測試中爲了模擬大量用戶操作我們往往需要做參數化,Jmeter 的參數化可以通過配置元件來完成,
比如 CSV Data Set Config ,它可以幫助我們從文件中讀取測試數據。
 
2、另外 JMeter 也提供了衆多的函數(通過函數助手可以查看到,後續會講到〉來幫我們生成動態數據。
 
3、當然配置元件的作用不僅於此,它還可以用來記錄服務器的返回數據,比如 Http Cache Manager,
自動記錄服務器返回的 Cache 信息。簡而言之它爲取樣器提供預備數據,然後由取樣器發出請求。

(3)後置處理器
後置處理器的訪問路徑1:
英文:[Test Plan]-[Add]-[Post Processors]
中文:[測試計劃]-[添加]-[後置處理器]
 
後置處理器的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Post Processors]
中文:[測試計劃]-[線程組]-[添加]-[後置處理器]
後置處理器:
1、後置處理器一般放在取樣器之後,用來處理服務器的返回結果,比如:
(1)一個 Web 應用程序,我們登錄後會返回一個 SessionID ,這個SessionID 在登錄之後的業務操作過程中
會作爲驗證條件,驗證用戶是否合法登錄了。
(2)我們利用取樣器模擬這個請求時就需要帶上這個屬性,那麼如何獲取呢:    
① 首先我們要知道這個 SessionID 從哪裏來?
——它是由服務器返回的。
② 接着我們要獲取它,用什麼工具獲取呢?
——JMeter 幫我們提供了元件,比如正則表達式提取器,它支持正則表達式的方式來提取數據。
 
2、後置處理器就是專門用來對響應數據做處理的元件,JMeter 的關聯就是通過後置處理器來完成的。

(三)X3 空間
邏輯控制器
邏輯控制器的訪問路徑:
英文:[Test Plan]-[Thread Group]-[Add]-[Logic Controller]
中文:[測試計劃]-[線程組]-[添加]-[邏輯控制器]
邏輯控制器:
1、我們在收郵件時,只需要登錄一次郵箱即可以查看多封郵件:
如果這個場景我們要在 JMeter 中實現,我們需要控制登錄的次數,如例實現呢? 
——JMeter 邏輯控制器(後續說到控制器時默認爲邏輯控制器) 中的 “僅一次控制器” 即可以完成。
 
2、當然了,控制器不只有這一個,還有很多其他的控制器來完成我們的各種需求,控制器用法也有攻略,
組合在一起也能夠完成各種奇麗需求。


(四)X4 空間
定時器
定時器的訪問路徑1:
英文:[Test Plan]-[Add]-[Timer]
中文:[測試計劃]-[添加]-[定時器]
 
定時器的訪問路徑2:
英文:[Test Plan]-[Thread Group]-[Add]-[Timer]
中文:[測試計劃]-[線程組]-[添加]-[定時器]
定時器:
1、爲了足夠真實地模擬用戶負載,我們有時會需要模擬這些請求在同一時刻發送,
就好像把大家集合在一條起跑線上,然後一聲令響,同時起跑。
 
2、那麼我們此時需要一個集合的功能,JMeter 中可以通過定時器來完成這個需求。
 
3、當然了,定時器可不只有這一個功能,定時器種類有很多,每一種代表了不同的功能。


(五)X5 空間
線程組
線程組的訪問路徑:
英文:[Test Plan]-[Add]-[Logic Controller]
中文:[測試計劃]-[添加]-[線程組]
線程組:
1、性能測試需要模擬大量用戶負載的情況,線程組就是用來完成這個工作的,在此元件中我們可以設置運行的
線程數(就是模擬多少用戶,一線程一用戶)。
 
2、線程組的設置十分簡單,除了設置線程數以外,還可以設置運行時長,定時運行等。
 
3、另外第三方插件( JMeter Plugin )的擴展也讓 JMeter 的場景設計更加豐富。
  


————————————————
版權聲明:本文爲CSDN博主「故三殤」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_39720249/article/details/88565999

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章