如何查询Jenkins中指定任务的构建失败总次数?
Jenkins指定任务失败构建数量查询方案
方法1:调用原生API统计(无需额外插件)
Jenkins本身自带无依赖的REST API,无需安装插件即可使用,之前调用API失败大概率是未使用正确的字段过滤参数:
- 接口地址格式:
http://<你的Jenkins域名>/job/<目标任务名>/api/json?tree=builds[result] - 接口仅返回所有构建的结果字段,返回数据量极小,无需处理无关字段
- 如果需要限定查询的构建范围,可追加范围参数,例如仅查询最近200条构建:
http://<你的Jenkins域名>/job/<目标任务名>/api/json?tree=builds[result]{0,200} - 开启权限校验的Jenkins实例需要在请求头携带认证信息,推荐使用个人API Token替代密码进行认证
命令行一键统计示例(依赖curl和jq)
curl -u "你的Jenkins用户名:你的API Token" "http://<你的Jenkins域名>/job/<目标任务名>/api/json?tree=builds[result]" | jq '[.builds[] | select(.result == "FAILURE")] | length'
执行后直接输出失败构建的数量。
方法2:Jenkins脚本控制台直接查询(无需外部请求)
如果不想处理外部请求的认证、网络问题,可以直接在Jenkins内部执行Groovy脚本查询:
- 操作路径:Jenkins首页 → 左侧菜单 Manage Jenkins → Script Console
- 输入以下脚本替换任务名后执行即可:
// 替换为目标任务的完整名称 def targetJobName = "你的任务名" def job = Jenkins.instance.getItemByFullName(targetJobName) if (!job) { println "任务不存在,请确认任务名拼写及路径是否正确" return } // 统计所有失败构建 def failBuildCount = job.builds.count { it.result == Result.FAILURE } // 若要统计最近30天的失败构建,替换为下面的统计逻辑 // def failBuildCount = job.builds.count { // it.result == Result.FAILURE && it.timeInMillis > System.currentTimeMillis() - 30 * 86400 * 1000 // } println "任务「${targetJobName}」失败构建数量:${failBuildCount}"
内容的提问来源于stack exchange,提问作者Snowcrash
相关产品推荐
相关产品推荐

