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
- *** Test Cases ***
- Example
- Create Binary File ${CURDIR}${/}input.data Some text here${\n}on two lines
- Set Environment Variable CLASSPATH ${TEMPDIR}${:}${CURDIR}${/}foo.jar
2. 數字變數
如下面例子中所示,變數語法能用來建立 整型 和 浮點型 資料。當一個關鍵字需要 真實的數字而非對應的數字字串作為引數時,這種建立數字變數的方法是很有用的。
[python] view plain copy
- *** Test Cases ***
- Example 1A
- Connect example.com 80 # Connect 獲得兩個字串作為引數
- Example 1B
- Connect example.com ${80} # Connect 獲得一個字串和一個整數作為引數
- Example 2
- Do X ${3.14} ${‐1e‐4} # Do X 獲得浮點數 3.14 和 ‐0.0001 作為引數
從二進位制,八進位制和十六進位制值來建立整數也是可以的,建立時分別用: 0b, 0o 和 0x 作為相應的字首,並且這種語法是大小寫不敏感的。
[python] view plain copy
- *** Test Cases ***
- Example
- Should Be Equal ${0b1011} ${11}
- Should Be Equal ${0o10} ${8}
- Should Be Equal ${0xff} ${255}
- Should Be Equal ${0B1010} ${0XA}
3. 布林值和 None/ null變數
布林值和 Python 的 None,Java 的 null 變數也可以用建立數字變數類似的語法建立:
[python] view plain copy
- *** Test Cases ***
- Boolean
- Set Status ${true} # Set Status 獲得布林值 true 作為引數
- Create Y something ${false} # Create Y 獲得字串和布林值 false 作為引數
- None
- Do XYZ ${None} # Do XYZ 獲得 Python None 作為引數
- Null
- ${ret} = Get Value arg # Checking that Get Value returns Java null
- 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
- *** Test Cases ***
- One Space
- Should Be Equal ${SPACE} \ \
- Four Spaces
- Should Be Equal ${SPACE * 4} \ \ \ \ \
- Ten Spaces
- Should Be Equal ${SPACE * 10} \ \ \ \ \ \ \ \ \ \ \
- Quoted Space
- Should Be Equal "${SPACE}" " "
- Quoted Spaces
- Should Be Equal "${SPACE * 2}" " \ "
- Empty
- Should Be Equal ${EMPTY} \
還有兩個變數 @{EMPTY} 和 &{EMPTY},他們分別表示 ‘空列表’ 和 ‘空字典’ 變數。 這兩個變數也是有用的,例如在寫測試模板的時候,模板關鍵字不帶引數使用時。
[python] view plain copy
- *** Test Cases ***
- Template
- [Template] Some keyword
- @{EMPTY}
- Override
- Set Global Variable @{LIST} @{EMPTY}
- 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} | 到輸出目錄的絕對路徑 | 所有地方 |