Groovy 如何将SoapUI的结果添加到Jira?

Groovy 如何将SoapUI的结果添加到Jira?,groovy,automated-tests,jira,soapui,Groovy,Automated Tests,Jira,Soapui,我正在SoapUI中自动化一些测试用例,我必须在Jira中添加自动化测试的结果。我该怎么做? 将在Jira中创建一个测试用例,我需要将该特定测试用例映射到我在SoapUI中自动生成的测试用例,并在测试执行后添加结果。我只需要在Jira测试用例中看到结果通过/失败。 谢谢以下是我在这种情况下会想到的方法 让我们假设在soapui项目中有一个测试套件 Jira问题Id应作为自定义属性添加到每个测试用例中,例如Jira\u Id 可以使用测试套件的以下TearDown脚本访问测试用例结果。只需记录详细

我正在SoapUI中自动化一些测试用例,我必须在Jira中添加自动化测试的结果。我该怎么做?
将在Jira中创建一个测试用例,我需要将该特定测试用例映射到我在SoapUI中自动生成的测试用例,并在测试执行后添加结果。我只需要在Jira测试用例中看到结果通过/失败。

谢谢

以下是我在这种情况下会想到的方法

让我们假设在
soapui项目中有一个测试套件

Jira问题Id
应作为自定义属性添加到每个测试用例中,例如
Jira\u Id

可以使用测试套件的以下
TearDown脚本
访问测试用例结果。只需记录详细信息

for ( testCaseResult in runner.results )
{
   testCaseName = testCaseResult.getTestCase().name
   log.info testCaseName
   if ( testCaseResult.getStatus().toString() == 'FAILED' )
   {
      log.info "$testCaseName has failed"
      for ( testStepResult in testCaseResult.getResults() )
      {
         testStepResult.messages.each() { msg -> log.info msg }
      }
   }
}
但是,在您的情况下,应该分别为每个测试用例向jira问题id添加注释。
要实现这一点,没有简单的方法。使用以下任一方法:

  • 编写一些代码(使用您喜欢的语言)来调用,以便为问题添加注释。是非常好的简单的图书馆,我更喜欢

  • 使用soapui测试用例:

    • 添加一个rest方法,以便能够在jira中对项目进行注释。或者在一个单独的项目中,因为它与实际测试无关。看
    • 创建一个虚拟测试用例,并使用此方法添加一个测试步骤。这个测试用例可以在同一个测试套件中,也可以在项目的其他地方
    • 不要忘记
      禁用此测试用例,因为它不是您实际的功能测试用例
      
    • 只需更新消息并运行此已禁用的测试步骤,即可在
      jira
  • 下面是稍加修改的测试套件
    拆卸脚本
    ,以满足您的需求。但是,您需要使用上述方法之一实现
    callJiraRestAPI
    方法

    for ( testCaseResult in runner.results ) {
       testCaseName = testCaseResult.getTestCase().name
       def jiraId = testCaseResult.getTestCase().getPropertyValue('JIRA_ID')
       log.info testCaseName
       def message = new StringBuffer()
       if ( testCaseResult.getStatus().toString() == 'FAILED' ) {
          log.info "$testCaseName has failed"
          message.append("$testCaseName has failed")
          for ( testStepResult in testCaseResult.getResults() ) {
             testStepResult.messages.each() { msg -> 
                log.info msg
                message.append(msg) 
             }
          }
       } else {
         log.info "$testCaseName has passed"
         message.append("$testCaseName has passed")
       }
       //calling jira rest api to add the comment
       callJiraRestAPI(jiraId, testCaseResult.getTestCase(), message.toString())
    }
    
    
    //You need to Implement calling jira rest api to add the comment
    def callJiraRestAPI(jiraId, testKase, message) {
    //write your code using either 1 or 2 way
    //of course, REST request needs to be set with message
    //and jiraId is needed and testKase is useful if you choose to use 2nd way, otherwise not needed.
    }
    

    Alina,您是否介意添加更多关于如何在jira中更新结果的详细信息,即您想要什么格式?示例响应会有所帮助。我不太确定,这就是为什么我的问题如此含糊。我需要关于如何实现的想法。我相信JIRA提供了REST API。但是,如果您必须手动执行,您将如何执行?另外,对于单个测试用例,是否存在单个jira问题?另外说明。我知道一个事实,Jira拥有它;我们自己的RESTAPI。我会做更多的研究,然后再问一个更好的问题。看看这里的例子-