经过时间和变量测试结果

时间:2014-09-09 23:18:01

标签: robotframework

是否可以在变量中确定经过时间和当前测试的结果?

我想要一些测试来记录他们的结果外部系统,所以理想情况下[Teardown]我想知道:

  • 当前测试的经过时间
  • 测试结果

这可能吗?

1 个答案:

答案 0 :(得分:3)

侦听器接口提供在每个关键字,测试和套件执行结束时经过的时间(以毫秒为单位)。请参阅用户指南中标题为Taking listeners into use的部分。

从机器人框架2.8.5开始,您可以在库中实现侦听器,这意味着您可以将此功能构建到测试套件中,而不是依赖于命令行选项来设置侦听器。请参阅用户指南中标题为Test libraries as listeners的部分。

实施例

以下示例显示了如何实现侦听器接口。该库打印名称,状态和已用时间,但您可以轻松调用Web服务,将数据插入数据库或将数据写入文件。

ReporterLibrary.py

class ReporterLibrary(object):
    ROBOT_LIBRARY_SCOPE = 'TEST SUITE'
    ROBOT_LISTENER_API_VERSION = 2

    def __init__(self):
        self.ROBOT_LIBRARY_LISTENER = self

    def _end_test(self, name, attrs):
        print "%s => status: %s, elapsed time: %s ms" % (name, attrs['status'], attrs['elapsedtime'])

Example.robot

*** Settings ***
| Library | ReporterLibrary.py

*** Test Cases ***
| Example of a passing test
| | sleep | 200 milliseconds
| | Pass execution | test passed

| Example of a failing test
| | sleep | 500 milliseconds
| | Fail | test failed