RF 执行测试用例的命令
用例的執(zhí)行 (13 min)
指定執(zhí)行的測試套件 (5 min)
Robot Framework 的命令格式如下
robot [options] data_sources其中 :
options 是 RF命令的選項(xiàng), 可以為空
data_sources 則是 要執(zhí)行的測試套件文件或者目錄的路徑。可以是絕對路徑,也可以是相對路徑,相對與當(dāng)?shell? 的工作目錄。
robot tests.robotrobot path/to/my_tests/robot c:\robot\tests.robot?
如果指定的是測試套件文件,則執(zhí)行該文件中所有的測試用例。
如果指定的是測試套件目錄,則遞歸執(zhí)行該目錄下包含的所有的子目錄里面所有測試套件文件里面的用例。
?
不管是執(zhí)行測試套件文件還是目錄, RF認(rèn)為本次測試的名字就是data_sources參數(shù)
?
===============================
當(dāng)然我們也可以指定多個(gè)要執(zhí)行的測試套件文件、目錄,甚至用通配符來表示多個(gè)測試,如下所示:
robot my_tests.robot your_tests.robotrobot --name Example path/to/tests/pattern_*.robot像這種多個(gè)測試數(shù)據(jù)的情況,本次測試的名稱 就是把 它們的名字相加, 比如上面的第一個(gè)對應(yīng)的本次測試名稱就叫 My Tests & Your Tests。
我們可以用--name選項(xiàng)來指定本次測試名稱,像上面第二行所示。
?
比如這里,我們剛才的套件執(zhí)行可以是:
robot --pythonpath . --name? 回歸測試? tc?
?
根據(jù) 名稱 選擇測試用例(3 min)
我們可以通過 --test --suite 來指定執(zhí)行哪些用例或者套件,而且還支持用通配符的方式。
--test Example??????????????? # 執(zhí)行名為example的用例
--test mytest --test yourtest?? # 執(zhí)行名為mytest和 yourtest的用例
--test example*????????????? # 執(zhí)行名字以example開頭的用例
--suite mysuite????????????? # 執(zhí)行 名為mysuite的套件
?
比如,我們想只測試 添加老師1 這個(gè)套件
robot --pythonpath . --test? 添加老師1? tc?
注意這個(gè)參數(shù)得和 data source 參數(shù)一起使用,不能單獨(dú)使用
-----------------------------
通常,我們可以在用例后面加上測試管理系統(tǒng)的用例id, 就可以根據(jù)用例ID,來選擇用例了
如果我們得到的用例清單 如下
tc00001
tc00002
tc00003
tc00004
tc00005
?
我們就可以這樣執(zhí)行
robot --pythonpath . --test *tc00001? --test *tc00002 --test *tc00003 --test *tc00004 --test *tc00005? t1.robot?
如果有的時(shí)候,個(gè)數(shù)太多,參數(shù)豈非太長了?
我們通常可以使用參數(shù)文件
?
參數(shù)文件 (5 min)
如果有的時(shí)候,參數(shù)太長,我們通常可以使用參數(shù)文件,我們可以把所有的參數(shù)都放在參數(shù)文件中,比如
--pythonpath .--name 回歸測試--test *tc00001--test *tc00002--test *tc00003--test *tc00004--test *tc00005t1.robot?
我們的命令就只需要? robot -A argfilename 就可以了
如果用例參數(shù)文件args.txt內(nèi)容如下
--pythonpath .--name 回歸測試--test? tc0001--test? tc0002tc?
就可以執(zhí)行 robot -A args.txt
?
通過標(biāo)簽選擇測試用例 (15 min)
前面我們已經(jīng)學(xué)習(xí)過,通過用例名和套件名來選擇測試用例。
還有一種選擇測試用例的方法,是根據(jù)用例的標(biāo)簽
?
指定標(biāo)簽
我們可以給測試用例打上標(biāo)簽(Tag),這樣在運(yùn)行的時(shí)候,可以通過標(biāo)簽指定要運(yùn)行哪些用例。
測試用例可以有多個(gè)標(biāo)簽,
我們根據(jù)任何一個(gè)標(biāo)簽都可以過濾到該用例。
?
給用例打Tag有如下幾種方式
-
-
Setting 表里的Force Tags?
-
如果我們在測試套件文件的Settings表設(shè)置了Force Tags,
那么該套件里面所有測試用例都具有了該tag
如果我們在測試套件目錄初始化文件的Settings表設(shè)置了Force Tags,
那么該套件里面所有測試用例都具有了該tag
?
-
-
測試用例表里的 [tags] 配置
-
很簡單,就是該用例的tag,
?
-
-
Setting 表里的Default Tags?
-
如果我們在測試套件文件的Settings表設(shè)置了Default Tags,
那么該套件里面所有 沒有[tags] 設(shè)置的測試用例 都具有了該tag。
?
?
注意測試目錄 里面的__init__.robot 不支持Default Tags
?
?
?
?
如果用例有了標(biāo)簽,
在執(zhí)行自動化的時(shí)候,我們可以這樣指定執(zhí)行哪些標(biāo)簽的測試用例
--include foo? # 執(zhí)行包含 標(biāo)簽'foo' 的用例.
--exclude foo? # 執(zhí)行不包含標(biāo)簽'foo' 的用例.
--include oneAND"web test" # 執(zhí)行同時(shí)包含 標(biāo)簽'one','web test' 的用例. 因?yàn)橛锌崭?#xff0c;所以用雙引號
和下面的區(qū)別?
--include one?? --include "web test"
--include oneORtwo???? # 執(zhí)行包含 標(biāo)簽'one'或者'two' 的用例.
--include oneNOTtwo???? # 執(zhí)行包含 標(biāo)簽'one'但是不包含標(biāo)簽'two' 的用例.
# 執(zhí)行 標(biāo)簽格式為 W*W 的用例.
--include w*w???? #比如w2w, ww, w33333w
指定關(guān)鍵測試用例 (8 min)
RF執(zhí)行時(shí),可以指定用例是否是關(guān)鍵測試(critical)用例。
如果本次測試中有關(guān)鍵測試用例沒有通過,那么整個(gè)測試就被視為測試不通過。
(哪怕是100個(gè)中只有一個(gè)關(guān)鍵用例沒有通過)
反之,整個(gè)測試就視為通過。(哪怕是100個(gè)中有99個(gè)非關(guān)鍵用例沒有通過,只有1個(gè)通過)
?
-------------------------------
缺省情況下,RF執(zhí)行測試時(shí),每個(gè)測試用例都被視為關(guān)鍵測試用例。
---------------------
我們可以通過命令參數(shù)
--critical (-c)? 和 --noncritical (-n)? 后面加tag 名稱 來指定測試用例是否為關(guān)鍵測試用例。
比如:
--critical regression指定 只有具有 regression 標(biāo)簽的用例才是關(guān)鍵用例? 其它都不是
?
--noncritical not_ready指定 不具有 not_ready 標(biāo)簽的用例是關(guān)鍵用例,其他用例都不是關(guān)鍵用例。
?
--critical ok*? --noncritical tbd*指定 具有 以ok開頭的標(biāo)簽 且 沒有以tbd開頭的標(biāo)簽 的用例都是關(guān)鍵用例,其他用例都不是是關(guān)鍵用例。
----------------------
通常我們可以在關(guān)鍵用例中打上標(biāo)簽 ,比如 basic 、important,critical? 表示是關(guān)鍵用例,這樣就可以方便的直接標(biāo)明用例是否為關(guān)鍵用例。
總結(jié)
以上是生活随笔為你收集整理的RF 执行测试用例的命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【优化表达系列】LaTeX 模板汇总
- 下一篇: Robot Framework(RF)语