【发布时间】:2018-08-12 13:19:56
【问题描述】:
我现在正在尝试使用 SSHLibrary 将 ssh 连接到在我的 PC 上运行的虚拟路由器并在路由器上执行简单的 ping 测试,然后显示测试用例的结果。 我可以登录到路由器并在机器人框架之外执行命令,但是当我尝试使用机器人框架执行此操作时,我收到一条错误消息失败,不知道如何解决此错误消息:
这是我的机器人框架测试脚本:
*** Settings ***
Library SSHLibrary
Suite Setup Open Connection And Log In
Suite Teardown Close All Connections
*** Variable ***
${HOST} 172.31.1.250
${USERNAME} admin
${PASSWORD} admin
*** Keywords ***
Open Connection And Log In
Open Connection ${HOST}
Login ${USERNAME} ${PASSWORD}
*** Test Cases ***
Ping test
${output} = Execute Command ping 1.1.1.1
Should Contain ${result.stdout} 64 bytes from 1.1.1.1
这是我执行上述测试用例时得到的输出:
==============================================================================
Sros
==============================================================================
Ping test | FAIL |
ChannelException: (1, 'Administratively prohibited')
------------------------------------------------------------------------------
Sros | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
这是什么错误信息,我该如何解决:
**ChannelException: (1, 'Administratively prohibited')**
我登录的路由器的类型有关系吗?
感谢您的帮助。
根据反馈,我已将执行命令更改为写入。 所以我的脚本现在看起来像这样:
*** Settings ***
Library SSHLibrary
Suite Setup Open Connection And Log In
Suite Teardown Close All Connections
*** Variable ***
${HOST} 172.31.1.250
${USERNAME} admin
${PASSWORD} admin
*** Keywords ***
Open Connection And Log In
Open Connection ${HOST}
Login ${USERNAME} ${PASSWORD}
*** Test Cases ***
Ping test
${result} = Write ping 1.1.1.1 count 1
Should Contain ${result.stdout} 64 bytes from 1.1.1.1
但现在我收到以下错误消息:
==============================================================================
Sros
==============================================================================
Ping test | FAIL |
Resolving variable '${result.stdout}' failed: AttributeError: 'str' object has no attribute 'stdout'
------------------------------------------------------------------------------
Sros | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
我也没有使用 Wireshark 检查机器人脚本确实 ssh 进入路由器并建立 ssh 会话。我认为工作正常的连接部分。
【问题讨论】:
-
我认为这与关键字
Execute Command启动新外壳的事实有关。尝试使用关键字Write。 -
嗨,这有助于摆脱上述错误。但现在得到不同的错误。有关新错误,请参阅我编辑的帖子。
-
嗨,这是因为
Write没有返回任何内容。您需要自己阅读输出。很少有关键字可以这样做robotframework.org/SSHLibrary/SSHLibrary.html#Read
标签: robotframework