1. 程式人生 > 其它 >Jmeter系列(37)- 跨平臺執行 Jmeter,CSV 檔案路徑設定

Jmeter系列(37)- 跨平臺執行 Jmeter,CSV 檔案路徑設定

丟擲問題

  • 通常,我們編寫、除錯指令碼都是在 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