轉自:https://blog.csdn.net/qq_26886929/article/details/53907755#commentBox
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’ |
-
*** 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. 數字變量
如下面例子中所示,變量語法能用來創建 整型 和 浮點型 數據。當一個關鍵字需要 真實的數字而非對應的數字字符串作爲參數時,這種創建數字變量的方法是很有用的。
-
*** 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 作爲相應的前綴,並且這種語法是大小寫不敏感的。
-
*** 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 變量也可以用創建數字變量類似的語法創建:
-
*** 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 關鍵字得到的參數值是相等的,但很明顯使用變量的方式比使用 ‘\' 轉義的方式更易理解。
-
*** 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},他們分別表示 ‘空列表’ 和 ‘空字典’ 變量。 這兩個變量也是有用的,例如在寫測試模板的時候,模板關鍵字不帶參數使用時。
-
*** 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} | 到輸出目錄的絕對路徑 | 所有地方 |