Jenkins 从curl发送XML结果的最佳方法

Jenkins 从curl发送XML结果的最佳方法,jenkins,groovy,slack,Jenkins,Groovy,Slack,我们有一个Jenkins管道,它向一个api/应用程序发送一个sh“curl”请求,为我们运行特定的测试,我们根据结果失败/通过构建 我想做的是:解析从curl(XML文档)返回的信息,并通过Slack发送这些通知 到目前为止,我所做的就是,解析XML文档,能够在本地打印结果,但是当我尝试将此结果发送到slack时,我得到一个错误:我假设这是因为我将结果保存为数组,而当我尝试将信息发送到slack时,它无法引用变量 我的问题是:我们应该如何向Slack发送XML结果,以及如何正确解析XML文件并

我们有一个Jenkins管道,它向一个api/应用程序发送一个sh“curl”请求,为我们运行特定的测试,我们根据结果失败/通过构建

我想做的是:解析从curl(XML文档)返回的信息,并通过Slack发送这些通知

到目前为止,我所做的就是,解析XML文档,能够在本地打印结果,但是当我尝试将此结果发送到slack时,我得到一个错误:我假设这是因为我将结果保存为数组,而当我尝试将信息发送到slack时,它无法引用变量

我的问题是:我们应该如何向Slack发送XML结果,以及如何正确解析XML文件并将其发送给Slack

我的代码片段:

            List <String> someString = new ArrayList<String>()
            parsed = new XmlSlurper().parse("${workspace}/tmp/TESTS-results.xml")


            parsed.testsuite.testcase.each { device ->
            someString.add(device.@name)
            someString.add(device.@time)
            someString.add(device)
            println deviceArr
            println deviceArr.getClass()
            }      
                parsed= XmlUtil.serialize(parsed)
                return deviceArr
            }

代码中的第一个问题是无法序列化已解析的xml。阅读
@NonCPS
。如果可以,最好的选择是发送JSON/YAML而不是XML。然后您将能够使用
readJSON
/
readYaml
步骤。代码中的第一个问题是无法序列化解析的xml。阅读
@NonCPS
。如果可以,最好的选择是发送JSON/YAML而不是XML。然后您将能够使用
readJSON
/
readYaml
步骤。
    in field groovy.lang.GString.values
    in object org.codehaus.groovy.runtime.GStringImpl@40198fcc
    in field groovy.lang.Closure.delegate
    in object org.jenkinsci.plugins.workflow.cps.CpsClosure2@4a4ae500
    in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5dd0e25c
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5dd0e25c
Caused: java.io.NotSerializableException: groovy.util.slurpersupport.Attributes