6附录
6.1测试数据中的所有可用设置
6.1.1设置表
Setting表用于导入测试库,资源文件和变量文件,以及定义测试套件和测试用例的元数据。它可以包含在测试用例文件和资源文件中。请注意,在资源文件中,设置表只能包含用于导入库,资源和变量的设置。
名称 | 描述 |
---|---|
图书馆 | 用于使用测试库。 |
资源 | 用于获取资源文件。 |
变量 | 用于获取可变文件。 |
文档 | 用于指定测试套件或 资源文件文档。 |
元数据 | 用于设置免费的测试套件元数据。 |
套房设置 | 用于指定套件设置。 |
拆解套房 | 用于指定套件拆卸。 |
套房前提 | Suite Setup的同义词。 |
套房后置条件 | Suite Teardown的同义词。 |
强制标签 | 用于在标记测试用例时为标记指定强制值 。 |
默认标签 | 用于在标记测试用例时指定标记的默认值 。 |
测试设置 | 用于指定默认测试设置。 |
测试拆解 | 用于指定默认测试拆卸。 |
测试前提条件 | 测试设置的同义词。 |
测试后置条件 | Test Teardown的同义词。 |
测试模板 | 用于为 测试用例指定默认模板关键字。 |
测试超时 | 用于指定默认测试用例超时。 |
注意
所有设置名称都可以选择在末尾包含冒号,例如Documentation : . 这可以使设置更容易阅读,尤其是在使用纯文本格式时。这是Robot Framework 2.5.5中的一项新功能。
6.1.2测试用例表
“测试用例”表中的设置始终特定于为其定义的测试用例。其中一些设置会覆盖“设置”表中定义的默认值。
名称 | 描述 |
---|---|
[文档] | 用于指定测试用例文档。 |
[标签] | 用于标记测试用例。 |
[建立] | 用于指定测试设置。 |
[拆除] | 用于指定测试拆卸。 |
[前提] | [设置]的同义词。 |
[后置条件] | [拆解]的同义词。 |
[模板] | 用于指定模板关键字。 |
[超时] | 用于指定测试用例超时。 |
6.1.3关键字表
关键字表中的设置特定于为其定义的用户关键字。
名称 | 描述 |
---|---|
[文档] | 用于指定用户关键字文档。 |
[参数] | 用于指定用户关键字参数。 |
[返回] | 用于指定用户关键字返回值。 |
[超时] | 用于指定用户关键字超时。 |
6.2所有命令行选项
此附录列出所有时可用的命令行选项执行测试用例与pybot或jybot,并且当 后处理输出与rebot。
- 6.2.1测试执行的命令行选项
- 6.2.2后处理输出的命令行选项
6.2.1测试执行的命令行选项
-N, --name <name> 设置顶级测试套件的名称。 -D, --doc <document> 设置顶级测试套件的文档。 -M, --metadata <name:value> 为顶级测试套件设置免费元数据。 -G, --settag <tag> 将标记设置为所有已执行的测试用例。 -t, --test <name> 按名称选择测试用例。 -s, --suite <name> 按名称选择测试套件。 -i, --include <tag> 按标签选择测试用例。 -e, --exclude <tag> 按标签选择测试用例。 -c, --critical <tag> 具有给定标记的测试被认为是关键的。 -n, --noncritical <tag> 具有给定标记的测试并不重要。 -v, --variable <name:value> 设置个别变量。 -V, --variablefile <path:args> 使用变量文件设置变量。 -d, --outputdir <dir> 定义创建输出文件的位置。 -o, --output <file> 设置生成的输出文件的路径。 -l, --log <file> 设置生成的日志文件的路径。 -r, --report <file> 设置生成的报告文件的路径。 -x, --xunitfile <file> 设置生成的XUnit兼容结果文件的路径。 -b, --debugfile <file> 一个调试文件是在执行过程中写的。 -T, --timestampoutputs 为所有输出文件添加时间戳。 --splitlog 将日志文件拆分为透明浏览器中打开的较小部分。 --logtitle <title> 为生成的测试日志设置标题。 --reporttitle <title> 为生成的测试报告设置标题。 --reportbackground <colors> 设置生成的报告的背景颜色。 -L, --loglevel <level> 设置日志记录的阈值级别。可选地,可以使用冒号(:)分隔默认的可见日志级别。 --suitestatlevel <level> 定义在输出中的 Statistics by Suite表中显示的级别数。 --tagstatinclude <tag> 仅在“ 按标记统计”表中包含这些标记。 --tagstatexclude <tag> 从“ 按标记统计”表中排除这些标记。 --tagstatcombine <tags:title> 根据标记创建组合统计信息。 --tagdoc <pattern:doc> 将文档添加到指定的标记。 --tagstatlink <pattern:link:title> 将外部链接添加到“ 按标记统计”表。 --removekeywords <all|passed|for|wuks> 从生成的日志文件中删除关键字数据。 --listener <name:args> 设置用于监视测试执行的侦听器。 --warnonskippedfiles 跳过无效文件时显示警告。 --nostatusrc 无论测试用例中的失败如何,都将返回码设置为零。错误代码正常返回。 --runemptysuite 如果顶级测试套件为空,则执行测试。 --runmode <mode> 设置此测试运行的执行模式。有效模式是ExitOnFailure,SkipTeardownOnExit, DryRun和Random:<what>。 -W, --monitorwidth <chars> 设置控制台输出的宽度。 -C, --monitorcolors <on|off|force> 指定控制台中使用的颜色。 -P, --pythonpath <path> 从导入时搜索测试库的其他位置。 -E, --escape <what:with> 转义控制台中存在问题的字符。 -A, --argumentfile <path> 用于从中读取更多参数的文本文件。 -h, --help 打印使用说明。 --version 打印版本信息。
6.2.2后处理输出的命令行选项
-N, --name <name> 设置顶级测试套件的名称。 -D, --doc <document> 设置顶级测试套件的文档。 -M, --metadata <name:value> 为顶级测试套件设置免费元数据。 -G, --settag <tag> 将标记设置为所有已处理的测试用例。 -t, --test <name> 按名称选择测试用例。 -s, --suite <name> 按名称选择测试套件。 -i, --include <tag> 按标签选择测试用例。 -e, --exclude <tag> 按标签选择测试用例。 -c, --critical <tag> 具有给定标记的测试被认为是关键的。 -n, --noncritical <tag> 具有给定标记的测试并不重要。 -d, --outputdir <dir> 定义创建输出文件的位置。 -o, --output <file> 设置生成的输出文件的路径。 -l, --log <file> 设置生成的日志文件的路径。 -r, --report <file> 设置生成的报告文件的路径。 -x, --xunitfile <file> 设置生成的XUnit兼容结果文件的路径。 -T, --timestampoutputs 为所有输出文件添加时间戳。 --splitlog 将日志文件拆分为透明浏览器中打开的较小部分。 --logtitle <title> 为生成的测试日志设置标题。 --reporttitle <title> 为生成的测试报告设置标题。 --reportbackground <colors> 设置生成的报告的背景颜色。 -L, --loglevel <level> 设置阈值级别以选择日志消息。可选地,可以使用冒号(:)分隔默认的可见日志级别。 --suitestatlevel <level> 定义在输出中的 Statistics by Suite表中显示的级别数。 --tagstatinclude <tag> 仅在“ 按标记统计”表中包含这些标记。 --tagstatexclude <tag> 从“ 按标记统计”表中排除这些标记。 --tagstatcombine <tags:title> 根据标记创建组合统计信息。 --tagdoc <pattern:doc> 将文档添加到指定的标记。 --tagstatlink <pattern:link:title> 将外部链接添加到“ 按标记统计”表。表中的输出。 --removekeywords <all|passed|for|wuks> 从生成的输出中删除关键字数据。 --starttime <timestamp> 设置创建报告时测试执行的开始时间。 --endtime <timestamp> 设置创建报告时测试执行的结束时间。 --nostatusrc 无论测试用例中的失败如何,都将返回码设置为零。错误代码正常返回。 --processemptysuite 即使顶级测试套件为空,也会处理输出文件。 -E, --escape <what:with> 转义控制台中存在问题的字符。 -A, --argumentfile <path> 用于从中读取更多参数的文本文件。 -h, --help 打印使用说明。 --version 打印版本信息。
6.3测试数据模板
在为Robot Framework 创建测试数据时可以使用这些模板。测试用例和资源文件都有模板,资源模板也可用于创建测试套件初始化文件。模板以HTML和TSV格式提供,可以自由定制。
- testcase_template.html
- HTML格式的测试用例文件模板。
- testcase_template.tsv
- TSV格式的测试用例文件模板。
- resource_template.html
- HTML格式的资源文件模板。
- resource_template.tsv
- TSV格式的资源文件模板。
- attd_template.html
- 用于在验收测试驱动开发(ATDD)样式中创建测试用例的模板。这些测试是从不需要参数的高级关键字创建的,模板已相应简化。
模板可通过此用户指南获得,它们包含在源代码分发中,也可以从http://code.google.com/p/robotframework/wiki/Templates下载 。
6.4文档格式化
可以在测试数据中使用测试套件, 测试用例和用户关键字文档以及免费测试套件元数据的简单HTML格式,以及记录测试库时。格式化与大多数wiki中使用的样式类似,它被设计为可以理解为纯文本和HTML转换之后。
- 6.4.1代表换行
- 在测试数据中手动添加换行符
- 测试数据中的自动换行符
- 测试库中的文档
- 6.4.2段落
- 6.4.3粗体和斜体
- 6.4.4 URL
- 6.4.5自定义链接和图像
- 链接文本内容
- 链接图像内容
- 带标题文字的图像
- 6.4.6表
- 6.4.7列表
- 6.4.8预先格式化的文本
- 6.4.9水平标尺
6.4.1代表换行
在测试数据中手动添加换行符
测试套件,测试用例和关键字以及测试套件元数据的文档受测试数据的一般解析规则的约束。这意味着不保留正常的换行符,将文档划分为行和段落通常需要使用文字换行符( n)。这在下面的示例中显示。
设置 | 值 | 值 |
---|---|---|
文档 | 第一行。 n n 第二段,这次 n 有多行。 |
|
元数据 | 例 | 值 n 分为两行 |
Setting | Value | Value |
---|---|---|
Documentation | First line.
Second paragraph, this time with multiple lines. |
|
Metadata | Example | Value
in two lines |
测试数据中的自动换行符
手动向长文档添加换行需要花费一些精力,额外的字符也会使测试数据中的文档稍微难以阅读。从Robot Framework 2.7开始,并不总是需要这样,因为在连续文档和元数据行之间自动插入换行符。实际上,这意味着上面的例子也可以写成如下。
设置 | 值 |
---|---|
文档 | 第一行。 |
... | |
... | 第二段,这一次 |
... | 有多条线。 |
元数据 | 例 |
... | 值 |
... | 两行 |
Setting | Value |
---|---|
Documentation | First line. |
... | |
... | Second paragraph, this time |
... | with multiple lines. |
Metadata | Example |
... | Value |
... | in two lines |
这种样式在纯文本格式中工作得特别好,其中相同的示例可以这样写:
*** Settings *** Documentation ... First line. ... ... Second paragraph, this time ... with multiple lines. Metadata ... Example ... Value ... in two lines
译:
***设置*** 文档 ... 第一行。 ... ......第二段,这一次 ......有多条线。 元数据 ......例子 ......价值 ......两行
如果一行已经以换行符结尾,或者以换行符和转义反斜杠结尾,则不会添加自动换行符。另请注意,如果文档或元数据在同一行的多个单元格中定义,则这些单元格将与空格一起链接。所有这些情况都在下面的示例中说明,其中所有测试用例最终都具有相同的两行文档。
测试用例 | 行动 | 争论 | 争论 | 争论 |
---|---|---|---|---|
例1 | [文档] | 第一行 n | 第二行 | 多个部分 |
没有操作 | ||||
例2 | [文档] | 第一行 | ||
... | 第二行 | 多个部分 | ||
没有操作 | ||||
例3 | [文档] | 第一行 n | ||
... | 第二行 | |||
... | 多个部分 | |||
没有操作 |
Test Case | Action | Argument | Argument | Argument |
---|---|---|---|---|
Example 1 | [Documentation] | First line | Second line in | multiple parts |
No Operation | ||||
Example 2 | [Documentation] | First line | ||
... | Second line in | multiple parts | ||
No Operation | ||||
Example 3 | [Documentation] | First line | ||
... | Second line in | |||
... | multiple parts | |||
No Operation |
测试库中的文档
使用库文档时,正常的换行就足够了,例如,以下关键字文档将创建与上一节中的测试套件文档相同的最终结果。
def example_keyword():
"""First line.
Second paragraph, this time
with multiple lines.
"""
pass
6.4.2段落
从Robot Framework 2.7.2开始,格式化HTML文档中的所有常规文本都表示为段落。实际上,无论是手动添加还是自动添加换行符,由单个换行符分隔的行都将组合在一个段落中。可以使用空行(即两个换行符)分隔多个段落,还可以在后续章节中讨论的表格,列表和其他特殊格式的块结束段落。
例如,以下测试套件或资源文件文档:
*** Settings *** Documentation ... First paragraph has only one line. ... ... Second paragraph, this time created ... with multiple lines.
译:
***设置*** 文档 ......第一段只有一行。 ... ......第二段,这一次创造了 ......有多条线。
将以HTML格式化为:
第一段只有一行。
第二段,这次用多行创建。
注意
在2.7.2之前处理段落是不一致的。在使用libdoc生成的文档中,行被合并到段落中,但在日志和报告中显示的文档中却没有。
6.4.3粗体和斜体
可以通过在所选单词之前和之后使用星号来创建粗体文本,例如*这是粗体*。斜体样式的工作方式类似,但使用的特殊字符是下划线,例如_italic_。也可以使用粗体斜体语法_ * bold italic * _。
单独或在单词中间的星号或下划线不会开始格式化,但允许在它们之前或之后使用标点符号。当多行形成段落时,粗体和斜体都可以跨越多行。
未格式化 | 格式化 |
---|---|
*胆大* | 胆大 |
_italic_ | 斜体 |
*粗体*然后_italic_ | 粗体,然后斜体 |
_ *粗体斜体* _,_italic_,没什么 | 粗体斜体,斜体,没什么 |
这是 多个 n 行* 上的*粗体 n 。 |
这是多行的粗体。 |
Unformatted | Formatted |
---|---|
*bold* | bold |
_italic_ | italic |
*bold* and then _italic_ | bold and then italic |
_*bold italic*_, _italic_, nothing | bold italic, italic, nothing |
This is *bold
on multiple lines*. |
This is bold on multiple lines. |
6.4.4 URL
所有看起来像URL的字符串都会自动转换为可点击的链接。此外,以.jpg,.jpeg,.png,.gif或 .bmp(不区分大小写)结尾的网址 会自动创建图片。例如,像http://example.com这样的URL 会转换为链接, http:///host/image.jpg和file:///path/chart.png会 转换为图像。
将URL自动转换为链接将应用于日志和报告中的所有数据,但创建映像仅针对测试套件,测试用例和关键字文档以及测试套件元数据。
6.4.5自定义链接和图像
从Robot Framework 2.7开始,可以使用特殊语法[link | content]创建自定义链接和嵌入图像。这将创建链接或图像,具体取决于链接和内容图像。如果它们具有与URL特殊相同的图像扩展名,则它们被视为图像。在所有情况下,周围的方括号和部件之间的管道特性是强制性的。
链接文本内容
如果链接和内容都不是图像,则最终结果是普通链接,其中链接是链接目标,内容 是可见文本:
[file.html|this file] -> <a href="file.html">this file</a> [http://host|that host] -> <a href="http://host">that host</a>
链接图像内容
如果内容是图像,则会获得链接内容为图像的链接。链接目标是通过链接创建的,它可以是文本或图像:
[robot.html|robot.png] -> <a href="robot.html"><img src="robot.png"></a> [image.jpg|thumb.jpg] -> <a href="image.jpg"><img src="thumb.jpg"></a>
带标题文字的图像
如果链接是图像但内容不是,则语法会创建一个图像,其中内容是鼠标悬停在图像上时显示的标题文本:
[robot.jpeg|Robot rocks!] -> <img src="robot.jpeg" title="Robot rocks!">
6.4.6表
使用管道字符创建表,其中包含空格作为单元格边界,可能自动添加的换行符作为行分隔符:
| * A * | * B * | * C * | | _1_ | 你好| 世界| | _2_ | 嗨|
创建的表始终具有细边框,文本左对齐。使用粗体和斜体的格式也可以在表格单元格中使用,因此可以创建标题。自动添加空单元格以使行长度相等。例如,上面的示例将在HTML中格式如下:
A | B | C |
1 | 你好 | 世界 |
2 | 你好 |
6.4.7列表
通过使用连字符和空格(' - ')开始一行来创建列表。不以“ - ”开头的空行或行结束列表:
Example: - a list item - a second list item This is outside the list.
译:
例: - 列表项 - 第二个清单项目 这不在列表中。
上面的文档在HTML中格式如下:
例:
- 列表项
- 第二个列表项
这不在列表中。
注意
2.7.2中添加了对格式列表的支持。在此之前,相同的语法阻止了libdoc将行组合成段落,因此最终结果是相似的。
6.4.8预先格式化的文本
从Robot Framework 2.7开始,可以在文档中嵌入预格式化文本块。通过以'|开头的行创建预格式化块 ',除了空行之外,管道字符后必须有一个空格。首发'| '序列将从生成的HTML中删除,但保留所有其他空格。
在以下文档中,两个中间行在转换为HTML时形成预格式化的块:
Doc before block: | inside block | some additional whitespace After block.
译:
块前的文件: | 内部块 | 一些额外的空白 阻止之后。
上面的文档格式如下:
Doc before block:
inside block some additional whitespace
After block.
译:
块前的文件:
内部块 一些额外的空白
阻止之后。
6.4.9水平标尺
水平标尺(<hr>标签)可以将较大的部分彼此分开,并且可以通过在一条线上单独使用三个或更多个连字符来创建它们:
这里有一些文字。 --- 更多文字......
上面的文档格式如下:
这里有一些文字。
更多文字......
6.5时间格式
Robot Framework有自己的时间格式,由几个关键字(例如Sleep和Wait Until Keyword Succeeds)以及测试用例和用户关键字超时使用。这种格式既易于使用又易于理解。
6.5.1时间为数字
时间总是以普通数字给出,在这种情况下,它被解释为秒。整数和浮点数都可以工作,并且可以使用实数或包含数值的字符串。例如,在计算实际时间值时,此格式很有用。
6.5.2时间为文本
将时间表示为文本意味着使用诸如2分42秒的格式,这通常比仅将值设置为秒更容易理解。例如,不容易理解时间4200以秒为单位,但是1小时10分钟立即清楚。
这种格式的基本思想是先输入一个数字,然后输入一个文本,指明该数字代表的时间。数字可以是整数或浮点数,整个格式是大小写和空间不敏感的,可用的说明符文本是:
- 天,天,d
- 小时,小时,小时
- 分钟,分钟,分钟,分钟,米
- 秒,秒,秒,秒,秒
- 毫秒,毫秒,毫秒,毫秒
例子:
1分30秒 1.5分钟 90秒 1天2小时3分4秒5毫秒 1d 2h 3m 4s 5ms
6.6内部API
从Robot Framework 2.7开始,API文档在优秀的Read the Docs服务中单独托管。如果您不确定如何使用某些API或使用它们向前兼容,请将问题发送到邮件列表。