效能工具之Jmeter擴充套件配置元件外掛
背景
Jmeter有很多的配置元件可以定義變數值在測試過程中使用
比如最常見的兩個:
-
使用者自定義變數
-
CSV資料檔案設定
配置元件主要是用於測試前配置,將配置轉換為變數設定到Jmeter context中。
而Jmeter預設並沒有配置檔案(.properties)讀取器,但由於Jmeter是開源的,我們自己可以自定義一個配置元件來讀取配置檔案。
目標
啟動Jmeter後,我們可以從配置元件中看到“Property File Reader”,即我們自定義擴充套件的配置檔案。

在測試計劃中新增它後,輸入配置檔案路徑:
-
支援絕對或相對路徑
-
相對路徑相對與當前測試計劃JMX檔案

比如以下是我們的配置檔案
建立一個簡單的測試,如下圖 Debug Sampler 的響應資料顯示了我們讀到屬性值,在Jmeter中通過表示式 ${__P(Propertyname)} 來獲取屬性值
Jmeter的外掛載入機制
Jmeter啟動掃描擴充套件下的所有實現了JmterGUIComponent和TestBean介面的類,然後進行初始化。

所以只要確保外掛的jar包在擴充套件路徑下,預設路徑是: JMETER_HOME/lib/ext
Jmeter的GUI機制
由於Jmeter是一個基於Swing的GUI工具,所以對它的GUI框架也需要有一定了解。JMeter內部有兩種GUI框架
1.直接繼承 JMeterGUIComponent 介面的抽象實現類:

擴充套件配置元件
建立讀取配置檔案類
-
TestBean是一個標記介面,它會告訴Jmeter建立Test Bean GUI
-
我們還需要實現TestStateListener介面來讀取配置檔案


建立外掛GUI類
-
我們還需要為我們的外掛建立GUI類
-
GUI類的名字必須是[ComponentName]Beaninfo,且在同一個包中
-
File Path: GUI中的一個顯示欄位
-
預設情況:欄位是空的,如果沒有設定的話

建立外掛GUI配置檔案
-
在同一個包中有GUI配置檔案,它包含顯示名、簡短描述等
-
該檔案的命名必須是[ComponentName]Resources.properties

外掛目錄結構
外掛打包
-
使用mvn clean package命令打包
-
外掛的jar包放到JMETER_HOME/lib/ext下
-
重啟Jmeter
-
從配置元件中開啟-Proerty File Reader

測試外掛
-
增加一個BeanShell Sampler去列印配置檔案的值
-
執行測試,檢查Jmeter log

外掛測試成功~
本文原始碼:
https://github.com/zuozewei/Jmeter-Porperty-File-Reader-Plugin