0

这是我们要做的事情:

  1. 通过 REST API 创建一个新的测试,测试类型为 Automated[Generic] 并确保测试定义字段按要求填充(classpath+'.'+class name)。假设此测试的测试密钥是 MYPROJ-999。

  2. 我们运行自动化测试并为 #1 中创建的相同测试生成 Junit xml report.xml。

  3. 我们使用 REST API 发布结果。

curl -H "Content-Type: multipart/form-data" -u user:pwd -F "file=@report.xml" https://jira.my.com/rest/raven/1.0/import/execution/junit ?projectKey=MYPROJ

预期结果:

MYPROJ-999 的结果应该更新为 PASS/FAILED,并且应该创建一个新的测试执行问题。不应创建新的测试。

实际结果:

API 正在创建新测试,而不是更新现有测试 MYPROJ-99。

有趣的观察是,如果我们使用 Jira UI 而不是使用 REST API 创建测试,它可以正常工作。不会创建重复的测试。

据我们所知,通过 UI 创建的测试和通过 REST API 创建的测试看起来完全一样。因此,我们无法理解为什么通过 API 创建的测试表现不同。

4

2 回答 2

0

包含唯一标识符的通用定义字段开头的空格是不正常的。请将其报告为错误 :)

于 2020-07-31T13:33:26.467 回答
0

经过大量调试,我找到了根本原因,它是如此微不足道,但却导致了大问题。不知道这是不是bug??

无论如何,事情就是这样。

当我们使用 Jira 应用 UI 创建自动 [Generic] 类型的测试或通过导入结果 API 创建测试时,测试定义字段包含 classpath+'.'+classname 值的值,但在开头有一个空格文本。

但是当我通过创建问题 api 端点创建测试并填充定义字段时,我没有在 classpath+'.'+classname 值的开头给出空格,因为我什至不知道 Jira/Xray 添加了空格在一开始的时候。

因此,我通过在 json 有效负载中的测试定义字段中留出一个空格并创建一个测试然后尝试导入相同测试的结果来进行测试,我发现没有创建重复测试。

于 2020-05-05T23:44:10.423 回答