Robot Framework 的命令格式如下
robot [options] data_sources
其中 :
options 是 RF命令的选项, 可以为空
data_sources 则是 要执行的测试套件文件或者目录的路径。可以是绝对路径,也可以是相对路径,相对与当?shell? 的工作目录。
robot tests.robot
robot path/to/my_tests/
robot c:\robot\tests.robot
如果指定的是测试套件文件,则执行该文件中所有的测试用例。
如果指定的是测试套件目录,则递归执行该目录下包含的所有的子目录里面所有测试套件文件里面的用例。
不管是执行测试套件文件还是目录, RF认为本次测试的名字就是data_sources参数
===============================
当然我们也可以指定多个要执行的测试套件文件、目录,甚至用通配符来表示多个测试,如下所示:
robot my_tests.robot your_tests.robot
robot --name Example path/to/tests/pattern_*.robot
像这种多个测试数据的情况,本次测试的名称 就是把 它们的名字相加, 比如上面的第一个对应的本次测试名称就叫 My Tests & Your Tests。
我们可以用--name选项来指定本次测试名称,像上面第二行所示。
比如这里,我们刚才的套件执行可以是:
robot --pythonpath . --name 回归测试 tc
我们可以通过 --test --suite 来指定执行哪些用例或者套件,而且还支持用通配符的方式。
--test Example # 执行名为example的用例
--test mytest --test yourtest # 执行名为mytest和 yourtest的用例
--test example* # 执行名字以example开头的用例
--suite mysuite # 执行 名为mysuite的套件
比如,我们想只测试 添加老师1 这个套件
robot --pythonpath . --test 添加老师1 tc
注意这个参数得和 data source 参数一起使用,不能单独使用
-----------------------------
通常,我们可以在用例后面加上测试管理系统的用例id, 就可以根据用例ID,来选择用例了
如果我们得到的用例清单 如下
tc00001
tc00002
tc00003
tc00004
tc00005
我们就可以这样执行
robot --pythonpath . --test *tc00001 --test *tc00002 --test *tc00003 --test *tc00004 --test *tc00005 t1.robot
如果有的时候,个数太多,参数岂非太长了?
我们通常可以使用参数文件
如果有的时候,参数太长,我们通常可以使用参数文件,我们可以把所有的参数都放在参数文件中,比如
--pythonpath .
--name 回归测试
--test *tc00001
--test *tc00002
--test *tc00003
--test *tc00004
--test *tc00005
t1.robot
我们的命令就只需要 robot -A argfilename 就可以了
如果用例参数文件args.txt内容如下
--pythonpath .
--name 回归测试
--test tc0001
--test tc0002
tc
就可以执行 robot -A args.txt
前面我们已经学习过,通过用例名和套件名来选择测试用例。
还有一种选择测试用例的方法,是根据用例的标签
我们可以给测试用例打上标签(Tag),这样在运行的时候,可以通过标签指定要运行哪些用例。
测试用例可以有多个标签,
我们根据任何一个标签都可以过滤到该用例。
给用例打Tag有如下几种方式
Setting 表里的Force Tags
如果我们在测试套件文件的Settings表设置了Force Tags,
那么该套件里面所有测试用例都具有了该tag
如果我们在测试套件目录初始化文件的Settings表设置了Force Tags,
那么该套件里面所有测试用例都具有了该tag
测试用例表里的 [tags] 配置
很简单,就是该用例的tag,
Setting 表里的Default Tags
如果我们在测试套件文件的Settings表设置了Default Tags,
那么该套件里面所有 没有[tags] 设置的测试用例 都具有了该tag。
注意测试目录 里面的__init__.robot 不支持Default Tags
如果用例有了标签,
在执行自动化的时候,我们可以这样指定执行哪些标签的测试用例
--include foo # 执行包含 标签'foo' 的用例.
--exclude foo # 执行不包含标签'foo' 的用例.
--include oneAND"web test" # 执行同时包含 标签'one','web test' 的用例. 因为有空格,所以用双引号
和下面的区别?
--include one --include "web test"
--include oneORtwo # 执行包含 标签'one'或者'two' 的用例.
--include oneNOTtwo # 执行包含 标签'one'但是不包含标签'two' 的用例.
# 执行 标签格式为 W*W 的用例.
--include w*w #比如w2w, ww, w33333w
RF执行时,可以指定用例是否是关键测试(critical)用例。
如果本次测试中有关键测试用例没有通过,那么整个测试就被视为测试不通过。
(哪怕是100个中只有一个关键用例没有通过)
反之,整个测试就视为通过。(哪怕是100个中有99个非关键用例没有通过,只有1个通过)
-------------------------------
缺省情况下,RF执行测试时,每个测试用例都被视为关键测试用例。
---------------------
我们可以通过命令参数
--critical (-c) 和 --noncritical (-n) 后面加tag 名称 来指定测试用例是否为关键测试用例。
比如:
--critical regression
指定 只有具有 regression 标签的用例才是关键用例 其它都不是
--noncritical not_ready
指定 不具有 not_ready 标签的用例是关键用例,其他用例都不是关键用例。
--critical ok* --noncritical tbd*
指定 具有 以ok开头的标签 且 没有以tbd开头的标签 的用例都是关键用例,其他用例都不是是关键用例。
----------------------
通常我们可以在关键用例中打上标签 ,比如 basic 、important,critical 表示是关键用例,这样就可以方便的直接标明用例是否为关键用例。