如何使用 Xray Rest API 将测试执行添加到测试计划?

我正在尝试使用Xray Rest APIAxios将测试执行添加到测试计划中。我已经创建了一个 API 密钥并成功进行了身份验证,如下所示:

const axios = require('axios');

const { argv } = require('yargs');


const { clientId, clientSecret } = argv;


const headers = {

  Accept: 'application/json',

  'Content-Type': 'application/json',

};


const authenticateXray = async () => {

  await axios({

    method: 'post',

    url: `https://xray.cloud.xpand-it.com/api/v2/authenticate`,

    headers,

    data: {

      client_id: clientId, // my created client id goes here

      client_secret: clientSecret, // my created client secret goes here

    },

  })

    .then(res => console.log(`Xray authentication response status was: ${res.status}`)) // 200!

    .catch(e => {

      throw new Error(e.response.data.error);

    });

};

然后,我拨打了电话并传递了param之前在创建Test Plan&时收集的一些值Test Execution,如下所示:


await axios({

    method: 'posts',

    url: `https://xray.cloud.xpand-it.com/api/internal/testplan/${createdTestPlan.data.id}/addTestExecs`,

    data: {

      0: createdTestExecIssue.data.id,

    },

});

但是,我收到此错误:(node:46352) UnhandledPromiseRejectionWarning: Error: Request failed with status code 400。我能够使用 Jira Rest API 中的另一个端点链接到Test Execution,Test Plan但我希望添加它,请检查下面的屏幕截图以供参考。

https://img1.sycdn.imooc.com/6550de470001ef2f06540440.jpg

沧海一幻觉
浏览 139回答 2
2回答

茅侃侃

您可以使用 graphQL api 执行此操作,只需替换 YourTestPlanID 和 yourTestExecutionId 即可。const response =  await axios({    method: 'post',    url:    'https://xray.cloud.xpand-it.com/api/v1/graphql',    data:   {       query:         `mutation {          addTestExecutionsToTestPlan(            issueId: "YourTestPlanID",            testExecIssueIds: ["yourTestExecutionId"]) {                addedTestExecutions                warning            }        }`    },    headers: {         Authorization:  `Bearer TOKEN obtained using the authentication api`,        'Content-Type': 'application/json' }});

德玛西亚99

我能够通过data像这样传递不同的内容来解决这个问题:await axios({    ...    ...    data: [`${testExecutionId}`],});&X-acpt像这样传递键/值对Request Header:'X-acpt': `encodedCharaterGoesHere-YouNeedToretrievUsingNetworkTabInChrome`,我的请求最终是这样的:await axios({    method: 'post',    url: `https://xray.cloud.xpand-it.com/api/internal/testplan/${testPlanId}/addTestExecs`,    headers: {      Accept: 'application/json',      'Content-Type': 'application/json',      'X-acpt': `encodedCharaterGoesHere-YouNeedToretrievUsingNetworkTabInChrome`,      'X-Powered-By': 'Express',    },    data: [`${testExecutionId}`],  });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript