1. 程式人生 > >Robot Framework 內建變數

Robot Framework 內建變數

 

轉載:https://blog.csdn.net/qq_26886929/article/details/53907755

 

Robot Framework 內建變數

Robot Framework 內部提供了一下直接可用的內建變數

 

1. 作業系統相關變數

 

內建的作業系統相關的變數,減少了測試資料對作業系統之間的差異性的關注

RF 中可用的作業系統相關的內建變數如下表:

 

變數 用途
${CURDIR} 測試資料檔案所在目錄的絕對路徑,該引數是大小寫敏感的
${TEMPDIR} 作業系統臨時目錄的絕對路徑,在類 Unix 系統中,該路徑通常是 /tmp;在 Windows 系統中,通常是 c:\Documents and Settings\<user>\Local Settings\Temp
${EXECDIR} 到測試開始執行的目錄的絕對路徑
${/} 作業系統檔案路徑分隔符,在類 Unix 系統中為: ‘/’, 在 Windows 中則為: ‘\’
${:} 作業系統路徑元素分隔符,在類 Unix 系統中為: ‘:’,在 Windows 中則為: ‘;’
${\n} 作業系統行分隔符,在類 Unix 系統中為: ‘\n’,在 Windows 中則為: ‘\r\n’

 

 

 

[python] view plain copy

  1. *** Test Cases ***  
  2. Example  
  3.         Create Binary File     ${CURDIR}${/}input.data     Some text here${\n}on two lines  
  4.         Set Environment Variable     CLASSPATH     ${TEMPDIR}${:}${CURDIR}${/}foo.jar  

 

 

2. 數字變數

 

如下面例子中所示,變數語法能用來建立 整型 和 浮點型 資料。當一個關鍵字需要 真實的數字而非對應的數字字串作為引數時,這種建立數字變數的方法是很有用的。

 

[python] view plain copy

  1. *** Test Cases ***  
  2. Example 1A  
  3.     Connect     example.com     80     # Connect 獲得兩個字串作為引數  
  4. Example 1B  
  5.     Connect     example.com     ${80}     # Connect 獲得一個字串和一個整數作為引數  
  6. Example 2  
  7.     Do X     ${3.14}     ${‐1e‐4}     # Do X 獲得浮點數 3.14 和 ‐0.0001 作為引數  


從二進位制,八進位制和十六進位制值來建立整數也是可以的,建立時分別用: 0b, 0o 和 0x 作為相應的字首,並且這種語法是大小寫不敏感的。

[python] view plain copy

  1. *** Test Cases ***  
  2. Example  
  3.     Should Be Equal     ${0b1011}     ${11}  
  4.     Should Be Equal     ${0o10}     ${8}  
  5.     Should Be Equal     ${0xff}     ${255}  
  6.     Should Be Equal     ${0B1010}   ${0XA}  

 

3. 布林值和 None/ null變數

 

布林值和 Python 的 None,Java 的 null 變數也可以用建立數字變數類似的語法建立:

 

[python] view plain copy

  1. *** Test Cases ***  
  2. Boolean  
  3.     Set Status     ${true}     # Set Status 獲得布林值 true 作為引數  
  4.     Create Y     something     ${false}     # Create Y 獲得字串和布林值 false 作為引數  
  5.   
  6. None  
  7. Do XYZ     ${None}     # Do XYZ 獲得 Python None 作為引數  
  8.   
  9. Null  
  10.     ${ret} = Get Value     arg     # Checking that Get Value returns Java null  
  11.     Should Be Equal     ${ret}     ${null}  

這些變數也是大小寫不敏感的,所以 ${True} 和 ${true} 是一樣的。此外 ${None} 和 ${null} 是同義詞,因為用 Jython 直譯器執行用例時, Jython 會自動將 None 和 null 轉換成正確格式。

 

4.空格和空(empty)變數

 

可以分別使用 ${SPACE} 和 ${EMPTY} 來建立空格和空字串變數。這些變數很有用,如果不使用這些變數的話,就需要對空格或空單元格進行轉義。如果需要一個以上的空格,也可以使用擴充套件變數語法來輕易獲得,形如: ${SPACE * 5}。下面的例子中,Should Be Equal 關鍵字得到的引數值是相等的,但很明顯使用變數的方式比使用 ‘\' 轉義的方式更易理解。

[python] view plain copy

  1. *** Test Cases ***  
  2. One Space  
  3.     Should Be Equal     ${SPACE}     \ \  
  4.   
  5. Four Spaces  
  6.     Should Be Equal     ${SPACE * 4}     \ \ \ \ \  
  7.   
  8. Ten Spaces  
  9.     Should Be Equal     ${SPACE * 10}     \ \ \ \ \ \ \ \ \ \ \  
  10.   
  11. Quoted Space  
  12.     Should Be Equal     "${SPACE}"     " "  
  13.   
  14. Quoted Spaces  
  15.     Should Be Equal     "${SPACE * 2}"     " \ "  
  16.   
  17. Empty  
  18.     Should Be Equal     ${EMPTY}     \  



 還有兩個變數 @{EMPTY} 和 &{EMPTY},他們分別表示 ‘空列表’ 和 ‘空字典’ 變數。 這兩個變數也是有用的,例如在寫測試模板的時候,模板關鍵字不帶引數使用時。

[python] view plain copy

  1. *** Test Cases ***  
  2. Template  
  3.     [Template]     Some keyword  
  4.     @{EMPTY}  
  5.   
  6. Override  
  7.     Set Global Variable     @{LIST}     @{EMPTY}  
  8.     Set Suite Variable     &{DICT}     &{EMPTY}  

 

5. 自動變數


還有一些自動變數可以在測試資料中使用。這些變數在測試過程中可能有不同的取值,其中有一些甚至不是一直可用的。

變數 解釋 使用地點
${TEST NAME} 當前測試用例的名稱 測試用例中
@{TEST TAGS} 當前測試用例被打上的所有標記,按字母順序排列。可以使用 Set Tags 和 Remove Tags 關鍵字動態的修改 測試用例中
${TEST DOCUMENTATION} 當前測試用例的說明文件,可以使用 Set Test Documentation 關鍵字動態的修改 測試用例中
${TEST STATUS} 當前測試用例的執行狀態,PASS 或 FAIL 測試用例 teardown時
${TEST MESSAGE} 當前測試用例的資訊 測試用例 teardown時
${PREV TEST NAME} 前一個測試用例的名字,如果還沒有測試用例被執行,則該值為空 所有地方
${PREV TEST STATUS} 前一個測試用例的執行狀態,PASS/FAIL,如果還沒有測試用例被執行,則該值為空 所有地方
${PREV TEST MESSAGE} 前一個測試用例執行所產生的可能的錯誤資訊 所有地方
${SUITE NAME} 當前測試套件的全稱 所有地方
${SUITE SOURCE} 當前測試套件檔案或目錄的絕對路徑 所有地方
${SUITE DOCUMENTATION} 當前測試套件的說明文件,可以使用 Set Suite Documentation 關鍵字動態的改變 所有地方
&{SUITE METADATA} 當前測試套件的元資料 所有地方
${SUITE STATUS} 當前測試套件的執行狀態, PASS 或 FAIL 測試套件 teardown
${SUITE MESSAGE} 當前測試套件的全部資訊,包括統計 測試套件 teardown
${KEYWORD STATUS} 當前關鍵的執行狀態,PASS 或 FAIL 使用者關鍵字 teardown
${KEYWORD MESSAGE} 當前關鍵字執行時可能產生的錯誤資訊 使用者關鍵字 teardown
${LOG LEVEL} 當前日誌級別 所有地方
${OUTPUT FILE} 到輸出檔案的絕對路徑 所有地方
${LOG FILE} 到日誌檔案的絕對路徑,或者為NONE 當沒有建立日誌檔案時 所有地方
${REPORT FILE} 到測試報告檔案的絕對路徑,或者為NONE 當沒有建立測試報告檔案時 所有地方
${DEBUG FILE} 到debug檔案的絕對路徑,或者為NONE 當沒有建立debug檔案時 所有地方
${OUTPUT DIR} 到輸出目錄的絕對路徑 所有地方