一个用于检查Robot Framework测试用例是否具有预期状态和日志消息的工具。
项目描述
简介
状态检查器(StatusChecker)是一个用于验证执行后的Robot Framework测试用例是否具有预期的状态和日志消息的工具。它主要适用于希望使用Robot Framework测试其库的Robot Framework测试库开发者。状态检查器1.3及更高版本与Python 2和Python 3兼容。
安装说明
安装状态检查器最简单的方法是使用pip
pip install robotstatuschecker
或者,您可以通过从GitHub克隆项目或从PyPI下载源代码并提取它来获取代码。之后,您可以使用以下命令安装工具
python setup.py install
使用
从命令行
python -m robotstatuschecker infile [outfile]
通过程序化方式
from robotstatuschecker import process_output
process_output('infile.xml', 'outfile.xml')
如果没有指定输出文件,则直接编辑输入文件。
定义预期的测试状态
默认情况下,所有测试用例都期望通过并且没有消息。将预期状态更改为失败是通过在测试用例文档中某个地方出现单词FAIL(大写)来完成的。预期的错误消息必须随后跟在FAIL标记之后。
对于robotframework版本4,您也可以通过在测试用例文档中添加单词SKIP来将预期状态更改为跳过。与Fail一样,预期的跳过消息必须跟在单词SKIP后面。如果测试文档包含单词FAIL和SKIP,则忽略SKIP,预期状态为失败。
如果期望测试以某种消息通过,则必须明确将其文档中的单词PASS添加到其中,并在其后给出预期的消息。
如果消息检查应在测试设置或清理中发生,则该检查必须以SETUP或TEARDOWN单词为前缀。
预期消息也可以通过在前面加上REGEXP:来指定为正则表达式。指定的正则表达式必须完全匹配错误消息。在状态、消息和可能的正则表达式前缀之间留有空格是可选的。
使用正则表达式的另一种选择是使用glob模式,其中*匹配任何内容(包括换行符)和?匹配任何单个字符。这可以通过从预期消息开始以GLOB:来完成。
最后,通过在预期消息前面加上STARTS:,可以测试消息是否以某些内容开始。
以下示例说明了定义测试状态和消息的不同方法
*** Test Cases ***
Simple failure
[Documentation] FAIL Expected error message
Steps
Check in test setup is done by SETUP marker
[Documentation] LOG SETUP This first log message in test setup
[Setup] Test specific setup
Steps
Exclude documentation before marker
[Documentation] This text is ignored FAIL Expected error message
Steps
Regexp example
[Documentation] FAIL REGEXP: (IOError|OSError): .*
Steps
Glob example
[Documentation] FAIL GLOB: ??Error: *
Steps
Start example
[Documentation] FAIL STARTS: IOError:
Steps
Passing without message
Steps
Passing with message
[Documentation] PASS Expected message
Steps
定义预期的日志消息
预期的关键字日志消息也可以使用类似于以下语法在测试用例文档中定义
LOG x.y:z LEVEL Actual message
冒号之前的部分指定要检查的关键字。例如,1表示第一个关键字,1.2是第一个关键字的第二个子关键字,依此类推。
冒号之后的部分指定消息。例如,1:2表示第一个关键字的第二个消息,1.2:3是第一个关键字的第二个子关键字的第三个消息。消息索引是可选的,默认为1。消息索引也支持通配符*。例如,1:*匹配第一个关键字的任何消息。
消息级别在真实消息之前指定,可以是任何有效的日志级别的大写字母。如果没有指定级别,则默认为 INFO。从 1.4 版本开始,也支持 ERROR 级别。消息级别还支持通配符 ANY,它将匹配所有日志级别。
在期望的日志消息和实际的日志消息中,都会忽略可能的起始和结束空白字符。
此语法可以多次使用以测试多个消息。它还可以与使用 FAIL 指定的期望错误消息一起使用,但在此情况下,FAIL 和期望的错误必须首先指定。
也可以将消息作为正则表达式、glob 模式或仅提供消息的开始部分。这通过在消息前分别加上 REGEXP:、GLOB: 或 STARTS: 来完成,就像在 定义期望的测试状态 时一样。
最后,为了检查关键字没有特定的消息,可以在消息的位置使用 NONE。
*** Test cases ***
Simple example
[Documentation] LOG 1 Hello, world!
Steps
Nested keywords
[Documentation] LOG 2.1 1st child of 2nd kw
Steps
Message index
[Documentation] LOG 2:2 2nd msg of 2nd kw
Steps
Nested and index
[Documentation] LOG 3.1:2 2nd msg of 3rd kw's 1st child
Steps
Log levels
[Documentation] LOG 2 DEBUG Debug-level message
... LOG 1.2:3 WARN Warning
Steps
Multiple messages
[Documentation] LOG 1 First tested message
... LOG 1.2 Second tested message
... LOG 2.2.1 DEBUG Third tested message
Steps
Status and log
[Documentation] FAIL Expected error message
... LOG 1.2 Expected log message
Steps
Regexp message
[Documentation] LOG 1 REGEXP: (Hello|Hi) world!
Steps
Glob message
[Documentation] LOG 1 GLOB: * world!
Steps
Start of the message
[Documentation] LOG 1 STARTS: Hello w
Steps
No message
[Documentation] LOG 1:1 Test that we have only 1 msg
... LOG 1:2 NONE
Steps
Count Messages
[Documentation] LOG 4 COUNT: 2 # Fourth keyword should have excatly 2 messages.
Steps
项目详情
下载文件
下载适用于您平台的应用程序文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
构建分发
哈希值 for robotstatuschecker-3.0.1-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eeebc1bde9638076d97a47e69832ca6fbfc0c1d5502993172fe1203f506beacd |
|
MD5 | fc4fc2babd93f0fb7d78ce19eba57fd6 |
|
BLAKE2b-256 | a3acd16430ce9077fe1351c68ff4cd3591a72eb93261ebbcdb9185d4210ea5b4 |