0

我正在尝试将 xml 报告导入到 Jira xRay - 到测试执行项目。

我可以找到的文档引用了 client_id 和 client_secret,它们应该由 Create API key 生成。创建 API 密钥只生成一个字符串,一个令牌。

因此,我无法弄清楚如何仅使用令牌来提交 xml 报告。

例如,这个命令:

curl -H "Content-Type: application/json" -X POST --data @"cloud_auth.json" https://xray.cloud.getxray.app/api/v2/authenticate

我不能使用它,因为它需要client_id 和client_secret。此外,端点本身返回

Cannot GET /api/v2/authenticate

.

使用此命令:

curl -H "Content-Type: text/xml" -X POST -H "Authorization: Bearer $token" --data @"data.xml" https://xray.cloud.getxray.app/api/v1/import /执行/junit?testExecKey=XNP-23

来自:https ://docs.getxray.app/display/XRAYCLOUD/Import+Execution+Results+-+REST#ImportExecutionResultsREST-JUnitXMLresults

导致 "{"error":"Invalid JWT: JsonWebTokenError: jwt malformed"}"

.

请问有人可以帮忙吗?

4

1 回答 1

1

首先,您需要澄清您是在 Jira 服务器/数据中心还是 Jira Cloud 上使用 Xray,因为它们是不同的产品,并且 API 略有不同;除了 Jira Cloud 和 Jira 服务器/数据中心也是不同的产品。例如,要找出答案,您可以询问您的 Jira 管理员。

如果您使用的是 Xray Cloud,那么这是文档站点。在这种情况下,为了提交 JUnit XML 报告,您需要使用您在Xray API 密钥部分获得的客户端 ID 和客户端密码进行身份验证。身份验证请求在此处进行了详细说明这将返回一个令牌,您将在第二个请求中使用该令牌。第二个请求是 HTTP POST,如此所述,您需要传递之前获得的令牌。主要的 REST API 文档站点就是这个

如果您在 Jira 服务器/数据中心上使用 Xray,那么这是正确的文档站点。在 Xray 服务器中,认证机制由 Jira 自己提供。您可以使用基本身份验证或个人访问令牌(如果您的 Jira >= 8.14)。这在专用于其 REST API的 Xray 服务器/数据中心页面上有详细说明。选择要使用的身份验证机制后,您只需要发出 HTTP POST 请求,详见此处

有一个开源 GitHub 项目,其中包含一些代码片段,适用于 Xray 服务器/数据中心和云,使用不同的测试自动化报告格式和不同的身份验证机制。

于 2021-11-02T18:34:22.423 回答