2016-08-24 96 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" 

根據您的設置修改上面的代碼段。