【问题标题】:Multiple concurrent ssh connections with robot framework与机器人框架的多个并发 ssh 连接
【发布时间】:2015-11-21 00:55:30
【问题描述】:

如何使用 Robot Framework 来运行多个 ssh 进程?全部到集群上的不同节点。我已经使用了一个 for 循环,或者在流程库中使用 start process 关键字来为我需要的每个节点启动一个。我需要检查每个节点上的 OpenSSH_ 版本。

我对机器人框架很陌生。

@{nodes}   Create List     1  2  3  4   5   6   7   8
    :FOR    ${node}   IN   @{nodes}
    \  Open Connection    ${node}
    \  Enable SSH Logging    ${output}
    \  Run Keyword And Ignore Error     Login  user    pass
    \  Log     all output:${output}
    \  File Should not be empty     ${output}
    \  ${version}=     Grep File      ${output}   OpenSSH_
    \  Should contain  ${version}  OpenSSH_6.9
    \  Close Connection

【问题讨论】:

    标签: ssh process nodes robotframework


    【解决方案1】:

    使用以下关键字在不同的 SSH 会话之间切换:

    Switch Connection    index_or_alias
    

    【讨论】:

      【解决方案2】:

      Robot Framework 的SSHLibrary 库支持到不同主机的多个连接。理想情况下,您最终会得到这样的结果:

      :FOR    ${host}    IN    @{hosts}
          Open Connection    ${host}
          Comment    Do something with current ${host}
          Close Connection
      

      【讨论】:

      • 我不太清楚@{hosts} 的含义。不过我用过 SSHLibrary!只是不知道它可以用于并发连接。一张一张太慢了。
      • @Kepler @{hosts} 在这种情况下将是您所有主机的列表。
      • 嗯.. 我列了一个列表,它只检查该列表中的第一个主机。主机是作为占位符的数字。实际上没有输入数字:) 代码已添加到问题中。
      • @Kepler 我也有同样的问题。它只检查第一个主机。你是怎么解决的?
      • 这不起作用。它只处理列表中的第一个主机。如果您开始使用 Execute Command 传递命令,则尤其如此
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2014-03-11
      • 2017-08-12
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多