如何在 Jira Xray 的测试执行中发送测试信息?

如何解决如何在 Jira Xray 的测试执行中发送测试信息?

我们正在尝试将特定的测试启动信息发送到 Xray 中的测试执行,但没有成功。 测试建立在 Jenkins 上,与 Xray 的通信是通过 Xray 连接器进行的。 我们希望在测试执行的描述和注释中包含测试信息。

任何建议将不胜感激

技术栈:WebdriverIO + Cucumber + SauceLabs + Jira Xray

解决方法

我在 Jira 和 Xray 方面做了一些研究。

在 Xray 服务器中,当使用所谓的 "cucumber multipart" endpoint 时,总会创建一个新的测试执行问题。您可以指定包含“字段”JSON 对象的 JSON 内容,您可以在其中设置测试执行中某些自定义字段的值(例如“摘要”或其他)。 下面,您可能会找到辅助 JSON 对象的示例(存储在文件中,例如 createTestExec_with_description.json)。 您可以定义描述字段并在其中嵌入链接。这遵循 Jira 的“简单更新”语法,如here 所述。

但是,您不能在创建问题时添加评论(这是调用创建 Jira 问题时 Jira REST API 的“限制”/决定)。

{
"fields": {
    "project": {
        "key": "BOOK"
    },"summary": "Results for cucumber execution","description": "For more info please check [here|https://www.example.com]","issuetype": {
        "id": "9"
    },"customfield_11805" : [
        "iOS"
    ],"fixVersions" :
    [
     {
        "name": "1.0"
     }
    ]
}
}

然后您可以使用以下内容提交黄瓜 JSON 报告以及此辅助文件:

curl -u $USERNAME:$PASSWORD -F info=@createTestExec_with_description.json -F result=@data.json $JIRA_BASE_URL/rest/raven/1.0/import/execution/cucumber/multipart

如果您在 Jira Cloud 上使用 Xray,Xray 的 API 允许指定要更新/覆盖的现有测试执行问题。我没有检查您是否可以混合使用“简单”和“动词/操作”更新,因为 Atlassian 在文档中提到了它们(即同时使用“字段”对象加和“更新”对象) . 如果可能,您可能会执行以下操作:

{
"fields": {
    "project": {
        "key": "BOOK"
    },"fixVersions" :
    [
     {
        "name": "1.0"
     }
    ]
},"update": {
  "comment": [
     {
        "add": {
           "body": "latest results [here|https://www.example.com]"
        }
     }
   ]
}
}

前面的示例中有一些字段,您可以根据需要安全地删除它们。您还将使它们适应您的 Jira 配置/环境。

,

@Sergio 在我的情况下它不起作用。我创建了两个 JSON 文件,“one.json”是通过使用 jq 命令添加所有 JSON 测试结果组合而成的,第二个文件名为“extra.json”,其中包含您显示的 JSON 结构。在 extra.json 中,键与票号(取自 one.json)和自定义字段名称相关,取自 Jira API /rest/api/2/issue/ABC-194/editmeta。使用像这样的 URL 分段上传

curl -k -H "Content-Type: application/json" -X POST -u login:password -F info=@extra.json -F result=@one.json https://jira/rest/raven /1.0/import/execution/cucumber

Jira 已接受两个 JSON 文件,但在 Jira 上,没有任何反应,没有变化,没有添加文本。下一步我将这两个文件合并成一个更大的 JSON 文件并使用正常上传(使用 Jira API 但不是多部分)和相同的结果,Jira 接受了 JSON,但 Jira 没有使用 Web 界面显示任何新内容。 即将到来的 json,更改密钥 - 没有给我任何小的改变。

额外的.json:

{
"fields": {
    "project": {
        "key": "@ABC-9"
    },"customfield_16134" : [
        "link"
    ],"fixVersions" :
    [
     {
        "name": "1.0"
     }
    ]
}
}
Jira's definition gathered using api:
"customfield_16134": {
  "required": false,"schema": {
    "type": "string","custom": "com.atlassian.jira.plugin.system.customfieldtypes:textfield","customId": 16134
  },"name": "Revision","operations": [
    "set"
  ]
},

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?