Jenkins 詹金斯测试结果分析器显示的持续时间错误
我正在运行一个Jenkins作业,该作业正在运行一些newman测试,并正在生成一个junit测试结果文件,该文件如下所示:Jenkins 詹金斯测试结果分析器显示的持续时间错误,jenkins,junit,jenkins-plugins,newman,Jenkins,Junit,Jenkins Plugins,Newman,我正在运行一个Jenkins作业,该作业正在运行一些newman测试,并正在生成一个junit测试结果文件,该文件如下所示: 由于某些原因,“测试结果分析器”“插件将时间字段读取为秒,而不是如所附图片所示的毫秒。 任何关于这里发生的事情的线索都会有所帮助。 此外,我正在使用最新版本的“测试结果分析器”和junit,因此,如果有人知道更好的Jenkins插件,请分享 好的,从我所读到的来看,罪魁祸首似乎是Newman(Postman CMD工具),而不是测试结果分析器。请在此处查看此页面:
由于某些原因,“测试结果分析器”“插件将时间字段读取为秒,而不是如所附图片所示的毫秒。
任何关于这里发生的事情的线索都会有所帮助。
此外,我正在使用最新版本的“测试结果分析器”和junit,因此,如果有人知道更好的Jenkins插件,请分享
好的,从我所读到的来看,罪魁祸首似乎是Newman(Postman CMD工具),而不是测试结果分析器。请在此处查看此页面: Junit格式的“time”属性似乎以秒为单位,而不是以毫秒为单位。也就是说,纽曼产生:time=“337”(正如您在上面看到的),其中as测试分析器期望time=“0.337” 因此添加了另一个构建阶段(Jenkins),它运行这个小python脚本,将“time”属性从毫秒转换为秒
import os
import xml.etree.ElementTree as etree
#print os.getcwd()
os.chdir('path_to/tests')
collection = os.environ['Collection']
e = etree.parse(collection + '_results.xml').getroot()
for atype in e.findall('testsuite'):
duration=int((atype.get('time')))
atype.set('time',str(duration/float(1000)))
f = open('fixed.xml','w')
print >> f, etree.tostring(e)
这就解决了问题
更新:
事实上,我在服务器上运行的Newman上有一个过时的版本。。。。将newman升级到最新版本(3.5.2)修复了该问题。。。。
哦,好吧