2013-08-23 49 views

回答

1

我發現這樣做的最好方法是從「Execute Command」關鍵字中將返回代碼與標準輸出(和stderr,如果需要的話)一起返回。例如:

SSHLibrary.Open Connection hostname port 
SSHLibrary.Login username password 
${stdout} ${return_code}= SSHLibrary.Execute Command valid_command  return_rc=True 
${stdout} ${return_code}= SSHLibrary.Execute Command invalid_command return_rc=True 

在此示例中,第一次執行命令調用將返回$ {return_code}值0和第二個非零狀態碼。所以你可以在返回碼上執行「應該等於」或類似的聲明。

-1

我無法完全看到您提到的關鍵字。這是標準庫的一部分嗎?

快速檢查會在OperatingSystem下產生一些關鍵字,它包含一些運行命令並返回返回碼的關鍵字。

http://robotframework.googlecode.com/hg/doc/libraries/OperatingSystem.html?r=2.8.1#Run並返回RC

這應該告訴你,你的命令是否正確執行,因爲很多Linux命令成功沉默。

+0

「運行」關鍵字在本地主機中執行,但「執行命令」(SSHLibrary)在遠程主機中執行。 http://robotframework-sshlibrary.googlecode.com/svn/tags/robotframework-sshlibrary-0.9/doc/SSHLibrary.html#Execute%20Command –

+0

啊我明白了。如果你的命令在某些狀態下沒有輸出,你是否真的觸及了你想要檢查返回碼的問題?也許你可以做的是編寫一個運行你的命令的包裝器,讓這個命令正常輸出到stdout/stderr,並返回作爲stdout一部分的返回代碼。至少可以解析輸出。另一種選擇是執行echo $之類的東西?並確保該命令應該爲0,如果你想命令成功? – Calyth