获取Jenkins中测试失败的次数
我们有一些测试会无缘无故地周期性失败,主要是JUnit超时。我想知道我是否能得到每次测试失败的次数。有了这些,我可以看出是某些测试一直存在问题,还是与棘手的测试无关,更重要的是服务器上Jenkins的稳定性问题。我遇到了同样的问题,我们制作了一个python,它可以抓取最后N个版本中的失败测试:获取Jenkins中测试失败的次数,jenkins,Jenkins,我们有一些测试会无缘无故地周期性失败,主要是JUnit超时。我想知道我是否能得到每次测试失败的次数。有了这些,我可以看出是某些测试一直存在问题,还是与棘手的测试无关,更重要的是服务器上Jenkins的稳定性问题。我遇到了同样的问题,我们制作了一个python,它可以抓取最后N个版本中的失败测试: # -*- coding: utf-8 -*- #! /usr/bin/python import urllib import re import sys project = "HERE_THE_PR
# -*- coding: utf-8 -*-
#! /usr/bin/python
import urllib
import re
import sys
project = "HERE_THE_PROJECT_NAME"
jenkin_host = "http://path.to.your.jenkins/jenkins/job/%s" % project
last_build = int(re.search("%s #(\d+)" % project, urllib.urlopen(jenkin_host + "/rssAll").read()).group(1))
start_build = last_build
nb_build = 200
REG_EXP = """All Failed Tests(.*)All Tests"""
FAILURE_REG_EXP = """javascript:hideStackTrace\(([^<]*)\)"""
all_failures = {}
last_seen = {}
print "Loading %s builds starting from build number %s" % (nb_build, start_build)
build_ok = 0
for build_id in range(start_build - nb_build, start_build + 1):
test_page = jenkin_host + "/%s/testReport/" % build_id
sys.stdout.write(".")
sys.stdout.flush()
failures = set()
for line in urllib.urlopen(test_page).readlines():
line_piece = re.search(REG_EXP, line)
if line_piece:
piece = line_piece.group(1)
match = re.search(FAILURE_REG_EXP, piece)
while (match):
failures.add(match.group(1))
match = re.search(FAILURE_REG_EXP, piece[match.start():match.end()])
if not failures:
build_ok += 1
for failure in failures:
all_failures[failure] = all_failures.get(failure, 0) + 1
last_seen[failure] = build_id
print
print "Done (found %s build OK)" % build_ok
nbs = [ x for x in list(set(all_failures.values())) if x > 1]
nbs.sort(reverse=True)
for i in nbs:
for test, nb in all_failures.iteritems():
if nb == i :
print "%d : %s (last seen : %s)" % (nb, test, last_seen[test])
这正是我所需要的。谢谢,你用的是哪种版本的詹金斯?简单地尝试了脚本,但没有一个正则表达式匹配。我用的是(1.459版)。@colinjameswebb:我用的是jenkins 1.490,以前我用的是
FAILURE\u REG\u EXP=“”“谢谢你的快速回复!经过进一步调查,这不是regex,而是我们的项目建立了不同的链接。在正则表达式处理结果之前,每个模块都有一个页面。@CédricJulien-除了您提供的方法之外,还有其他方法可以在Jenkins中生成自定义报告吗?我有一个相关的问题-。
Loading 200 builds starting from build number 11032
.........................................................................................................................................................................................................
Done (found 148 build OK)
8 : 'one failing test' (last seen : 10906)
7 : 'another-failing-test' (last seen : 11019)