一欠啤、變量的使用
變量可以在命令行中設(shè)置熄阻,個別變量設(shè)置使用--variable (-v)選項膘掰,變量文件的選擇使用--variablefile (-V)選項跪另。通過命令行設(shè)置的變量是全局變量拧抖,對其所有執(zhí)行的用例都有效。它們將覆蓋變量表格中的同名變量或是通過變量文件引入到測試數(shù)據(jù)中的同名變量免绿。設(shè)置單個變量的語法是--variable name:value唧席, “name”是不使用${}的變量名稱, “value”則是其賦予的值嘲驾√视矗可以多次使用該選項設(shè)置多個變量。僅有標(biāo)量變量可以使用該語法且只能賦值字符串辽故。許多特殊字符在命令行中很難表示徒仓,但可以使用轉(zhuǎn)義字符轉(zhuǎn)義它們,使用—escape 選項誊垢。
在命令行中使用變量文件的基本語法是--variablefile path/to/variables.py使用 Set Test Variable 創(chuàng)建的變量掉弛,可以在該測試用例范圍內(nèi)的任何位置有效症见。例如,你在一個用戶關(guān)鍵字中創(chuàng)建了變量殃饿,它將在測試用例級別有效及當(dāng)前測試中的所有其他用戶自定義關(guān)鍵字中有效谋作。其他測試用例將看不到該變量。使用 Set Suite Variable 創(chuàng)建的變量乎芳,可以在當(dāng)前測試集范圍內(nèi)的任何位置有效遵蚜。使用該關(guān)鍵字創(chuàng)建變量同使用測試數(shù)據(jù)文件的設(shè)置表格設(shè)置變量和引入變量文件相同。其他的關(guān)鍵字奈惑,包括可能的子測試集吭净,都將不能看到該關(guān)鍵字創(chuàng)建的變量。使用 Set Global Variable keyword 創(chuàng)建的變量携取, 在所有測試用例和測試集中有效攒钳。 通過該關(guān)鍵字創(chuàng)建的變量同使用命令行選項-variable 或—variablefile 創(chuàng)建的變量相同。因?yàn)樵撽P(guān)鍵字可以在任何地方改變變量值雷滋,所有需要小心使用有效的操作系統(tǒng)內(nèi)建變量Variable Explanation${CURDIR} 提供當(dāng)前測試文件存放的絕對路徑不撑。該變量是大小寫敏感的。${TEMPDIR} 獲取操作系統(tǒng)臨時文件夾的絕對路徑晤斩。 在UNIX系統(tǒng)是在/tmp焕檬, 在windows系統(tǒng)是在c:\Documents and Settings\\Local Settings\Temp。${EXECDIR} 獲取測試執(zhí)行開始目錄的絕對路徑澳泵∈涤蓿空格和空變量可以使用${SPACE}和${EMPTY}創(chuàng)建空格和空變量。這些變量非常有用兔辅,否則需要使用反斜杠用于轉(zhuǎn)義空格或空單元格腊敲。當(dāng)需要使用多個空格時,可以使用該語法${SPACE*5}维苔。如下面的例子碰辅,should be equal 使用了同樣的參數(shù),但使用該語法比使用反斜杠更簡單清晰介时。一些自動變量可以在測試用例中使用没宾。這些變量在執(zhí)行時會有不同的值,并且他們不是在任何時候都是有效的沸柔。
Variable Explanation Available
${TEST NAME}? 獲取當(dāng)前測試用例名稱 Test case
@{TEST TAGS}? 包含當(dāng)前測試集中的 tag循衰,按字母排序 Test case
${TEST STATUS} 獲取當(dāng)前測試用例的狀態(tài),PASS 或 FAIL 中的一種褐澎。只能在測試用例的 teardown? 中使用
${TEST MESSAGE} 當(dāng)前測試用例可能的錯誤信息会钝。只能在測試用例的 teardown? 中使用
${PREV TEST NAME} 前一個測試用例的名稱,或者為空字符串【當(dāng)沒有任何測試用例執(zhí)行過】 工三⊥缢兀可以在任何地方使用
${PREV TEST STATUS} 前一個測試用例的狀態(tài)咽弦,PASS,F(xiàn)AIL 或者未空字符串胁出, 【當(dāng)沒有任何用例執(zhí)行過】 《紊螅可以在任何地方使用
${PREV TEST MESSAGE} 前一個測試用例可能的錯誤信息全蝶。可以在任何地方使用
${SUITE NAME} 當(dāng)前測試集的全名稱寺枉∫忠可以在任何地方使用。
${SUITE SOURCE} 測試集文件或目錄的絕對路徑姥闪,可以在任何地方使用始苇。
${SUITE STATUS} 當(dāng)前測試集的狀態(tài), PASS 或 FAIL筐喳。只能在測試集的 teardown 中使用催式。Suite teardown
${SUITE MESSAGE} 測試集的所有消息,包括統(tǒng)計避归。只能在測試集的 teardown 中使用荣月。Suite teardown
${OUTPUT FILE} 當(dāng)前輸出文件的絕對路徑。當(dāng)輸出文件被分割會有不同的值梳毙〔刚可以在任何地方使用。
${LOG FILE} 當(dāng)前日志文件的絕對路徑或字符串 None【當(dāng)沒有日志文件時】 账锹。當(dāng)輸 出被分割時萌业,將可能有不同的值。
${REPORT FILE} 當(dāng)前報告文件的絕對路徑或字符串 NONE【當(dāng)沒有報告文件生成時】 奸柬。
${SUMMARY FILE} 摘要文件的絕對路徑或字符串 NONE【當(dāng)沒有摘要文件時】 生年。
${DEBUG FILE} 調(diào)試文件的絕對路徑或字符串 NONE【當(dāng)沒有調(diào)試文件時】 。
${OUTPUT DIR} 輸出目錄的絕對路徑 Everywhere
變量文件創(chuàng)建變量時鸟缕,創(chuàng)建列表變量晶框,變量名稱必須使用前綴LIST__(注意是兩個下劃線)。LIST__STRINGS = ["list", "of", "strings"]
二懂从、連接對象
Catenate關(guān)鍵字可以連接多個對象
執(zhí)行結(jié)果:
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=”可對多個連接的信息進(jìn)行分割:
執(zhí)行結(jié)果:
三授段、用例執(zhí)行
RF 的測試用例可以創(chuàng)建在文件或目錄中,在運(yùn)行腳本后接需要執(zhí)行用例的名文件名或路徑名番甩。路徑可以是絕對路徑侵贵,更普遍的是相對路徑。文件或目錄構(gòu)成頂級測試集缘薛,該測試集如果沒有被--name option 所覆蓋窍育,它將使用文件或目錄名作為自己的名字
RF 可以自動的產(chǎn)生頂級的測試集卡睦, 具體的文件或目錄將變成它的子測試集。 產(chǎn)生的測試集的名稱將由子測試集的名字和 “&”組成
使用參數(shù):當(dāng)使用參數(shù)時漱抓,參數(shù)必須位于運(yùn)行腳本和源數(shù)據(jù)中間
設(shè)置參數(shù)值:大部分參數(shù)需要一個參數(shù)值表锻, 位于參數(shù)名后面。 長參數(shù)和短參數(shù)都接受由空格分開的參數(shù)值乞娄, 例如: “--include tag”或“-i tag” 瞬逊。使用長參數(shù)時,可以將等號“=”作為分隔符仪或,例如“--include=tag” 确镊,使用短參數(shù)時,分隔符可以省略范删,例如“-itag” 蕾域。某些參數(shù)可以被具體賦值多次。例如到旦, “--variable VAR1:value --variable VAR2:another”設(shè)置了兩個變量旨巷。如果某個只有一個值的參數(shù)被賦值多次,則最后一次生效.
簡單正則表達(dá)式:很多參數(shù)后可接正則表達(dá)式的參數(shù)值厢绝。 “*”和“契沫?”可替代具體的字符, “*”可匹配任何包括空值在內(nèi)的字符串昔汉, “懈万?” 可以匹配任何單個字符。 例如: “--include prefix-*” 匹配所有以 “prefix-” 開頭的 tag靶病, “--include a???” 匹配所有以“a”開頭 4 個字符的 tag
返回碼:運(yùn)行腳本通過返回碼使所有測試用例的狀態(tài)和系統(tǒng)交互会通。如果所有的用例執(zhí)行啟動成功而且沒有嚴(yán)重的失敗,返回碼將是 0娄周,所有可能的返回碼都列在下表中涕侈。返回碼用例執(zhí)行完之后,很容易通過返回碼來確定所有用例執(zhí)行的狀態(tài)煤辨。例如裳涛,在 bash shell 中,返回碼保存在具體的變量“ $?”中众辨,在 Windows 系統(tǒng)中端三,返回碼保存在變量% ERRORLEVEL %中。如果您使用外部的工具來運(yùn)行用例鹃彻,請查詢相關(guān)的文檔來了解如何獲得返回值
執(zhí)行測試集和測試用例:測試用例總是在某個測試集中執(zhí)行郊闯。由目錄產(chǎn)生的測試集包含由測試用例文件或目錄組成的子測試集,由測試用例文件組成的測試集直接包含測試用例。默認(rèn)情況下团赁,所有的測試用例都會執(zhí)行育拨,可以通過參數(shù)“--test” 、 “--suite欢摄、 “--include”和“--exclude”來選擇用例執(zhí)行熬丧。測試集中如果沒有用例,將不會執(zhí)行剧浸。RF 從頂級的測試集開始執(zhí)行锹引。如果測試集中包含用例,則順序執(zhí)行唆香。如果測試集中再包含測試集,則按照深度優(yōu)先的順序依次執(zhí)行吨艇。當(dāng)執(zhí)行單個用例時躬它,關(guān)鍵字按順序執(zhí)行。通常用例中的任何一個關(guān)鍵字失敗了东涡,用例將停止執(zhí)行冯吓,但是,我們可以做到讓失敗后繼續(xù)執(zhí)行