Jmeter系列(37)- 跨平臺執行 Jmeter,CSV 檔案路徑設定
阿新 • • 發佈:2022-03-17
丟擲問題
- 通常,我們編寫、除錯指令碼都是在 Window 機器上,而真正效能測試時,指令碼幾乎都在 Linux 下執行
- 使用 CSV 資料檔案做引數化時,是需要指定檔案路徑的
- 這裡就有個問題:Window 下寫的檔案路徑到了 Linux 下是不正確的,導致無法正常讀取 CSV 檔案
- 為了解決這個問題,下面將要講解一個簡單的萬能解決方法
兩個前提
- 我們的 CSV 檔案必須在 Jmeter 的 bin 目錄下建立,然後再新增自己要的資料
- Jmeter 必須從 bin 目錄下啟動,不能通過 cmd,否則會有問題(下面說)
具體方法
CSV 資料檔案設定直接按下面的格式寫
這樣就可以了,只要把 CSV 檔案上傳到 Linux 系統 Jmeter 下的 bin 目錄,這個指令碼就可以跨平臺執行了
實現跨平臺的原理
__P() 函式
用來獲取 Jmeter 的屬性,那我們怎麼知道 Jmeter 有什麼屬性呢?
如何檢視 Jmeter 屬性
測試計劃右鍵新增
Window 下檢視屬性 user.dir,file.separator
可以看到
- file.separator 的值是 \ ,這也是 Window 特有的路徑分隔符
- user.dir 的值是 Jmeter 安裝路徑下的 bin 目錄
如果通過 cmd 執行 Jmeter,那麼 user.dir 又會顯示什麼呢?
看到並不是顯示 Jmeter 的 bin 目錄,這不是我們想要的結果;所以請記住需要在 bin 目錄下啟動 Jmeter
Linux 下檢視屬性 user.dir,file.separator
可以看到
- file.separator 的值是 / ,這也是 Linux 的路徑分隔符
- user.dir 的值是 Jmeter 安裝路徑下的 bin 目錄,和 Window 的截然不同
總結
- ${__P(user.dir,)}${__P(file.separator,)}test.txt 可以根據不同的系統,不同的 Jmeter 安裝路徑,自動獲取 Jmeter 路徑,然後再獲取不同系統下的檔案路徑分隔符,最後加上檔名稱拼成檔案路徑
- 這樣就可以解決使用 CSV 資料檔案做引數化時,跨平臺導致路徑不一致的問題
- 重點前提:CSV 檔案放在 Jmeter 的 bin 目錄下,且通過 bin 目錄執行 Jmeter