效能測試 Jmeter

2021-08-19 13:33:15 字數 4140 閱讀 5293

如何更快速的入門jmeter

,建議通過錄製指令碼的方式,快速的了解乙個效能測試應該包括的元件以及它們的層級關係。

關於錄製方式,請參考《jmeter基礎之

—錄製指令碼

》如下,通過badboy

工具錄製的乙個指令碼(指令碼過程:登入

126郵箱,給自己發一封郵件,祝自己聖誕快樂!),並可以方便的將指令碼匯出為

jmx格式,這也是

jmeter

指令碼的格式,所以可以被

jmeter

識別並匯入。

指令碼匯入到jmeter

後,我新增了兩個***(檢視結果樹),因為我新增***的位置不同,他們的作用域也是不一樣的。前乙個只能監聽到

www.126.com

頁面的請求,後乙個側對所有的

請求進行監聽。

元件的作用域

先來討論一下元件有作用域。《jmeter基礎之

---jmeter

基礎概念

》一章中,我們介紹了8

類可被執行的元件(測試計畫與執行緒組不屬於元件),這些元件中,取樣器是典型的不與其它元件發生互動作用的元件,邏輯控制器只對其子節點的取樣器有效,而其它元件(

config elements 

、timers 

、post-processors

、assertions

、listeners

、)需要與取樣器(

sampler

)等元件互動。

配置元件(config elements

元件會影響其作用範圍內的所有元件。

前置處理程式(per-processors

)元件在其作用範圍內的每乙個sampler

元件之前執行。

定時器(timers

)元件對其作用範圍內的每乙個sampler 

有效後置處理程式(post-processors

)元件在其作用範圍內的每乙個sampler

元件之後執行。

斷言(assertions

)元件對其作用範圍內的每乙個sampler 

元件執行後的結果執行校驗。

***(listeners

)元件收集其作用範圍的每乙個sampler

元件的資訊並呈現。

在jmeter

中,元件的作用域是靠測試計畫的的樹型結構中元件的父子關係來確定的,作用域的原則是:

講了這些,你可能迷糊了,到底是腫麼個情況呀!?通過兩個栗子(例子)來理解一下他們的作用域。

a(注:下圖只是為了說明作用域,無法正常執行)

取樣器(http

請求1 

、ftp

請求2 

、tcp

取樣器3

) 邏輯控制器(迴圈控制器) ***(圖形結果

1、聚合報告2)

*  http請求1 、

ftp請求2 、

tcp取樣器

3 元件沒有作用域的概念。

*  迴圈控制器 元件作用網域名稱是其子節點

ftp請求2 、

tcp取樣器3 。

*  圖形結果

1 元件的作用域是是

ftp請求2 、

tcp取樣器3。

*  聚合報告

2 元作的作用域是

請求1 

、ftp

請求2 

、tcp

取樣器3

b(注:下圖只是為了說明作用域,無法正常執行)

這個例子稍微複雜一些,包含的元件較多。先來分分類。

取樣器(http

請求 、

ftp請求 、

tcp取樣器、 

jdbc request 

)邏輯控制器(迴圈控制器、隨即控制器)定時器(固定定時器、

uniform random timer 

)斷言(響應斷言、

xml斷言)***(圖形結果、聚合報告)

根據作用域原則,這些元件的作用域分別為:

*  http請求 、

ftp請求 、

tcp取樣器、 

jdbc request  

元件沒有作用網域名稱概念

*  迴圈控制器 的作用域為 

ftp請求 、

tcp取樣器和 隨即控制器

*  固定定時器作用於 

請求 , 

uniform random timer 

作用於所有取樣器

*  響應斷言作用於

jdbc request  

, xml

斷言作用於

ftp請求 、

tcp取樣和

jdbc request 

。*  圖形結果作用於

ftp請求 、

tcp取樣和

jdbc request 

,聚合報告作用於作用於所有取樣器。

其實,通過上面的分析,並沒有你想象的那麼複雜,我們從各個元件的層次結構就可以判斷每個元件的作用域。

jmeter 中的邏輯控制器(

config elements

)在其作用範圍內的行為與其他元件相比稍有不同。邏輯控制器元件分兩大類:預設配置(

預設請求、

ftp預設請求等)和 管理(

頭管理、

管理等)。

其中預設配置(configuration defaults

)元件中設定的值可以在作用域內疊加,例如,在乙個測試計畫中新增兩個

預設請求,其中第乙個預設設定 

server name or ip 

為www.google.com 

,第二個預設設定

path 

為/page-not-exist 

, 則在這兩個元件作用域內的所有

預設請求,其預設的

server name or ip 

和path 

均為server name or ip 

和 /page-not-exist 

。(你有乙個故事,我有乙個笑話,我們一交換,兩個人都分別擁有了乙個故事加乙個笑話。)

管理(manager

)類邏輯控制器元件的效果則不能進行疊加。如果兩個或兩個以上相同的管理類元件作用域有重疊。則在重疊作用域內的取樣器元件只會隨即受到其中乙個的作用,這樣會導致取樣器行為的不確定性。因此,在使用管理類邏輯控制器時,一定要注意保證相同的管理類元件的作用域不發生重疊。

元件的執行順序

了解了元件有作用域之後,來看看元件的執行順序,元件執行順序的規則很簡單,在同一作用網域名稱範圍內,測試計畫中的元件按照如下順序執行。

(1)配置元件(

config elements )(2

)前置處理程式(

per-processors)(3

)定時器(

timers 

)(4)取樣器(sampler

)(5)後置處理程式(post-processors

) (除非

sampler 

得到的返回結果為空)。

(6)斷言(

assertions

)(除非

sampler 

得到的返回結果為空)。

(7)***(

listeners

)(除非

sampler 

得到的返回結果為空)。

jmeter效能測試

請參考 jmeter效能測試文章集合 jmeter 菜鳥入門到高階 系列 開源效能測試工具jmeter jmeter badboy環境搭建 badboy使用手冊 壓力測試之badboy和jmeter的簡單使用方法 jmeter 菜鳥入門到高階 系列 jmeter是我從事軟體測試工作以來接觸的第乙個效...

Jmeter效能測試

轉 1 準備好指令碼,非gui模式下執行 在jmeter的bin目錄下執行命令 使用命令 jmeter n t l n 非gui模式 t 需要執行的指令碼檔名,如 xx.jmx l 儲存的檔名,如 xx.jtl jmeter n t e 1 apache jmeter 3.1 test testca...

Jmeter效能測試

最近在幫專案組做效能測試,希望通過記錄的方式來做些總結.e.g.jmeter n t testplan ticket local.jmx l testplan result result.txt e o testplan webreport cd到jmeter所在路徑 其中前面是pt測試指令碼路徑,...