我可以通过Robot Framework(SSHLibrary.Start命令或执行命令)远程登录并启动脚本。此远程脚本启动到另一个从外部隐藏的节点的telnet连接。这个telnet调用似乎是Robot的阻塞事件。我使用RIDE进行测试,它只是停止工作。我可以低效地发送停止信号。是否可以在ssh中生成telnet?
答案 0 :(得分: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...
答案 1 :(得分:2)
我们没有使用telnet的方法,但是使用了另一个ssh会话或其他我们无法访问的shell ...
打开与第一台计算机的ssh连接。 在此连接上,使用SSHLibrary关键字(如“设置提示”,“写入”和“读取”或“读取直到提示”)手动打开到下一台计算机的telnet连接。 写和读关键字可以使用有点像期望和产生......
答案 2 :(得分: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