机器人框架API - 如何获取套件及其测试用例结果



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

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

我想解析输出.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 中更新结果的套件文件无关。

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

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

test.parent

或者我自己想出来的:

test.longname

它给出这样的输出:

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

此处记录了它。

最新更新