【问题标题】:Robot Framework API - how to get suite and its test cases resultsRobot Framework API - 如何获取套件及其测试用例结果
【发布时间】:2020-10-07 16:50:51
【问题描述】:

我有一个测试套件目录,其中包含带有一个或多个测试用例的测试套件文件。假设它看起来像这样:

TestSuite
  Test-1
    Step 1
    Step 2
  Test-2
    Step 1
  Test-3
    Step 1
    Step 2
    Step 3

我想解析 output.xml 以获得这样的结果:

Test-1 | PASS
Test-1 | Step 1 | PASS
Test-1 | Step 2 | PASS
Test-2 | PASS
Test-2 | Step 1 | PASS
Test-3 | PASS
Test-3 | Step 1 | PASS
Test-3 | Step 2 | PASS
Test-3 | Step 3 | PASS

到目前为止,我已经设法使用此代码仅获取套件文件名称和结果:

from robot.api import ExecutionResult, SuiteVisitor

class PrintSuiteInfo(SuiteVisitor):

    def visit_suite(self, suite):
        print('{} | {}'.format(suite.name, suite.status))

result = ExecutionResult('output.xml')
result.suite.suites.visit(PrintSuiteInfo())

给出这个输出:

Test-1 | PASS
Test-2 | PASS
Test-3 | PASS

我可以使用以下代码获取测试用例名称和结果:

from robot.api import ExecutionResult, ResultVisitor

class PrintTestInfo(ResultVisitor):

    def visit_test(self, test):
        print('{} | {}'.format(test.name, test.status))

result = ExecutionResult('output.xml')
result.visit(PrintTestInfo())

但输出是:

Step 1 | PASS
Step 2 | PASS
Step 1 | PASS
Step 1 | PASS
Step 2 | PASS
Step 3 | PASS

因此与我需要在 Jira 中更新结果的套件文件无关。

我想到的唯一一件事就是在每个测试用例名称中包含套件文件名,但我想了解更多关于 robots.api 的信息。我多次查看the documentation,但现在对我来说还不够清楚。

【问题讨论】:

    标签: automated-tests robotframework


    【解决方案1】:

    我的一位同事帮助我解决了这个问题。我缺少的是:

    test.parent
    

    或者我自己想出来的一个:

    test.longname
    

    输出如下:

    TestSuite.Test-1.Step 1
    TestSuite.Test-1.Step 2
    ...
    

    记录在案here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2014-09-20
      • 2014-05-08
      • 2018-12-10
      • 2022-12-29
      • 1970-01-01
      相关资源
      最近更新 更多