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

     2023-02-19     94

关键词:

【中文标题】如何在 Jira Xray 的测试执行中发送测试信息?【英文标题】:How to send test information within Test Execution in Jira Xray? 【发布时间】:2021-05-20 14:55:27 【问题描述】:

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

任何建议将不胜感激

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

【问题讨论】:

您能否澄清您的问题。没有运气是什么意思?另外,docs.getxray.app/pages/… 关注什么流量?你在哪里编辑你的 Cucumber 场景?在 Xray 中还是在 Jira 之外(例如,在某些 IDE 中并将它们保存在 Git 上)? 感谢您的回答。运气不好,我的意思是我们不知道该怎么做。 Jira 是我们的真实来源。在 Jenkins 中,我们正在设置导入和导出任务。当我们执行测试时,从 Xray 检索功能文件,然后使用 webdriverIO 启动测试,然后创建几个带有结果的 JSON。我们将所有结果合并到一个 JSON 中,并在 Jenkins 插件中使用 Cucumber JSON 格式设置导出任务。此外,我们不想创建新的测试执行,只是更新旧的。 好的,明白了;谢谢。所以要自定义Test Execution issue的Description字段,同时在Test Execution issue上添加cmets? 是的,当然,如果可能的话。如果有点棘手,我可以自定义其中一个 - 我只需要在测试执行信息中的某个位置添加,例如指向 Sauce Labs 的链接。 【参考方案1】:

我在 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"
    ,
    "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"
     
    ]
,

"update": 
  "comment": [
     
        "add": 
           "body": "latest results [here|https://www.example.com]"
        
     
   ]


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

【讨论】:

【参考方案2】:

@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/黄瓜

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

额外的.json:


"fields": 
    "project": 
        "key": "@ABC-9"
    ,
    "summary": "Results for cucumber execution",
    "description": "For more info please check [here|https://www.example.com]",
    "issuetype": 
        "id": "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"
  ]
,

【讨论】:

你需要为 multipart 使用特定的端点,类似于 jira/rest/raven/1.0/import/execution/cucumber/multipart 它被称为 multipart 因为它接受多部分内容;除此之外,它还有一个您需要使用的特定端点。因此,curl 请求应该是这样的: curl -k -H "Content-Type: application/json" -X POST -u login:password -F info=@extra.json -F result=@one.json @987654322 @ 对不起,我在上一个答案中没有提到这一点,但我使用了多部分端点并且它不起作用。 您能准确解释一下您在 API 调用响应中获得的内容吗?究竟是什么不起作用? api调用成功了吗?是否设置了摘要和描述?如果没有,你得到了什么?正如我所提到的,不应支持在创建问题(即测试执行问题)的同时添加 cmets【参考方案3】:

就我而言,任务是通过 API 更新测试运行状态。 我做了接下来的步骤:

    检索测试执行中的测试运行信息

curl -H "Content-Type: application/json" -X GET -u : https:///jira/rest/raven/1.0/api/testexec//测试

示例响应

[
     
        "id": 10444291,
        "status": "TODO",
        "key": "<TEST_RUN_ISSUE_KEY>",
        "rank": 1
      
]
    使用上述测试运行 ID 更新测试运行

curl -H "Content-Type: application/json" -X PUT -u : https:///jira/rest/raven/1.0/api/testrun/10368224/status?status=通过

响应:200 状态码。

XRay API 参考: https://docs.getxray.app/display/XRAY/REST+API

【讨论】:

如何在 Xray 测试用例创建页面上直接编写小黄瓜场景

】如何在Xray测试用例创建页面上直接编写小黄瓜场景【英文标题】:HowtowritegherkinscenariodirectlyonXraytestcasecreationpage【发布时间】:2021-02-0112:02:39【问题描述】:在创建测试用例时,如何获得以下选项,例如测试详细信息(添加BDD... 查看详情

burp与xray联动——多层代理流量测试

参考技术A在平常的测试过程中,面对一个站点庞大的业务接口时,难免会忽略其中某些存在问题的接口,使用Burp与Xray联动可以将被动扫描和手工测试结合,达到一个很好的缺漏补差的效果,当然工具是为手工测试服务的,还是... 查看详情

增加公共用例库功能,支持自动获取jira缺陷模板,项目报告支持定时发送,metersphere开源持续测试平台v1.16.0发布

12月23日,MeterSphere一站式开源持续测试平台正式发布v1.16.0版本。在这一版本中,我们新增了公共用例库功能(X-Pack),用户可以将部分功能用例添加到公共用例库中,位于公共用例库中的用例可以被工作... 查看详情

如何延迟执行 Web 测试的第一个请求?

】如何延迟执行Web测试的第一个请求?【英文标题】:Howtodelayexecutionofthefirstrequestofawebtest?【发布时间】:2015-09-1410:36:08【问题描述】:在VisualStudio2013Web性能测试中,如何在我指定的一段时间内延迟发送“.webtest”中的第一个请... 查看详情

Rails - 你如何测试 ActionMailer 在测试中发送了特定的电子邮件

】Rails-你如何测试ActionMailer在测试中发送了特定的电子邮件【英文标题】:Rails-HowdoyoutestActionMailersentaspecificemailintests【发布时间】:2011-01-0500:39:02【问题描述】:目前在我的测试中,我会做这样的事情来测试是否有电子邮件排... 查看详情

自动在 JIRA Adaptavist 工具中发布测试结果,来自 Eclipse 上运行的 rest api 测试用例

】自动在JIRAAdaptavist工具中发布测试结果,来自Eclipse上运行的restapi测试用例【英文标题】:AutomaticallyposttestresultsinJIRAAdaptavistToolfromrestapitestcasesrunoneclipse【发布时间】:2019-06-2715:43:04【问题描述】:我正在寻找在JIRAAdaptavist测试... 查看详情

xray与burp联动被动扫描(代码片段)

...几篇关于xray的使用的文章 0x00 xray建立监听在实际测试过程中,除了被动扫描,也时常需要手工测试。这里使用Burp的原生功能与xray建立起一个多层代理,让流量从Burp转发到xray中。首先xray建立起webscan的监听xray_windows_386.e... 查看详情

jmeter集成jira提交缺陷

...Jmeter排忧解难—生成excel结果文件》聊到了一种提高接口测试效率的方法。今天,咱们接着对“提高接口测试效率”这个话题做更深入的探讨。作为一名接口测试人员,我们是否一直在不厌其烦地重复以下工作。 对于验证不... 查看详情

如何从 Jira 中的状态更改触发 Jenkins 作业

】如何从Jira中的状态更改触发Jenkins作业【英文标题】:HowtotriggeraJenkinsjobfromastatuschangeinJira【发布时间】:2015-07-1620:09:56【问题描述】:我一直在寻找一种方法来从状态或Jira更改状态中的票证/故事中触发Jenkins作业。举一个更详... 查看详情

如何在单元测试中使用 JSON 发送请求

】如何在单元测试中使用JSON发送请求【英文标题】:HowtosendrequestswithJSONinunittests【发布时间】:2015-05-0409:42:42【问题描述】:我在Flask应用程序中有代码在请求中使用JSON,我可以像这样获取JSON对象:Request=request.get_json()这一直... 查看详情

burpsuite+xray被动扫描配置

BurpSuite手动测试配合xray做被动扫描,实际使用结果还不错,主要扫描出的漏洞集中在敏感信息泄露和xss一类的。0x00、BurpSuite的代理配置:  首先需要配置BurpSuite转发ip与端口:  流程:1、选择useroptions      2、选... 查看详情

如何在 symfony 4 和 Swiftmailer 中测试发送电子邮件

】如何在symfony4和Swiftmailer中测试发送电子邮件【英文标题】:Howtotestsendinganemailinsymfony4andSwiftmailer【发布时间】:2019-04-0913:59:48【问题描述】:这可能看起来很愚蠢,但我想知道如何测试从Gmail发送电子邮件的功能,而不是从命... 查看详情

在 RxSwift 中,我如何对 observable 未发送任何事件进行单元测试?

】在RxSwift中,我如何对observable未发送任何事件进行单元测试?【英文标题】:InRxSwift,howcanIunittestthatanobservablesentnoevent?【发布时间】:2021-03-2916:06:42【问题描述】:我是测试unRxSwift的新手。我设法测试Observable是否使用RxBlocking发... 查看详情

app测试中monkey如何调试选项参数

参考技术A由于monkey在测试app时,我们需要作长时间的稳定性测试,比如连续测试10小时(monkey不能指定时间,可以指定次数,时间可以在测试次数的日志基础上大概算出来),在测试过程中,app很可能测试时间不久,因为碰到问题... 查看详情

在 linux 中,如何测试程序的输出是发送到实时终端还是发送到文件?

】在linux中,如何测试程序的输出是发送到实时终端还是发送到文件?【英文标题】:Inlinux,howcanItestwhethertheoutputofaprogramisgoingtoaliveterminalortoafile?【发布时间】:2011-01-0917:04:27【问题描述】:当您使用git时,它似乎神奇地知道标... 查看详情

在 mocha 中,如何在执行另一个测试之前等待异步测试结束?

】在mocha中,如何在执行另一个测试之前等待异步测试结束?【英文标题】:Inmocha,Howtowaitfortheendofanasynchronoustestbeforeexecutinganothertest?【发布时间】:2020-06-2214:50:09【问题描述】:在mocha中我有两个测试:第一个测试异步方法是否... 查看详情

如何在赛普拉斯的所有测试套件之前执行代码?

】如何在赛普拉斯的所有测试套件之前执行代码?【英文标题】:HowcanIexecutecodebeforealltestssuitewithCypress?【发布时间】:2018-06-1501:38:44【问题描述】:基本上,我想在所有文件中的所有测试执行之前登录一次。我应该使用before钩... 查看详情

postman进阶——测试脚本的编写

...就需要用到Pre-requestScript的知识。请求返回响应结果后,如何自动判断响应是否正确?这就需要用到Tests的知识。postman支持javascript,允许测试人员给请求和集合添加动态行为,通过使用javascript脚本,可以构建包含动态参数的请... 查看详情