【问题标题】:Robotframework SSHLibrary executing commands unstable even on LANRobotframework SSHLibrary即使在局域网上执行命令也不稳定
【发布时间】:2020-12-16 05:33:27
【问题描述】:

我有一台运行 Lubuntu 的“旧”笔记本电脑,我在上面运行 Robotframework 脚本,连接到树莓派(通过以太网电缆)。

笔记本电脑有 paramiko 2.7.1 和其他最新的 python 包(如果你想要特定包的版本,请告诉我)。

这些测试包括通过 SSH 打开、连接和执行命令。

在 robotsframework 测试脚本之外的 SSH 问题为零,并且 ssh 从来没有任何不稳定问题。

当我运行机器人脚本时,它会执行一些命令(使用Execute Command 关键字)并检查命令是否成功完成。

由于 SSHLibrary 异常 SSHLibrary Exception: Timeout opening tunnel,通常 8 个(甚至有时 4 个)测试中的一个或两个失败。

现在我已经设置了一个脚本,它会自动重新运行失败的测试用例,并且在 99% 的情况下,重新运行的测试用例都会通过。然而,我更愿意拥有稳定的测试用例。

【问题讨论】:

  • 您当前的 SSH 超时时间是多少,增加多少您可以接受?
  • 我尝试使用Execute Command COMMAND timeout=10s,但似乎此超时仅用于关键字完成,而不是实际的 ssh 连接超时。现在超时可以是我测试的任何时间。我将如何设置实际的 ssh 超时?
  • 当您导入库 Library SSHLibrary 10 seconds 时,您可以将其作为参数传递给库。您也可以在打开连接时设置它Open Connection 192.168.1.1 timeout=5 min。使用Set Client Configuration timeout=1 min 即时进行。
  • 超时有什么运气吗?
  • 插入超时后我目前似乎没有问题。 - 我还没有看到 SSH 超时发生。但是,我确实经常使用SSHException: No existing session 得到一个失败的测试用例,但我认为这可能是由测试用例的设置方式引起的(它每运行 2/3 次就会发生一次)。我会让测试用例在一夜之间连续运行,并在此处返回结果。谢谢!

标签: ssh robotframework


【解决方案1】:

我会考虑合理增加 SSH 超时来解决问题。这些是您的选择:

  1. 您可以在库导入时设置超时。

    Library     SSHLibrary  10 seconds
    
  2. open the connection时可以设置连接超时。

    Open Connection     192.168.1.1     timeout=5 min
    
  3. 最后,您可以使用 Set Client Configuration 关键字即时设置超时。

    Set Client Configuration    timeout=1 min
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多