Robot Framework Linux命令行

因为最近正准备把自动化执行托管到Jenkins下,所以会用到robot的命令行。看了一下,打算简单翻译一下pybot --help中的命令,整理成文档并附上例子。

命令行的语法:pybot|jybot|ipybot [options] data_sources

1.参数中若带星号表示可以赋多个值

2.文章介绍的所有命令都属于 [options]的范畴,所以无论写多少个选项记得在最后带上要执行的源

下面先看一下示例的目录结构和测试文档的内容。

现在开始开始逐个讲解。


 

-N –name  name

设置顶层测试套件的名称(在名称中的下划线被转换为空格),默认名称是被执行的数据源的名称。


-D –doc documentation

设置顶层测试套件的文档。文档中的下划线被转换为空格,它还可以包含简单的HTML格式(如*粗体* 和HTTP:/网址/)


-M –metadata name:value *

设置顶层套件的元数据。在名称/值中的下划线被转换为空格。值可以包含的HTML格式和doc命令中描述的一样。


-G --settag tag *

对所有已执行的用例设置标签,可以设置多个。但不会修改用例中实际的标签,仅本次有效。


 -t --test name *

根据用例名选择要执行的用例,并且对大小写不敏感,可以使用通配符“*”和“?”匹配任意字符。如果使用“*”和“?”


-s --suite name *

通过名字选择要执行的测试用例集合. 当这个选项和

--test, --include 或—exclude一起使用时, 只有同时符合了所有条件的用例集合才会被选中执行。--suite和—test一样可以使用通配符,并且还能用“.”来表示父级。


 -i --include tag *

根据标签来选择执行的用例. 和 --test的用法差不多,它对查找的内容也不区分大小写,也可以使用通配符。并且标签名之间还可以包含`AND`, `OR`,和`NOT。


-e --exclude tag *       

根据标签选择不执行的用例. 即便用--exclude的同时又用了—include,并且exclude的内容也符合include的标签规则,也不会执行这些用例。简而言之—exclude比—include优先级高. –exclude的具体使用格式和—include相似。


-R --rerunfailed output

根据output中的执行的失败记录,选择需要执行的用例。具体使用和 --test差不多。还有个--runfailed output作用是一样的,但从robot 2.8.4之后就不建议用了。

首先我们修改第一个测试用例使它出错

然后我们运行这个测试用例使它出错

之后看一下我们robot的版本号

 

我们叛逆的试用一下老版本的--runfailed,也可以执行,但报了一行警告:[ WARN ] Option --runfailed is deprecated and will be removed in the future. Use --rerunfailed instead.

 

我们再用一下推荐的—rerunfailed,并没有警告。

 

那么如果output中没有错误还仍然执行这个命令会怎么样呢?答案是会报错[ ERROR ] Collecting failed tests from 'output.xml' failed: All tests passed.因为没有失败的用例。

 


-c --critical tag *

将一些含有给定标签的用例当成是核心用例,仅对当前执行的用例做critical统计。如果没有哪个标签被指定为critical则所执行用例都是核心用例。参数具体格式可以参见—include。

 


-n --noncritical tag * 

将一些含有给定标签的用例当成是非核心用例,仅对当前执行的用例做critical统计用。


 

-v --variable name:value *

在测试数据中设置变量,只支持值是字符串的scalar变量,并且变量名不需要用`${}`包裹。如何使用特殊字符请参见—escape,更强大的变量设置机制参考—variablefile。

 

我们先改一下测试用例

试着把有初始值和无初始值的两个变量都赋值

结果成功给两个变量赋值

如果没有初始值的变量在执行时候又没有赋值则会报错


 

-V --variablefile path * 

可以把一个python或YAML文件中的变量和值传入测试用例。如果有需要传入文件的参数可以在文件名后用冒号或分号分割。以python文件environment.py为例,可以在其中写一个函数get_variables用来接收传入的参数,并根据这个参数选择返回test环境的参数还是dev环境的参数。

我们再修改一下测试用例,把一些参数名改为environment.py中的参数名。

执行测试用例,给定参数是test

看到variablesTest中的参数被使用而dev中的参数未被使用


 -d --outputdir dir 

设定输出文件路径,默认的路径是测试用例执行的文件夹下。给定的dir可以是相对路径也可以是绝对路径。

我们让运行出错,执行完毕我们在/home下找到新的输出文件,查看report是有失败用例的,而/home/robotTest下的输出文件还是刚才全部正确时候生成的。


 -o --output file 

将本次测试执行之后的结果新生成一个xml文件,默认是生成output.xml,当用这条指令生成了新的xml文件时output.xml就不再生成了。如果使用NONE作为参数则log.html和report.html也不会生成了。

因为xml文件没有了,而另外两个html文件是基于它生成的,所以会报一个错[ ERROR ] Log file is not created if output.xml is disabled.但用例可以执行。


 -l --log file 

将本次测试执行之后的log.html新成一个html文件,默认是生成log.html,同样也可以传入NONE参数不生成log.html文件,此时output.xml和report.html是可以正常生成的。


 -x --xunit file

执行的时候不加这个选项就不会生成单元测试结果xunit.xml

还有个--xunitskipnoncritical 可以和--noncritical 、--xunit 一起配合使用,比如下面就是生成一个名字是xunit的单元测试xml格式文档,并且将文档里的标签为tag1的用例过滤出去。


 -b --debugfile file

执行的时候不加这个选项就不会生成debug文件,选项后跟的参数为文件名


 

 -T –timestampoutputs

当使用这个选项时时间戳会以`YYYYMMDD-hhmmss`的形式添加到生成的结果文件中,位置在它们自己基础名字和文件扩展名之间。新生成的带时间戳的文件并不会覆盖之前的文件。


 

--splitlog

分割log日志,当log.html特别大的时候在浏览器里打开将会比较慢,所以用这个选项将log日志拆分,但它对查看log.html的人来说是透明的,但实际上此时log.html需要配合拆分的小日志才能显示。

执行的时候看起来没什么变化。

不过看一下生成的文件就知道了


--logtitle title

默认的log.html展现的title是执行的测试集合名称+Test Log,用了这个选项之后就能改变title名称,注意report.html的title没有变化哦。


 

--reporttitle

修改report.html的title,详细信息参见—logtitle。


 --reportbackground colors

修改report报告的颜色,参数可以是两个颜色也可以是三个颜色,颜色之间用冒号分隔。

--reportbackground blue:red

参数为两个值时,用例全部正确使用第一种颜色,其余情况则使用第二种颜色,官网说这是方便红绿色盲修改默认的颜色配置..

  --reportbackground green:yellow:red

当参数为三个值时,用例全部正确使用第一种颜色,非关键用例错误使用第二种颜色,关键用例错误时使用第三种颜色


-L --loglevel level

设置log显示的错误级别,可以使用的级别有TRACE, DEBUG, INFO (默认), WARN, NONE (没有log日志),可以用一个参数显示该界别更高级的错误,也可以用两个参数选择一个错误级别区间。当使用DEBUG或TRACE级时,在浏览器中会看到log日志右上角显示了一个log level下拉单。

 


 

--suitestatlevel level

控制在Statistics by Suite一栏中显示多少层,默认是有多少层测试集就显示多少层。

我们先试试--suitestatlevel 1,在此之前我们把测试用例多套几层文件夹,方便演示。

再试试--suitestatlevel 3


 

--tagstatinclude tag *

根据指定表现在statistics by tag栏中显示标签列表,默认显示全部标签

 

还有一些选项,稍后补充。

如果嫌弃pybot –help里写的太简约也可以看官网文档http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

posted @ 2016-08-24 12:56  测试妹子  阅读(2195)  评论(0)    收藏  举报