有一个节点,我通过Robot Framework远程进入并启动脚本(SSHLibrary.Start命令或执行命令).此远程脚本启动到另一个从外部隐藏的节点的telnet连接.这个telnet调用似乎是Robot的阻塞事件.我使用RIDE进行测试,它只是停止工作.我可以低效地发送停止信号.是否可以在ssh中生成telnet?
解决方法:
一切皆有可能.
让我们将您的场景描述为: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...