Jenkins:有没有API可以远程查看测试报告?

时间:2017-02-18 05:58:14

标签: java jenkins junit jenkins-api

我使用jenkins作为CI工具。我使用restful api远程建立工作,但我也不知道如何远程获取测试结果。 如果有人知道解决方案,我会感激不尽

2 个答案:

答案 0 :(得分:4)

使用XML或Json API。在Jenkins的大多数页面上,您可以将pip freeze添加到URL并获取xml,json和类似格式的数据。因此,对于工作,您可以转到$ pip freeze | grep cv 并获取有关工作,构建等的信息。对于构建,您可以转到/api/,您将获得构建的摘要。请注意,您可以使用<Jenkins URL>/job/<Job Name>/api/xml来获取最新的成功,稳定,失败,完整的构建,如下所示; <Jenkins URL>/job/<Job Name>/<build number>/api/xml

此外,如果您使用任何将测试结果发布到构建的插件,那么对于给定的作业,您可以转到latestXXXBuild,然后您将获得包含结果的xml报告。

还有很多内容,您可以使用<Jenkins URL>/job/<Job Name>/lastCompletedBuild/api/xml参数和<Jenkins URL>/job/<Job Name>/lastCompletedBuild/testReport/api/xml参数控制导出的内容。有关摘要,请转至tree

答案 1 :(得分:0)

好吧,如果您正在使用jenkins共享库或决定允许安全例外(一种不太好的方法),则可以通过作业访问它们并将其发送到任意位置-push vs pull

def getCurrentBuildFailedTests() {
    def failedTests = []
    def build = currentBuild.build()

    def action = build.getActions(hudson.tasks.junit.TestResultAction.class)
    if (action) {
        def failures = build.getAction(hudson.tasks.junit.TestResultAction.class).getFailedTests()
        println "${failures.size()} Test Results Found"
        for (def failure in failures) {
            failedTests.add(['name': failure.name, 'url': failure.url, 'details': failure.errorDetails])
        }
    }

    return failedTests
}