用例执行
Robot Framework 的命令格式如下:
robot [options] data_sources
options 是 RF命令的选项, 可以为空
常用options :
--pythonpath(-P) 指定python模块搜索路径
--name 指定本次测试名称
--test(-t) 指定执行的测试用例名称
--suite(-s) 指定测试套件
--output(-o) file(xml文件) 指定文件输出的文件名
--outputdir(-d) 目录 执行文件输出目录
--variable(-v) <name:value> 设置运行时的变量
--varialbefile(-V) <path:args> 设置运行时的变量(从文件读取)
--rerunfailed(-R) <outputxml_file> 设置重新运行失败的用例
--rerunfailedsuites(-S) <outputxml_file> 设置重新运行失败的用例套件
-A 参数文件 指定参数文件
--critical (-c) 指定关键测试用例
--noncritical (-n) 指定不为关键测试用例
--include(-i) foo # 执行包含 标签'foo' 的用例.
--exclude(-e) foo # 执行不包含标签'foo' 的用例
data_sources 则是 要执行的测试套件文件或者目录的路径。可以是绝对路径,也可以是相对路径,相对与当前shell 的工作目录。
robot tests.robot
robot path/to/my_tests/
robot c:\robot\tests.robot
如果指定的是测试套件文件,则执行该文件中所有的测试用例。
如果指定的是测试套件目录,则递归执行该目录下包含的所有的子目录里面所有测试套件文件里面的用例。
当然我们也可以指定多个要执行的测试套件文件、目录,甚至用通配符来表示多个测试,如下所示:
robot my_tests.robot your_tests.robot
robot --name Example path/to/tests/pattern_*.robot
RF认为本次测试的名字就是data_sources参数,--name选项来指定本次测试名称
根据测试用例名称选择用例
我们可以通过 --test --suite 来指定执行哪些用例或者套件,而且还支持用通配符的方式。
--test Example # 执行名为example的用例
--test mytest --test yourtest # 执行名为mytest和 yourtest的用例
--test example* # 执行名字以example开头的用例
--suite mysuite # 执行 名为mysuite的套件
robot -P . --suite 功能1 tc
指定多个测试套件
robot -P . --suite t1 --test case2 tc
参数文件
通常,我们可以在用例后面加上测试管理系统的用例id, 就可以根据用例ID,来选择用例了
如果我们得到的用例清单 如下
tc00001
tc00002
tc00003
tc00004
tc00005
我们就可以这样执行
robot --pythonpath . --test *tc00001 --test *tc00002 --test *tc00003 --test *tc00004 --test *tc00005 t1.robot
如果有的时候,个数太多,参数岂非太长了?
可以使用参数文件
robot -A argfilename
参数文件:--pythonpath .
--name 回归测试
--test tc0001
--test tc0002
tc
用例标签
打Tag方式
1、Setting 表里的Force Tags
如果我们在测试套件文件的Settings表设置了Force Tags, 那么该套件里面所有测试用例都具有了该tag
如果我们在测试套件目录初始化文件的Settings表设置了Force Tags,那么该套件里面所有测试用例都具有了该tag
2、测试用例表里的 [tags] 配置
3、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 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 名称 来指定测试用例是否为关键测试用例。