有没有办法在Robot Framework中的ssh连接中使用telnet?

问题描述 投票:4回答:3

有一个节点,我通过Robot Framework远程进入并启动脚本(SSHLibrary.Start命令或执行命令)。此远程脚本启动到另一个从外部隐藏的节点的telnet连接。这个telnet调用似乎是Robot的阻塞事件。我使用RIDE进行测试,它只是停止工作。我可以低效地发送停止信号。是否可以在ssh中生成telnet?

python testing ssh telnet robotframework
3个回答
3
投票

一切皆有可能。

让我们将您的场景描述为:Robot Framework在机器A上运行。测试通过ssh将A连接到机器B,通过telnet连接到机器C.

从你的问题不清楚测试卡在哪一步。测试是否实际建立了telnet连接? telnet进程实际上是从B开始的吗?

在这里你应该考虑两个相关的问题。

第一个是Robot Framework在单个线程中执行测试。这意味着在关键字返回之前测试不会进行。如果希望在测试继续时打开telnet会话,则必须使用SSHLibrary.start命令而不是执行命令。

第二点是控制程序化的telnet会话。 telnet客户端必须支持某种批量执行(例如,不要求密码或刷新输入)。确保您能够从测试中在C上发出命令。您应该能够使用write关键字重定向C的命令。您可以通过从其标准输入中获取命令文件来检查telnet客户端是否正常工作。就像是

cat commands_for_c.txt | telnet ...to..c...

2
投票

我们没有使用telnet的方法,但是使用另一个ssh会话或其他我们无法访问的shell ...

打开与第一台计算机的ssh连接。在此连接上,使用SSHLibrary关键字(如“设置提示”,“写入”和“读取”或“读取直到提示”)手动打开到下一台计算机的telnet连接。写和读关键字可以使用有点像期望和产生...


1
投票

嗨,我使用ssh连接在Robot Framework中发送telnet命令,如下所示:

SSHLibrary.Open Connection    host=***    port=22    timeout=60    alias=ssh    prompt=:~ >
SSHLibrary.Login    username=***    password=***    delay=1s
SSHLibrary.Switch Connection    index_or_alias=ssh
SSHLibrary.Write    lxc-attach -n 0x1018
SSHLibrary.Read Until Prompt
SSHLibrary.Write    telnet 1.2.3.4 2323
SSHLibrary.Read Until    $
SSHLibrary.Write    sendX 1115 1 0 0 0 0
SYSTEM Close SSH Connection
© www.soinside.com 2019 - 2024. All rights reserved.