跳转到主要内容

一个用于检查Robot Framework测试用例是否具有预期状态和日志消息的工具。

项目描述

简介

状态检查器(StatusChecker)是一个用于验证执行后的Robot Framework测试用例是否具有预期的状态和日志消息的工具。它主要适用于希望使用Robot Framework测试其库的Robot Framework测试库开发者。状态检查器1.3及更高版本与Python 2和Python 3兼容。

状态检查器项目托管在GitHub上,下载地址为PyPI

安装说明

安装状态检查器最简单的方法是使用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后面。如果测试文档包含单词FAILSKIP,则忽略SKIP,预期状态为失败

如果期望测试以某种消息通过,则必须明确将其文档中的单词PASS添加到其中,并在其后给出预期的消息。

如果消息检查应在测试设置或清理中发生,则该检查必须以SETUPTEARDOWN单词为前缀。

预期消息也可以通过在前面加上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

项目详情


下载文件

下载适用于您平台的应用程序文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分发

robotstatuschecker-3.0.1.tar.gz (7.6 kB 查看哈希值)

上传时间

构建分发

robotstatuschecker-3.0.1-py2.py3-none-any.whl (7.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面