Robot Framework执行结果导入Xray时测试步骤状态匹配失败求助
解决Robot Framework与Xray步骤级结果同步问题
要让Xray正确识别并同步Robot测试的每个步骤状态,核心是确保Robot的Keyword与Jira测试用例的步骤完全映射,且每个步骤的执行状态被单独记录到output.xml中。以下是具体实现方法:
1. 严格匹配Keyword与Jira步骤名称
Jira中测试步骤的名称(比如Step 1: Open Portal、Step 2: Verify Login Button)必须与Robot中定义的Keyword名称完全一致,包括空格、标点、序号,不能有任何拼写或格式差异。
示例Robot代码结构:
*** Test Cases *** TESTKEY-92 # 直接调用与Jira步骤同名的Keyword Step 1: Open Portal Step 2: Verify Login Button *** Keywords *** Step 1: Open Portal [Documentation] 对应Jira测试步骤1:打开门户 Open Browser ${PORTAL_URL} ${BROWSER_TYPE} Maximize Browser Window Step 2: Verify Login Button [Documentation] 对应Jira测试步骤2:验证登录按钮存在 Page Should Contain Element login-btn timeout=10s
2. 避免步骤嵌套调用
不要将Jira步骤的Keyword嵌套在其他自定义Keyword中。Xray会解析output.xml中的<kw>节点,如果步骤被多层嵌套,Xray无法识别到最底层的Jira对应步骤,导致步骤状态显示为TODO。
❌ 错误示例(嵌套调用):
*** Test Cases *** TESTKEY-92 Execute Login Flow *** Keywords *** Execute Login Flow Step 1: Open Portal Step 2: Verify Login Button
✅ 正确示例(直接调用步骤Keyword):
如第一部分的代码示例,测试用例直接调用与Jira步骤同名的Keyword。
3. 确保步骤执行状态被完整记录
- 不要使用
Run Keyword And Ignore Error、Run Keyword And Return Status这类掩盖步骤失败状态的关键字,除非你刻意忽略该步骤的结果。 - Robot默认会记录每个Keyword的执行状态(PASS/FAIL)到
output.xml,无需额外配置,但要确保测试执行时没有禁用日志输出。
4. 验证output.xml的结构
执行测试后,打开output.xml,找到TESTKEY-92对应的测试用例节点,确认存在两个<kw>子节点,名称分别与Jira步骤一致,且每个<kw>节点下的<status>标签正确标记了执行结果:
<testcase name="TESTKEY-92" ...> <kw name="Step 1: Open Portal" library="BuiltIn"> <status status="PASS" starttime="..." endtime="..."/> </kw> <kw name="Step 2: Verify Login Button" library="BuiltIn"> <status status="FAIL" starttime="..." endtime="..."/> </kw> </testcase>
5. 导入时确保Xray识别步骤级别结果
使用Xray导入工具(如xray-cli)时,确保命令参数正确指向对应的测试执行或测试计划,Xray会自动读取output.xml中的步骤状态并同步到Jira:
xray-test-results import --jira-url https://your-jira-domain --token YOUR_XRAY_TOKEN --file output.xml --test-execution TESTEXEC-XXX
额外排查点
- 确认Jira测试用例的步骤是结构化测试步骤(不是纯文本描述),Xray仅识别结构化的步骤条目。
- 确保Robot测试用例的名称与Jira测试用例的KEY(如
TESTKEY-92)完全一致,Xray通过这个KEY匹配对应的测试用例。
内容的提问来源于stack exchange,提问作者André Gradil
相关产品推荐
相关产品推荐

