jenkins全局工具配置中配置allure
在jenkins所在的主机上面配置allure,并将对应的路径配置在jenkins全局工具配置中,如图所示
配置slave节点
启用SSH Server
新增节点
启用或断开节点
配置项目
执行代码
#!/bin/sh -l
rm -rf ${WORKSPACE}/allure-results
rm -rf ${WORKSPACE}/allure-report
pytest -s --alluredir ${WORKSPACE}/allure-results
注意:注入环境变量中的result.txt为自动化脚本中自动生成的运行结果,在conftest.py中新建方法,将结果生成到result.txt里面
def pytest_terminal_summary(terminalreporter, exitstatus, config):
'''收集测试结果'''
# print(terminalreporter.stats)
total = terminalreporter._numcollected
passed = len([i for i in terminalreporter.stats.get('passed', []) if i.when != 'teardown'])
failed = len([i for i in terminalreporter.stats.get('failed', []) if i.when != 'teardown'])
error = len([i for i in terminalreporter.stats.get('error', []) if i.when != 'teardown'])
skipped = len([i for i in terminalreporter.stats.get('skipped', []) if i.when != 'teardown'])
successful = len(terminalreporter.stats.get('passed', [])) / terminalreporter._numcollected * 100
# terminalreporter._sessionstarttime 会话开始时间
duration = time.time() - terminalreporter._sessionstarttime
print('total times: %.2f' % duration, 'seconds')
with open("result.txt", "w") as fp:
fp.write("TOTAL=%s" % total + "\n")
fp.write("PASSED=%s" % passed + "\n")
fp.write("FAILED=%s" % failed + "\n")
fp.write("ERROR=%s" % error + "\n")
fp.write("SKIPPED=%s" % skipped + "\n")
fp.write("SUCCESSFUL=%.2f%%" % successful + "\n")
fp.write("TOTAL_TIMES=%.2fs" % duration)
配置测试报告
Default Content
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RMS-MVP_MES_自动化测试报告</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息<br/>
</tr>
<tr><br/></tr>
<tr>
<td>
<b><font color="#OB610B">测试结果</font></b>
</td>
</tr>
<tr>
<td>
<p>用例总数:${TOTAL} 成功:${PASSED} 失败:${FAILED} 异常:${ERROR} 跳过:${SKIPPED}</p>
<p>运行成功率:${SUCCESSFUL} 运行时长:${TOTAL_TIMES}</p>
</td>
</tr>
<tr>
<td>
<b><font color="#OB610B">构建信息</font></b>
<hr size="2" width="100%" align="center"/>
</td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li>
</ul>
</td>
</tr>
</table>
</body>
</html>