寫在前面
① 通過JMeter命令列,不改動腳本,實作switch host以壓測不同的環境
② 以工程目錄的形式管理JMeter腳本及其附屬檔案,以便移動腳本時能自動適應不同的路徑
專案狀況
- 經常要在兩套環境(DEV, QA)間切換測驗,兩套環境的資料差異不大(比如用戶)
- 按照工程目錄的樣式創建了許多檔案夾(比如config, script, data, testcases)在jmx腳本目錄中,用于分類管理
-
config中的代表檔案:不同環境的組態檔
dev.csv
API, KEY https://z417.top/dev/api/, gAN0HPmkFBtIkfpIqa.csv
API, KEY https://z417.top/qa/api/, 0jaVJtN55ErdZyrP -
data中存放腳本運行時的產出檔案
-
script中存放jmx運行時依賴的一些自定義腳本,比如.py
-
testcases存放csv引數化相關的檔案
-
實作switch host
-
測驗計劃 → 添加 → 配置元件 → CSV資料檔案設定
這樣就可以在其他地方以
${API}, ${KEY}參考變數; 但問題是一旦要切換環境就得修改【檔案名】, 所以還得繼續增強, 請往下看 -
“Ctrl + Shift + F1” 打開函式助手對話框, 選擇
__property, 填入【函式引數】后點擊【生成】env 屬性名, 可以在JMeter命令列中對其賦值
config/dev.csv env的默認值, 這里設定的是dev.csv, 也就是說在不指定環境時, 默認讀dev環境的配置
-
復制函式助手生成的字串
${__property(env,,config/dev.csv)}到【檔案名】 -
通過命令列切換壓測環境
jmeter -n -t demo.jmx -J env=config\qa.csv引數
-J可同時給多個property賦值, 這里只給env賦值注意執行命令時所處的目錄(與demo.jmx同級)
(按需)我本地把jmeter\bin設到環境變數里了,所以cmd視窗可以識別jmeter命令
目錄結構化
-
在bean shell中可通過如下內容獲取jmx腳本所處的絕對路徑、路徑分隔符
import org.apache.jmeter.services.FileServer; var path = FileServer.getFileServer().getBaseDir(); // "C:\Users\z417\Desktop\load" var sep = File.separator; // "\" -
鑒于此,可以借助函式助手表達出來
給大伙復制用
import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir(); -
鑒于2,可將各檔案的絕對路徑賦值給用戶變數
以data檔案夾為例
${__BeanShell(import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}data
剩下的就發揮想象,利用Jenkins對command的支持,集成到一起吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/203315.html
標籤:其他
上一篇:網路編程之 ip 地址
