4

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

4

2 回答 2

11

使用 XML 或 Json API。在 Jenkins 的大多数页面中,您可以添加/api/到 url 并获取 xml、json 和类似格式的数据。因此,对于工作,您可以访问<Jenkins URL>/job/<Job Name>/api/xml并获取有关工作、构建等的信息。对于构建,您可以访问<Jenkins URL>/job/<Job Name>/<build number>/api/xml并获得构建的摘要。请注意,您可以使用latestXXXBuild以获得最新的成功、稳定、失败、完整的构建,像这样;<Jenkins URL>/job/<Job Name>/lastCompletedBuild/api/xml.

此外,如果您使用任何将测试结果发布到构建的插件,那么对于给定的工作,您可以转到<Jenkins URL>/job/<Job Name>/lastCompletedBuild/testReport/api/xml并获得带有结果的 xml 报告。

它还有很多,您可以使用tree参数和depth参数控制导出的内容。有关摘要,请访问<Jenkins URL>/api/

于 2017-02-18T08:53:51.503 回答
1

好吧,如果您使用的是 jenkins 共享库或决定允许安全异常(一种不太好的方法),那么您可以通过作业访问它们并将它们发送到您喜欢的任何地方 - 推送与拉取

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
}
于 2019-09-20T18:20:06.233 回答