首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JMeter在Pageant中加载SSH密钥

如何使用JMeter在Pageant中加载SSH密钥
EN

Stack Overflow用户
提问于 2014-10-28 15:43:41
回答 2查看 644关注 0票数 0

我正在尝试加载一个预生成的SSH密钥,该密钥位于%USERPROFILE%\\.ssh\id_rsa.ppk中。

我已经设置了用户定义的变量:

代码语言:javascript
复制
PAGEANT: "C:\Path_to_pageant\Pageant.exe"
   HOME: %USERPROFILE%
 ID_RSA: ${HOME}\.ssh\id_rsa_jmeter.ppk

OS进程采样器配置为:

代码语言:javascript
复制
Command: ${PAGEANT}
  Value: "${ID_RSA}"

运行后,它显示:

代码语言:javascript
复制
Executing: "C:\Path_to_pageant\Pageant.exe" "${HOME}\.ssh\id_rsa_jmeter.ppk"

并且Pageant警告说它找不到密钥,没有加载任何键。

如果我将ID_RSA更改为%USERPROFILE%\.ssh\id_rsa_jmeter.ppk

代码语言:javascript
复制
Executing: "C:\Path_to_pageant\Pageant.exe" "%USERPROFILE%\.ssh\id_rsa_jmeter.ppk"

并且Pageant警告说它找不到密钥,没有加载任何键。

如果我将该命令复制并粘贴到命令提示符中,它将向Pageant添加键。看来${HOME}%USERPROFILE%都没有被扩展。

注意:完全硬编码路径将允许JMeter导入密钥.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 10:36:57

替换你的

  • %USERPROFILE%
  • %HOME%

变量与

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

相应地。

上述方法结合了System.getenv() Java类方法调用和JMeter的贝贝函数。

要了解使用函数还可以做什么,请参阅如何使用JMeter函数 post系列。

票数 1
EN

Stack Overflow用户

发布于 2014-10-29 00:29:38

只有%USERPROFILE%未能展开(${HOME}扩展为%USERPROFILE%,后者随后无法展开)。

这是因为扩展是由命令提示符shell完成的,而不是由OS进程采样器完成的。

我认为获得%USERPROFILE%的最好方法是在启动时将其加载到属性中,然后在${HOME}中使用该属性。

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

另一种选择是更改命令,使其运行"cmd.exe /C \path_to_pageant\pageant.exe"。这将在命令提示符调用Pageant之前调用命令提示符来展开%USERPROFILE%

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26612540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档