由于卷曲,将黄瓜结果导入 Jira/Xray
Import cucumber results to Jira/Xray due the curl
对于导入结果,我使用 curl
var util = require('util');
var exec = require('child_process').exec;
var command = 'curl -u username:password -F info=@cypress/support/xray-json/issue-data.json -F result=@cypress/cucumber-json/test-results.json https://project.atlassian.net/rest/raven/1.0/import/execution/cucumber'
child = exec(command, function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
但也收到以下错误
如果您在 Jira Cloud 上使用 Xray...
在 bash 脚本中使用 curl
执行此请求的示例如下:
# the followin URL corresponds Xray Cloud domain that provides multiple endpoints, for authenticating and other operations
BASE_URL=https://xray.cloud.getxray.app
token=$(curl -H "Content-Type: application/json" -X POST --data @"cloud_auth.json" "$BASE_URL/api/v2/authenticate"| tr -d '"')
curl -H "Content-Type: application/json" -X POST -H "Authorization: Bearer $token" --data @"report.json" "$BASE_URL/api/v2/import/execution/cucumber"
在前面的脚本中,我们可以看到使用了两个端点:一个用于身份验证,另一个用于导入结果:
- https://xray.cloud.getxray.app/api/v2/authenticate
- https://xray.cloud.getxray.app/api/v2/import/execution/cucumber
这些端点来自Xray云本身;不是来自吉拉。它们不是特定于 Jira 实例的;他们没有改变。
上面用的cloud_auth.json,内容是这样的:
{ "client_id": "DA2258616A594400000000","client_secret": "5bae1aa5b49e5d263781da54ba0000000000000000000" }
您需要从 Xray 全局设置中配置的 API 键获取 client_id 和 client_secret。
一般来说,
- 您需要获取令牌,方法是使用您可以在 Xray 管理设置中找到的客户端 ID 和客户端密码进行身份验证请求,在 API 密钥下(您不能使用基本身份验证,也不能使用 Jira证书)。身份验证端点是 https://xray.cloud.getxray.app/api/v2/authenticate
- 然后您可以使用该令牌向 Xray Cloud 发出 HTTP Post 请求;然而,正确的 API 端点是 https://xray.cloud.getxray.app/api/v2/import/execution/cucumber
请注意,前一个端点是“标准端点”,或者换句话说,是最简单易用的端点。还有另一个端点,称为多部分。语法不同。你可能会在这里看到一个example。
您可能会找到有关 Xray Cloud REST API 端点 here 的更多信息(目前该站点似乎有一些负载)。
对于导入结果,我使用 curl
var util = require('util');
var exec = require('child_process').exec;
var command = 'curl -u username:password -F info=@cypress/support/xray-json/issue-data.json -F result=@cypress/cucumber-json/test-results.json https://project.atlassian.net/rest/raven/1.0/import/execution/cucumber'
child = exec(command, function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
但也收到以下错误
如果您在 Jira Cloud 上使用 Xray...
在 bash 脚本中使用 curl
执行此请求的示例如下:
# the followin URL corresponds Xray Cloud domain that provides multiple endpoints, for authenticating and other operations
BASE_URL=https://xray.cloud.getxray.app
token=$(curl -H "Content-Type: application/json" -X POST --data @"cloud_auth.json" "$BASE_URL/api/v2/authenticate"| tr -d '"')
curl -H "Content-Type: application/json" -X POST -H "Authorization: Bearer $token" --data @"report.json" "$BASE_URL/api/v2/import/execution/cucumber"
在前面的脚本中,我们可以看到使用了两个端点:一个用于身份验证,另一个用于导入结果:
- https://xray.cloud.getxray.app/api/v2/authenticate
- https://xray.cloud.getxray.app/api/v2/import/execution/cucumber
这些端点来自Xray云本身;不是来自吉拉。它们不是特定于 Jira 实例的;他们没有改变。
上面用的cloud_auth.json,内容是这样的:
{ "client_id": "DA2258616A594400000000","client_secret": "5bae1aa5b49e5d263781da54ba0000000000000000000" }
您需要从 Xray 全局设置中配置的 API 键获取 client_id 和 client_secret。
一般来说,
- 您需要获取令牌,方法是使用您可以在 Xray 管理设置中找到的客户端 ID 和客户端密码进行身份验证请求,在 API 密钥下(您不能使用基本身份验证,也不能使用 Jira证书)。身份验证端点是 https://xray.cloud.getxray.app/api/v2/authenticate
- 然后您可以使用该令牌向 Xray Cloud 发出 HTTP Post 请求;然而,正确的 API 端点是 https://xray.cloud.getxray.app/api/v2/import/execution/cucumber
请注意,前一个端点是“标准端点”,或者换句话说,是最简单易用的端点。还有另一个端点,称为多部分。语法不同。你可能会在这里看到一个example。
您可能会找到有关 Xray Cloud REST API 端点 here 的更多信息(目前该站点似乎有一些负载)。