Jenkins 测试结果分析器显示持续时间错误
Jenkins test results analyzer is presenting duration wrong
我是 运行 Jenkins 的工作,它是 运行 一些新人测试,并且正在生成一个看起来像这样的 junit 测试结果文件:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Basic Regression All">
<testsuite name="Login" id="02d5167b-ce9c-4ba4-9b24-e0a5c142768f" tests="2" time="628">
<testcase name="Successful Login"/>
<testcase name="Auth Token is not null"/>
</testsuite>
<testsuite name="Account Summary" id="18773a24-2e3a-4c7d-99c3-921c4e41541b" tests="1" time="290">
<testcase name="Successfully Retreived Accounts"/>
</testsuite>
<testsuite name="Account Balances" id="d0817e78-8a25-4bc2-9301-3b4ef954600a" tests="1" time="337">
<testcase name="Successfully Retreived Balances"/>
</testsuite>
出于某种原因,时间字段被“测试结果分析器”插件读取为秒而不是毫秒,如所附图片所示。
关于这里发生的事情的任何线索都会有所帮助。
此外,我使用的是 "test results analyzer" 和 junit 的最新版本,所以如果有人知道更好的 Jenkins 插件可以使用,请分享
好的,从我读到的内容来看,罪魁祸首似乎是 Newman(Postman CMD 工具)而不是测试结果分析器。在这里查看此页面:
Junit 格式似乎以秒而不是毫秒为单位具有 "time" 属性。 IE。 Newman 生成: time="337"(如上所示),其中 Test Analyzer 期望 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) 可解决该问题....
嗯嗯....
我是 运行 Jenkins 的工作,它是 运行 一些新人测试,并且正在生成一个看起来像这样的 junit 测试结果文件:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Basic Regression All">
<testsuite name="Login" id="02d5167b-ce9c-4ba4-9b24-e0a5c142768f" tests="2" time="628">
<testcase name="Successful Login"/>
<testcase name="Auth Token is not null"/>
</testsuite>
<testsuite name="Account Summary" id="18773a24-2e3a-4c7d-99c3-921c4e41541b" tests="1" time="290">
<testcase name="Successfully Retreived Accounts"/>
</testsuite>
<testsuite name="Account Balances" id="d0817e78-8a25-4bc2-9301-3b4ef954600a" tests="1" time="337">
<testcase name="Successfully Retreived Balances"/>
</testsuite>
出于某种原因,时间字段被“测试结果分析器”插件读取为秒而不是毫秒,如所附图片所示。
关于这里发生的事情的任何线索都会有所帮助。
此外,我使用的是 "test results analyzer" 和 junit 的最新版本,所以如果有人知道更好的 Jenkins 插件可以使用,请分享
好的,从我读到的内容来看,罪魁祸首似乎是 Newman(Postman CMD 工具)而不是测试结果分析器。在这里查看此页面:
Junit 格式似乎以秒而不是毫秒为单位具有 "time" 属性。 IE。 Newman 生成: time="337"(如上所示),其中 Test Analyzer 期望 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) 可解决该问题.... 嗯嗯....