天天看點

JMETER 各元件執行順序與作用域

JMETER 各元件執行順序與作用域

配置元件:

配置元件的作用主要為了初始化預設值和變量,以便後續采樣器引用。相對于JAVA 語言中間定義一些常量和靜态變量。配置元件作用域是最初始階段處理,配置元件僅對其所在的測試樹分支有效,在同一個作用域的任何采樣器前,同時,線程組A中間定義了配置元件中間的使用者定義變量,線程組同樣可以引用該變量,是以,配置元件的作用域是可以跨線程組的。

2)前置處理器:

前置處理器和後置處理器是相對應的,隻是前置處理器會在采樣器送出請求之前做一些特殊操作。

3) 定時器:

定時器是為了模拟使用者操作習慣,每發送一個請求之前等待一個固定時長,如果不設定這種定時器,可能會在短時間内産生大量通路請求,造成伺服器壓力過大,假設線程組添加了多個定時器,那麼,為幾個定時器的總時長,同時影響作用域範圍内的采樣器。定時器作用隻影響作用域内的采樣器。

4) sampler(采樣器):

sampler(采樣器) 是真正幹活的家夥,通過sampler(采樣器) 對伺服器發送請求,同時等待伺服器響應。如果采樣器沒有添加邏輯控制器,采樣器會按照測試樹中間的順序進行執行。

5)後置處理器:

有時候在測試過程中間需要把伺服器響應的資料作為下一個采樣器中間的參數,是以,就需要用到後置處理器元件,後置處理器會在采樣器送出請求之後做一些特殊操作。如果後置處理器附着在某個采樣器之下,那麼它隻會在該采樣器運作之後執行。

6)斷言---Assertions:

在JMETER  性能測試過程中間,為了檢查測試中得到的響應内容是否跟預期一緻,是以,今天講解一個新的元件斷言,英文名稱(Assertion),它的作用和loadrunner中的檢查點類似。

7)監聽器---Listener:

監聽器是采樣器運作結果以圖表的形式顯示出來,常用的監聽器有“察看結果樹”、“聚合報告”、“圖形結果”等等。JMETER 的監聽器圖形結果跟LoadRunner 有一定的差距。

8) 邏輯控制器---Controller:

  邏輯控制器可以幫助使用者控制JMeter的測試邏輯,特别是何時發送請求。邏輯控制器可以改變其子測試元件的請求執行順序。

二、元件執行順序:

測試計劃的元件執行順序,具體執行順序如下:

配置元件

前置處理器

定時器

采樣器

後置處理器

斷言

監聽器

三、元件作用域: 

作用域的原則是: 

采樣器:采樣器是獨立的,不存在作用域問題。

配置元件:配置元件定義變量,可以為測試計劃下面的所有線程組中間的采樣器共享。

執行個體操作:

執行個體一

同一個測試計劃中間建立兩個線程組名稱為線程組1和線程組2,線程組1下面新增配置元件使用者定義變量,驗證變量作用域是否線上程組2中間也可以引用該變量。(執行個體中間的Debug Sampler 采樣器是為了調試用,操作過程中間非必選項)

1、建立一個線程組1

JMETER 各元件執行順序與作用域

線程組1 右鍵---> sample-->Debug Sampler

JMETER 各元件執行順序與作用域

線程組1 右鍵--->配置元件--使用者定義的變量,變量名稱為name,變量值為:JAMES;

JMETER 各元件執行順序與作用域

線程組1右鍵--->sampler -->HTTP 請求,伺服器名稱或IP:www.baidu.com,Parameter 參數名稱為:name,參數值引用使用者自定義的變量${name};

JMETER 各元件執行順序與作用域

線程組1 右鍵--->監聽器--->察看結果樹,運作,檢視請求中間的參數

JMETER 各元件執行順序與作用域

 5、建立一個線程組2

JMETER 各元件執行順序與作用域

線程組2 右鍵---> sample-->Debug Sampler

JMETER 各元件執行順序與作用域

線程組2右鍵--->sampler -->HTTP 請求,伺服器名稱或IP:www.baidu.com,Parameter 參數名稱為:name,參數值引用使用者自定義的變量${name};

JMETER 各元件執行順序與作用域

線程組2 右鍵--->監聽器--->察看結果樹,運作,檢視請求中間的參數

JMETER 各元件執行順序與作用域

添加兩個線程組之後,運作,我們看一下每一個采樣器中間運作的結果,線程組1中間察看結果樹請求:http://www.baidu.com/?name=JAMES,請求中間name 參數中間引用使用者定義的變量的值。線程組2 中間察看結果樹請求:http://www.baidu.com/?name=JAMES 請求中間name 參數中間也引用使用者定義的變量的值

JMETER 各元件執行順序與作用域
JMETER 各元件執行順序與作用域

執行個體二:

   在采樣器中間添加一個配置元件,同一個線程組中間其他的采樣器是否能夠共享配置元件中間的變量。

添加一個線程組

正在上傳…重新上傳取消

線程組右鍵-->sample-->HTTP 請求,伺服器名稱或IP:www.baidu.com,Parameters 定義一個參數名稱為:userame 值引用配置元件中間的使用者定義的變量${name}

JMETER 各元件執行順序與作用域

one 采樣器右鍵--->配置元件-->使用者定義的變量,添加一個變量,變量名稱為:name 變量值為:KOBE

JMETER 各元件執行順序與作用域

線程組右鍵-->sample--->Debug Sampler 這一次添加時采樣器中間Debug Sampler,名字為:two

JMETER 各元件執行順序與作用域

線程組右鍵-->sample--->Debug Sampler 名字為:three

JMETER 各元件執行順序與作用域

添加一個察看結果樹的監聽器,檢視運作的結果,one 請求username 參數能夠正常讀取使用者定義的變量值,two 中間的響應資料:name=KOBE,three 中間的響應資料:name=KOBE

JMETER 各元件執行順序與作用域
JMETER 各元件執行順序與作用域
JMETER 各元件執行順序與作用域

通過上面的例子:在one 采樣器子節點定義的使用者變量,在two 和 three debug sampler處都能正常引用

備注:

    本次課程是主要講解Jmeter 各元件的執行順序和作用域,由于在JMETER 中間相當重要,同時,在很多面試的過程中間都會問到這一塊的内容。為了加深大家對配置元件作用域的了解,例子中間提到使用者定義的變量、Debug Sampler HTTP 請求采樣器,大家隻要按照上面例子操作即可,後續課程還會重點講解配置元件和采樣器方面的知識。

如果你覺的文章閱讀不過瘾,可以檢視詳細的視訊教程

【軟體測試全棧系列課程】請點選我哦…

 https://edu.51cto.com/course/25359.html

【部落客完整視訊課程系列】請點選我哦…

 https://edu.51cto.com/lecturer/13226632.html

【JMETER基礎和實踐課程】請點選我哦…

 https://edu.51cto.com/course/28017.html

【JMETER 性能測試基礎與項目實戰視訊課程】請點選我哦…

 https://edu.51cto.com/course/16055.html

【Jmeter+ant+jenkins接口層性能與自動化測試課程】請點選我哦…

 https://edu.51cto.com/course/19323.html

【零基礎新手入門軟體測試基礎課程】請點選我哦…

 https://edu.51cto.com/course/27846.html

【軟體測試之移動端測試系列課程】請點選我哦…

 https://edu.51cto.com/course/26878.html

【Fiddler接口抓包神器使用教程】請點選我哦…

 https://edu.51cto.com/course/28066.html