为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2023-11-12 22:16:15
我正在尝试使用Xray Rest API和Axios将测试执行添加到测试计划中。我已经创建了一个 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但我希望添加它,请检查下面的屏幕截图以供参考。
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

您可以使用 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' }

});


查看完整回答
反对 回复 2023-11-12
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我能够通过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}`],

  });


查看完整回答
反对 回复 2023-11-12
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信