我正在使用 jenkins 作为 CI 工具。我使用restful api远程构建工作,但我也不知道如何远程获取测试结果。如果有人知道解决方案,我将不胜感激
2 回答
使用 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/
好吧,如果您使用的是 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
}