2016-08-24 158 views
0

在RobotFramework中,我试图在服务器上执行一个命令,将输出放在一个变量中,并将输出比较为空或不为空,但是出现错误。roboframework脚本问题

机器人脚本:

${redRelease} Execute Command As Root And Return Result ${SERVER} cat /etc/redhat-release | grep '6.7' 

Run Keyword If '${redRelease}'=='${Empty}' Should Contain xxx yyyy 

但我得到一个错误:

Evaluating expression '' 
Red Hat Enterprise Linux Server release 6.7 (Santiago)'==''' failed: 
SyntaxError: no viable alternative at character ''' (<string>, line 1) 

我如何比较grep命令的输出为空或不空?

+0

作为根和返回结果执行命令做什么?我的猜测是不知何故修改了服务器的回复。 – Pekka

+0

是的,它以root用户身份执行一个命令并返回结果。 – Bhv

+0

当我使用SSHLibrary的执行命令时,您的代码适用于我。我不明白'$ {Empty}'是如何变成'''的。在运行“运行关键字如果......”之前记录$ {Empty},以确定您没有意外将$ {Empty}设置为另一个值。 – Pekka

回答

0

RoboFramework提供了一个内置的库“SSHLibrary”,它可以帮助处理相同的问题。

例如:

*** Settings *** 
Library   SSHLibrary 


*** Variables *** 
${HOST}   127.0.0.1 
${USERNAME}  labadmin 
${PASSWORD}  root123 
${command}  cat /etc/*release 

*** Test Cases *** 

Login_to_server 
    Open Connection ${HOST} 
    Login ${USERNAME} ${PASSWORD} 
    ${output} Execute Command ${command} 
    Should Contain ${output} "Ubuntu" 

根据您的设置修改上面的代码段。