簡體   English   中英

如何使用JMeter在Pageant中加載SSH密鑰

[英]How can I use JMeter to load SSH keys in Pageant

我正在嘗試加載位於%USERPROFILE%\\\\.ssh\\id_rsa.ppk中的預生成的SSH密鑰。

我設置了用戶定義變量:

PAGEANT: "C:\Path_to_pageant\Pageant.exe"
   HOME: %USERPROFILE%
 ID_RSA: ${HOME}\.ssh\id_rsa_jmeter.ppk

OS Process Sampler配置為:

Command: ${PAGEANT}
  Value: "${ID_RSA}"

運行后,它顯示:

Executing: "C:\Path_to_pageant\Pageant.exe" "${HOME}\.ssh\id_rsa_jmeter.ppk"

並且Pageant會警告它找不到密鑰,沒有加載密鑰。

如果我將ID_RSA更改為%USERPROFILE%\\.ssh\\id_rsa_jmeter.ppk

Executing: "C:\Path_to_pageant\Pageant.exe" "%USERPROFILE%\.ssh\id_rsa_jmeter.ppk"

並且Pageant會警告它找不到密鑰,沒有加載密鑰。

如果我將該命令復制並粘貼到命令提示符下,它將把密鑰添加到Pageant。 看來${HOME}%USERPROFILE%都沒有被擴展。

注意:完全硬編碼路徑將允許JMeter導入密鑰。

更換您的

  • %USERPROFILE%
  • %HOME%

變量與

  • ${__BeanShell(System.getenv("USERPROFILE"),)}
  • ${__BeanShell(System.getenv("HOME"),)}

相應地。

上面的方法結合使用System.getenv() Java SDK類方法調用和JMeter的__Beanshell函數。

要了解使用函數可以完成的其他操作,請參閱如何使用JMeter函數帖子系列。

只有%USERPROFILE%無法擴展( ${HOME}擴展為%USERPROFILE% ,隨后擴展失敗)。

這是因為擴展是由命令提示符外殼完成的,而不是由OS進程采樣器完成的。

我認為獲取%USERPROFILE%最佳方法是在啟動時將其加載到屬性中,然后在${HOME}使用該屬性

-DUSERPROFILE=%USERPROFILE%添加到JMeter啟動命令行,然后在腳本中使用${__P{USERPROFILE}}

另一種選擇是更改命令,使其運行"cmd.exe /C \\path_to_pageant\\pageant.exe" 在命令提示符調用Pageant之前,這將調用命令提示符以展開%USERPROFILE%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM