一、變量的使用
變量可以在命令行中設置,個別變量設置使用--variable (-v)選項,變量文件的選擇使用--variablefile (-V)選項。通過命令行設置的變量是全局變量,對其所有執行的用例都有效。它們將覆蓋變量表格中的同名變量或是通過變量文件引入到測試數據中的同名變量。設置單個變量的語法是--variable name:value, “name”是不使用${}的變量名稱, “value”則是其賦予的值。可以多次使用該選項設置多個變量。僅有標量變量可以使用該語法且只能賦值字符串。許多特殊字符在命令行中很難表示,但可以使用轉義字符轉義它們,使用—escape 選項。
在命令行中使用變量文件的基本語法是--variablefile path/to/variables.py使用 Set Test Variable 創建的變量,可以在該測試用例范圍內的任何位置有效。例如,你在一個用戶關鍵字中創建了變量,它將在測試用例級別有效及當前測試中的所有其他用戶自定義關鍵字中有效。其他測試用例將看不到該變量。使用 Set Suite Variable 創建的變量,可以在當前測試集范圍內的任何位置有效。使用該關鍵字創建變量同使用測試數據文件的設置表格設置變量和引入變量文件相同。其他的關鍵字,包括可能的子測試集,都將不能看到該關鍵字創建的變量。使用 Set Global Variable keyword 創建的變量, 在所有測試用例和測試集中有效。 通過該關鍵字創建的變量同使用命令行選項-variable 或—variablefile 創建的變量相同。因為該關鍵字可以在任何地方改變變量值,所有需要小心使用有效的操作系統內建變量Variable Explanation${CURDIR} 提供當前測試文件存放的絕對路徑。該變量是大小寫敏感的。${TEMPDIR} 獲取操作系統臨時文件夾的絕對路徑。 在UNIX系統是在/tmp, 在windows系統是在c:\Documents and Settings\\Local Settings\Temp。${EXECDIR} 獲取測試執行開始目錄的絕對路徑。空格和空變量可以使用${SPACE}和${EMPTY}創建空格和空變量。這些變量非常有用,否則需要使用反斜杠用于轉義空格或空單元格。當需要使用多個空格時,可以使用該語法${SPACE*5}。如下面的例子,should be equal 使用了同樣的參數,但使用該語法比使用反斜杠更簡單清晰。一些自動變量可以在測試用例中使用。這些變量在執行時會有不同的值,并且他們不是在任何時候都是有效的。
Variable Explanation Available
${TEST NAME}? 獲取當前測試用例名稱 Test case
@{TEST TAGS}? 包含當前測試集中的 tag,按字母排序 Test case
${TEST STATUS} 獲取當前測試用例的狀態,PASS 或 FAIL 中的一種。只能在測試用例的 teardown? 中使用
${TEST MESSAGE} 當前測試用例可能的錯誤信息。只能在測試用例的 teardown? 中使用
${PREV TEST NAME} 前一個測試用例的名稱,或者為空字符串【當沒有任何測試用例執行過】 。可以在任何地方使用
${PREV TEST STATUS} 前一個測試用例的狀態,PASS,FAIL 或者未空字符串, 【當沒有任何用例執行過】 。可以在任何地方使用
${PREV TEST MESSAGE} 前一個測試用例可能的錯誤信息。可以在任何地方使用
${SUITE NAME} 當前測試集的全名稱。可以在任何地方使用。
${SUITE SOURCE} 測試集文件或目錄的絕對路徑,可以在任何地方使用。
${SUITE STATUS} 當前測試集的狀態, PASS 或 FAIL。只能在測試集的 teardown 中使用。Suite teardown
${SUITE MESSAGE} 測試集的所有消息,包括統計。只能在測試集的 teardown 中使用。Suite teardown
${OUTPUT FILE} 當前輸出文件的絕對路徑。當輸出文件被分割會有不同的值。可以在任何地方使用。
${LOG FILE} 當前日志文件的絕對路徑或字符串 None【當沒有日志文件時】 。當輸 出被分割時,將可能有不同的值。
${REPORT FILE} 當前報告文件的絕對路徑或字符串 NONE【當沒有報告文件生成時】 。
${SUMMARY FILE} 摘要文件的絕對路徑或字符串 NONE【當沒有摘要文件時】 。
${DEBUG FILE} 調試文件的絕對路徑或字符串 NONE【當沒有調試文件時】 。
${OUTPUT DIR} 輸出目錄的絕對路徑 Everywhere
變量文件創建變量時,創建列表變量,變量名稱必須使用前綴LIST__(注意是兩個下劃線)。LIST__STRINGS = ["list", "of", "strings"]
二、連接對象
Catenate關鍵字可以連接多個對象
執行結果:
Starting test: Test.Testsuit.test
20171213 08:57:43.133 :? INFO : ${hi} = hello woeld!
20171213 08:57:43.133 :? INFO : hello woeld!
Ending test:? Test.Testsuit.test
加上“SEPARATOR=”可對多個連接的信息進行分割:
執行結果:
三、用例執行
RF 的測試用例可以創建在文件或目錄中,在運行腳本后接需要執行用例的名文件名或路徑名。路徑可以是絕對路徑,更普遍的是相對路徑。文件或目錄構成頂級測試集,該測試集如果沒有被--name option 所覆蓋,它將使用文件或目錄名作為自己的名字
RF 可以自動的產生頂級的測試集, 具體的文件或目錄將變成它的子測試集。 產生的測試集的名稱將由子測試集的名字和 “&”組成
使用參數:當使用參數時,參數必須位于運行腳本和源數據中間
設置參數值:大部分參數需要一個參數值, 位于參數名后面。 長參數和短參數都接受由空格分開的參數值, 例如: “--include tag”或“-i tag” 。使用長參數時,可以將等號“=”作為分隔符,例如“--include=tag” ,使用短參數時,分隔符可以省略,例如“-itag” 。某些參數可以被具體賦值多次。例如, “--variable VAR1:value --variable VAR2:another”設置了兩個變量。如果某個只有一個值的參數被賦值多次,則最后一次生效.
簡單正則表達式:很多參數后可接正則表達式的參數值。 “*”和“?”可替代具體的字符, “*”可匹配任何包括空值在內的字符串, “?” 可以匹配任何單個字符。 例如: “--include prefix-*” 匹配所有以 “prefix-” 開頭的 tag, “--include a???” 匹配所有以“a”開頭 4 個字符的 tag
返回碼:運行腳本通過返回碼使所有測試用例的狀態和系統交互。如果所有的用例執行啟動成功而且沒有嚴重的失敗,返回碼將是 0,所有可能的返回碼都列在下表中。返回碼用例執行完之后,很容易通過返回碼來確定所有用例執行的狀態。例如,在 bash shell 中,返回碼保存在具體的變量“ $?”中,在 Windows 系統中,返回碼保存在變量% ERRORLEVEL %中。如果您使用外部的工具來運行用例,請查詢相關的文檔來了解如何獲得返回值
執行測試集和測試用例:測試用例總是在某個測試集中執行。由目錄產生的測試集包含由測試用例文件或目錄組成的子測試集,由測試用例文件組成的測試集直接包含測試用例。默認情況下,所有的測試用例都會執行,可以通過參數“--test” 、 “--suite、 “--include”和“--exclude”來選擇用例執行。測試集中如果沒有用例,將不會執行。RF 從頂級的測試集開始執行。如果測試集中包含用例,則順序執行。如果測試集中再包含測試集,則按照深度優先的順序依次執行。當執行單個用例時,關鍵字按順序執行。通常用例中的任何一個關鍵字失敗了,用例將停止執行,但是,我們可以做到讓失敗后繼續執行