Robot Framework(十三) 执行测试用例——创建输出
3.5创建输出
执行测试时会创建几个输出文件,并且所有这些文件都与测试结果有某种关联。本节讨论创建的输出,如何配置它们的创建位置以及如何微调其内容。
3.5.1不同的输出文件
本节介绍可以创建的不同输出文件以及如何配置它们的创建位置。使用命令行选项配置输出文件,命令行选项将有问题的输出文件的路径作为参数获取。特殊值NONE (不区分大小写)可用于禁用创建特定输出文件。
输出目录
可以使用绝对路径设置所有输出文件,在这种情况下,它们将创建到指定位置,但在其他情况下,路径被视为相对于输出目录。默认输出目录是从中开始执行的目录,但可以使用--outputdir(-d)选项进行更改。使用此选项设置的路径再次相对于执行目录,但自然也可以作为绝对路径给出。无论如何获得单个输出文件的路径,如果它不存在,则自动创建其父目录。
输出文件
输出文件包含XML格式的所有测试执行结果。日志和报告文件是基于输出文件生成的,输出文件也可以在测试执行后进行组合和后处理。
命令行选项--output(-o)确定相对于输出目录创建输出文件的路径。运行测试时,输出文件的默认名称是output.xml。
当后处理输出时,除非明确使用--output(-o)选项,否则不会创建新的输出文件 。
从Robot Framework 2.6开始,在运行具有特殊值NONE的测试时,也可以禁用输出文件的创建。在这种情况下,还会禁用除调试文件之外的其他输出文件。
日志文件
日志文件包含有关HTML格式的已执行测试用例的详细信息。它们具有分层结构,显示测试套件,测试用例和关键字详细信息。几乎每次要详细调查测试结果时都需要日志文件。即使日志文件也有统计信息,报告也可以更好地获得更高级别的概述。
命令行选项--log(-l)确定创建日志文件的位置。除非使用特殊值NONE,否则始终会创建日志文件,其默认名称为 log.html。
开始日志文件的示例
可以看到关键字详细信息的日志文件示例
报告文件
报告文件包含HTML格式的测试执行结果的概述。它们具有基于标签和执行的测试套件的统计信息,以及所有已执行测试用例的列表。生成报告和日志时,报告具有指向日志文件的链接,以便于导航到更详细的信息。从报告中很容易看到整体测试执行状态,因为如果所有关键测试都通过,其背景颜色为绿色,否则为亮红色。
命令行选项--report(-r)确定创建报告文件的位置。与日志文件类似,除非将NONE用作值,否则始终会创建报告,其默认名称为report.html。
成功执行测试的示例报告文件
测试执行失败的示例报告文件
XUnit兼容的结果文件
XUnit结果文件包含XUnit兼容XML格式的测试运行摘要。此文件可用作处理XUnit数据的工具的输入。例如,Hudson持续集成服务器内置了对此输出格式的支持,可以配置为基于此文件生成测试历史记录。
除非明确使用命令行选项--xunitfile(-x),否则不会创建XUnit输出文件 。
调试文件
调试文件是在测试执行期间写入的纯文本文件。从测试库获得的所有消息都写入它们,以及有关已启动和已结束的测试套件,测试用例和关键字的信息。调试文件可用于监视测试执行。这可以使用,例如,单独的fileviewer.py 工具,或在类UNIX系统中,只需使用tail -f命令即可完成。
除非明确使用命令行选项--debugfile(-b),否则不会创建调试文件 。
时间戳输出文件
本节中列出的所有输出文件都可以使用选项--timestampoutputs(-T)自动加上时间戳。使用此选项时,格式为YYYYMMDD-hhmmss的时间戳放在每个文件的扩展名和基本名称之间。例如,下面的示例将创建输出文件 output-20080604-163225.xml和mylog-20080604-163225.html:
pybot --timestampoutputs --log mylog.html --report NONE tests.html
设置标题
日志和报告的默认标题是通过在顶级测试套件的名称前加上测试日志或 测试报告的前缀生成的。可以使用选项--logtitle和--reporttitle分别从命令行提供自定义标题。给定标题中的下划线会自动转换为空格。
例:
pybot --logtitle Smoke_Test_Log --reporttitle Smoke_Test_Report --include smoke my_tests/
设置背景颜色
默认情况下,报告文件在所有关键测试通过时都具有绿色背景, 否则为红色背景。可以使用--reportbackground命令行选项自定义这些颜色,该选项采用以冒号分隔的两种或三种颜色作为参数:
--reportbackground blue:red
--reportbackground green:yellow:red
--reportbackground #00E:#E00
如果指定两种颜色,则将使用第一种颜色而不是默认的绿色,而使用第二种颜色而不是默认的红色。例如,这允许使用蓝色而不是绿色来使背景更容易为色盲人员分离。
如果指定三种颜色,则第一种颜色将在所有测试成功时使用,第二种颜色仅在非关键测试失败时使用,最后一次在出现严重故障时使用。因此,当非关键测试失败时,此功能允许使用单独的背景颜色,例如黄色。
指定的颜色用作body 元素的背景 CSS属性的值。该值按原样使用,可以是HTML颜色名称(例如红色),十六进制值(例如#F00或#FF0000)或RGB值(例如rgb(255,0,0))。默认的绿色和红色分别使用十六进制值#9F6和#F33指定。
3.5.2日志级别
可用的日志级别
日志文件中的消息可以具有不同的日志级别。一些消息是由Robot Framework本身编写的,但是执行的关键字也可以使用不同的级别记录信息。可用的日志级别为:
- 失败
- 关键字失败时使用。只能由Robot Framework本身使用。
- 警告
- 用于显示警告。它们也显示在日志文件的控制台和“测试执行错误”部分中,但它们不会影响测试用例状态。
- 信息
- 普通邮件的默认级别。默认情况下,低于此级别的邮件不会显示在日志文件中。
- DEBUG
- 用于调试目的。例如,用于记录内部库正在执行的操作很有用。当关键字失败时,将自动使用此级别记录显示代码中发生故障的位置的回溯。
- 跟踪
- 更详细的调试级别。使用此级别自动记录关键字参数和返回值。
设置日志级别
默认情况下,不会记录INFO级别以下的日志消息,但可以使用--loglevel(-L)选项从命令行更改此阈值 。此选项将任何可用的日志级别作为参数,该级别将成为新的阈值级别。特殊值NONE也可用于完全禁用日志记录。
从机器人框架2.5.2开始,也可以使用 --loglevel选项也当处理后的输出与 rebot。例如,这允许最初使用TRACE级别运行测试,并生成较小的日志文件,以便稍后使用INFO级别进行正常查看。默认情况下,执行期间包含的所有消息也将包含在rebot中。执行期间忽略的消息无法恢复。
更改日志级别的另一种可能性是在测试数据中使用BuiltIn关键字 Set Log Level。它采用与--loglevel选项相同的参数,并且还返回旧级别,以便稍后可以恢复,例如,在测试拆解中。
可见的日志级别
从Robot Framework 2.7.2开始,如果日志文件包含DEBUG或TRACE级别的消息, 则会在右上角显示可见的日志级别下拉列表。这允许用户从视图中删除所选级别以下的消息。这在TRACE级别运行测试时尤其有用 。
显示可见日志级别下拉列表的示例日志
默认情况下,下拉列表将设置为日志文件中的最低级别,以便显示所有消息。可以使用--loglevel选项更改默认的可见日志级别,方法是 在冒号分隔正常日志级别后提供默认值:
--loglevel DEBUG:INFO
在上面的示例中,使用级别DEBUG运行测试,但日志文件中的默认可见级别为INFO。
3.5.3拆分日志
通常,日志文件只是一个HTML文件。当测试用例的数量增加时,文件的大小会变得如此之大以至于将其打开到浏览器中是不方便的,甚至是不可能的。从Robot Framework 2.6开始,可以使用--splitlog选项将部分日志拆分为外部文件,这些文件在需要时透明地加载到浏览器中。
拆分日志的主要好处是单个日志部分非常小,即使测试数据量非常大,也可以打开和浏览日志文件。一个小缺点是日志文件占用的总体大小增加。
从技术上讲,与每个测试用例相关的测试数据将保存到与主日志文件相同的文件夹中的JavaScript文件中。这些文件具有诸如log-42.js之类的名称,其中log是主日志文件的基本名称,42是递增的索引。
注意
复制日志文件时,还需要复制所有 log - * .js文件或缺少某些信息。
3.5.4配置统计信息
有迹象表明,可用于配置和调整的内容几个命令行选项由标签统计,通过统计套房,并通过标签测试详细信息在不同的输出文件表。所有这些选项在执行测试用例和后处理输出时都有效。
配置显示套件统计信息
当执行更深层的套件结构时,显示Statistics by Suite表中的所有测试套件级别可能会使表格难以阅读。Bt默认显示所有套件,但您可以使用命令行选项--suitestatlevel来控制它,该套件将套件级别显示为参数:
--suitestatlevel 3
包括和排除标签统计信息
使用许多标记时,“ 按标记统计”表可能会变得非常拥挤。如果发生这种情况,可以使用命令行选项 --tagstatinclude和--tagstatexclude来选择要显示的标记,类似于 --include和--exclude用于选择测试用例:
--tagstatinclude some-tag --tagstatinclude another-tag
--tagstatexclude owner-*
--tagstatinclude prefix-* --tagstatexclude prefix-13
生成组合标签统计信息
命令行选项--tagstatcombine可用于生成组合来自多个标记的统计信息的聚合标记。为此选项提供参数有三种不同的方式:
- 一个标签作为简单模式
- 匹配给定模式的所有标签组合在一起。
- 由AND或&分隔的两个或多个标签
- 组合统计信息包含具有所有列出标记的测试。标签可以作为简单模式给出。
- 由NOT分隔的两个或多个标签
- 组合统计信息包含具有第一个标记但不包含任何其他标记的测试。同样在这种情况下,标签可以是图案。
以下示例说明了这些用法,下图显示了使用以下选项执行示例测试数据时生成的Statistics by Tag表的片段:
--tagstatcombine owner-*
--tagstatcombine smokeANDmytag
--tagstatcombine smokeNOTowner-janne*
组合标签统计的示例
如上例所示,默认情况下,添加的组合统计信息的名称是从给定模式生成的。在某些情况下,此名称看起来非常神秘,可以指定更具描述性的名称。此名称的图案用冒号分开它后给予(:)。下面的示例生成组合标记,以便报告和日志中显示的名称为 严格测试:
--tagstatcombine *NOTnon-critical:Critical_Tests
从标记名称创建链接
您可以使用命令行选项--tagstatlink将外部链接添加到Statistics by Tag表。格式标记中给出了此选项的参数:link:name,其中tag 指定要分配链接的标记,link是要创建的链接,name是要赋予链接的名称。
标签可以是单个标签,但更常见的是一个简单的模式 ,其中*匹配任何东西和?匹配任何单个字符。当tag是模式时,与通配符的匹配可以在链接和标题中使用,语法为%N,其中“N”是从1开始的匹配的索引。
以下示例说明了此选项的用法,下图显示了使用以下选项执行示例测试数据时生成的Statistics by Tag表的片段:
--tagstatlink mytag:http://www.google.com:Google
--tagstatlink jython-bug-*:http://bugs.jython.org/issue_%1:Jython-bugs
--tagstatlink owner-*:mailto:%1@domain.com?subject=Acceptance_Tests:Send_Mail
标记名称的链接示例
向标签添加文档
可以使用命令行选项--tagdoc为标记提供文档,该选项 采用格式标记:doc中的参数 。tag是分配文档的标记的名称,它也可以是匹配多个标记的简单模式。doc是指定的文档。文档中的下划线自动转换为空格,也可以包含HTML格式。
给定文档在“ 按标记测试详细信息”表中显示匹配标记,并在“ 按标记统计”表中显示这些标记的工具提示 。如果一个标签获得多个文档,则将它们组合在一起并用&符号分隔。
例子:
--tagdoc mytag:My_documentation
--tagdoc regression:*See*_http://info.html
--tagdoc owner-*:Original_author
3.5.5从输出中删除关键字
输出文件的大部分内容来自关键字,尤其是日志消息。在创建更高级别的报告时,根本不需要日志文件,然后关键字及其消息只会占用不必要的空间。如果日志文件包含for循环或其他多次重复某些关键字的构造,它们本身也会变得过大 。
在这些情况下,命令行选项--removekeywords可用于处理不必要的关键字。它既可以在执行测试时使用,也可以在使用rebot时使用,但在前一种情况下,关键字不会从输出文件中删除。除ALL模式外,不会删除包含警告的关键字。
该选项具有以下操作模式:
- 所有
- 无条件地从所有关键字中删除数据。
- PASSED
- 从已通过且不包含警告的测试用例中删除关键字数据。在大多数情况下,之后创建的日志文件包含足够的信息来调查可能的故障。
- 对于
- 从for循环中删除所有传递的迭代。
- WUKS
- 删除BuiltIn关键字 Wait Until Keyword Succeeds中除最后一个失败关键字之外的所有关键字。
例子:
rebot --removekeywords all output.xml
pybot --removekeywords passed --removekeywords for tests.txt
注意
在Robot Framework 2.7中添加了在执行测试以及FOR和WUKS模式时使用--removekeywords的支持。
3.5.6设置执行的开始和结束时间
当组合输出使用rebot,可以设置使用选项组合的测试套件的开始和结束时间--starttime 和--endtime分别。这很方便,因为默认情况下,组合套件没有这些值。当给出开始和结束时间时,也基于它们计算经过的时间。否则,通过将子测试套件的经过时间相加来获得经过的时间。
从Robot Framework 2.5.6开始,还可以使用上述选项在使用rebot时设置单个套件的开始和结束时间 。将这些选项与单个输出一起使用始终会影响套件的已用时间。
时间必须以YYYY-MM-DD hh:mm:ss.mil格式的时间戳给出,其中所有分隔符都是可选的,并且可以省略从毫秒到小时的部分。例如,2008-06-11 17:59:20.495相当于20080611-175920.495和 20080611175920495,并且仅仅20080611也可以。
例子:
rebot --starttime 20080611-17:59:20.495 output1.xml output2.xml
rebot --starttime 20080611-175920 --endtime 20080611-180242 *.xml
rebot --starttime 20110302-1317 --endtime 20110302-11418 myoutput.xml
3.5.7系统日志
Robot Framework有自己的纯文本系统日志,用于写入有关的信息
- 处理和跳过测试数据文件
- 导入的测试库,资源文件和变量文件
- 执行测试套件和测试用例
- 创建输出
通常,用户从不需要此信息,但在调查测试库或Robot Framework本身的问题时,它可能很有用。默认情况下不会创建系统日志,但可以通过设置环境变量ROBOT_SYSLOG_FILE来启用它,使其包含所选文件的路径。
系统日志具有与普通日志文件相同的日志级别,但不是FAIL而是具有ERROR 级别。可以使用ROBOT_SYSLOG_LEVEL环境变量更改要使用的阈值级别, 如下例所示。除控制台和普通日志文件外,还可能将意外错误和警告写入系统日志。
#!/bin/bash export ROBOT_SYSLOG_FILE=/tmp/syslog.txt
export ROBOT_SYSLOG_LEVEL=DEBUG pybot --name Syslog_example path/to/tests
Robot Framework(十三) 执行测试用例——创建输出的更多相关文章
- Robot Framework(十一) 执行测试用例——后处理输出
3.3后处理输出 在测试执行期间生成的XML输出文件可以在之后由rebot工具进行后处理,该工具是Robot Framework的组成部分.在测试执行期间生成测试报告和日志时会自动使用它,但在执行后也 ...
- Robot Framework(三)创建测试用例
2.2.1测试用例语法 基本语法 测试用例由关键字在测试用例表中构建.关键字可以从测试库或资源文件导入,也可以在测试用例文件本身的关键字表中创建. 测试用例表中的第一列包含测试用例名称.测试用例从包含 ...
- Robot Framework(四)创建测试套件
2.3.1测试用例文件 Robot Framework测试用例是使用测试用例文件中的测试用例表创建的.这样的文件会自动从它包含的所有测试用例中创建一个测试套件.可以有多少测试用例没有上限,但建议少于1 ...
- Robot Framework(七)创建用户关键字
2.6创建用户关键字 关键字表用于通过将现有关键字组合在一起来创建新的更高级别关键字.这些关键字称为用户关键字,以区别于 测试库中实现的最低级库关键字.创建用户关键字的语法与创建测试用例的语法非常接近 ...
- Robot Framework入门学习2 创建第一个测试用例
本文章部分内容引自以下网址,感谢作者的辛苦分享 http://www.cnblogs.com/fnng/p/3871712.html http://blog.csdn.net/tulituqi/art ...
- Robot Framework 三种测试用例模式
1.三种测试用例模式 关键字驱动(keyword-driver).数据驱动(data-driver).行为驱动模式(behavior-driver) 2.关键字驱动(keyword-driver) ...
- Robot Framework(十四) 扩展RobotFramework框架——创建测试库
4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...
- 【转】Robot Framework 快速入门
目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...
- Robot Framework 快速入门
Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键 ...
随机推荐
- python数据分析笔记中panda(2)
1 将手机号码分开为运营商,地区和号码段 from pandas import read_csv; df = read_csv("H:\\pythonCode\\4.6\\data.csv& ...
- Flutter实战视频-移动电商-64.会员中心_顶部头像UI布局
64.会员中心_顶部头像UI布局 会员中心的样式 member.dart 清除原来的代码生成一个基本的结构 默认返回一个scaffold脚手架工具,body里面布局使用ListView,这样不会出现纵 ...
- jQuery 刷新页面
window.location.reload();
- BlocksKit的使用
一.引言 众所周知Block已被广泛用于iOS编程.它们通常被用作可并发执行的逻辑单元的封装,或者作为事件触发的回调.Block比传统回调函数有2点优势: 允许在调用点上下文书写执行逻辑,不用分离函数 ...
- 算法学习--Day10
今天开始了新一章的学习,前面的题目虽然做了几道,但是我觉得训练量仍然太小了.不过机试确实很多题目,并且难度也有所不同,所以要针对不同的题目进行专门的练习才好.题目类型有些多,等接下来我将搜索的题目写完 ...
- OPENGL_变换与坐标系
参考:http://blog.csdn.net/kandyer/article/details/12449973 坐标系 世界坐标系:绝对坐标 物体坐标系:以物体自身为原点的坐标系 摄像机坐标系:以摄 ...
- XHTML学习笔记 part1
XHTML: 可扩展超文本标记语言 HTML语言最开始是用来描述文档的结构,如标题,段落等标记,后来HTML有增加了一些控制字体,对齐等方面的标记和属性,这样做的结果是HTML既可以用来描述文档的结构 ...
- python+unittest 搭建简易的接口测试框架
主要介绍如何使用python+unittest快速搭建一个接口测试的框架 1.安装python unittest 2.新建一个python项目ApiTest 在setUp和setDown里设置一些需 ...
- Codeforces Round #542(Div. 2) A.Be Positive
链接:https://codeforces.com/contest/1130/problem/A 题意: 给n个数,找出一个非0整数d,使所有n个数除以整数d后,数组中正数的数量>= n/2. ...
- 栈 && 教授的测试
卡特兰数:https://blog.csdn.net/wu_tongtong/article/details/78161211 https://www.luogu.org/problemnew/sho ...