前言
python_pytest_allure_jenkins
1 部署Jenkins
1.1安装Jenkins
安装步骤 此处省略
1.2 修改Jenkins配置文件
vim /etc/sysconfig/jenkins
修改Jenkins配置文件
$JENKINS_USER改为 “root”:
$JENKINS_USER=“root”
1.3 修改Jenkins文件权限
更改Jenkins home,webroot和日志的所有权:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
1.4 修改服务器保存的代码仓库的文件权限
还需要将代码保存位置所有的文件权限都修改为Jenkins权限(否则-Jenkins的shell脚本会报没有权限)
chown -R jenkins.jenkins /data/
1.5 重新启动Jenkins
service jenkins restart
1.6 服务Jenkins权限
sudo chown -R jenkins```
# 2 Allure的安装
## 2.1 下载Allure安装包从中找到tgz的发布包
> https://github.com/allure-framework/allure2/releases
上传allure-2.18.0.tgz到服务器的/usr/local目录下
> wget下载安装包
> sudo wget https://github.com/allure-framework/allure2/releases/download/2.19.0/allure-2.19.0.tgz
## 2.2 解压&配置allure
> 使用tar命令进行解压
> tar -zxvf allure-2.19.0.tgz
配置环境变量 编辑 /etc/profile 文件,在文件默认增加如下内容后wq保存
> vim /etc/profile
> export PATH=$PATH:/usr/local/allure/allure-2.19.0/bin
配置生效
> source /etc/profile
## 2.3 验证allure是否成功
> $ source /etc/profile
> $ allure --version
> 2.18.0
```python
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</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>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>项目描述:${JOB_DESCRIPTION}</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}ws">${PROJECT_URL}ws</a></li>
<li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>
---
3 Jenkins配置
3.1 配置configure system
1) configure system --> Jenkins Location
2) configure system --> Extended E-mail Notification
3)configure system -->邮件通知
3.2 插件管理
1)搜索allure,然后选择install without restart
3.3 编辑任务
1)新增allure report配置
2)配置通知邮箱
3)配置总是发送
4)配置下工作空间目录
5)shell
pytest -v -n 4 /test_s_webapp.py --alluredir=./allure-report
exit 0
6)执行后结果&自动发送邮件
7)Jenkins 定时任务配置 H/5 ****
Minutes (0-59): H/5 表示每隔5分钟触发一次。H代表一个随机分钟(用于避免同时运行多个任务,提高资源利用率)。
Hours (0-23): * 表示任意小时。
Day of month (1-31): * 表示任意日期。
Months (1-12): * 表示任意月份。
Day of week (0-7) (Sun-Sat): * 表示任意星期几。
所以,将这个表达式用于Jenkins的定时任务配置中,会导致任务每隔5分钟执行一次。
4 报告输出时报 PS OutOfMemoryError
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
4.1修改方法 DEFAULT_JVM_OPTS= -Xmx4G
Linux 修改allure文件
win 修改allure.bat 文件
总结
python_pytest_allure_jenkins
备注遇到的坑记录
1、可用的pytest和allure-pytest版本
2、allure运行报错 “ValueError: option names {‘–alluredir’} already added”
问题排查:
依赖包冲突
pytest-allure-adaptor与allure-pytest的alluredir都被引用造成冲突
解决办法:
需要卸载不用的包 :pip uninstall pytest-allure-adaptor