[python]Robotframework+Git+jenkins实现持续集成并生成测试报告发送邮件
1.环境需求
&robotframework(不写搭建,自行百度)
& git(不写安装,自行百度)
&jenkins
2.安装jenkins
官网下载最新版本https://jenkins.io/
文档使用目前最新的版本2.125,
&安装完到指定的目录解压—自定义目录—打开浏览器http://localhost:8080打开成功表示安装成功,后面根据提示创建用户再登录-选择推荐安装的插件
3.更改配置文件和指定打开端口
&Jenkins目录下找到jenkins.xml文件,找到<arguments>……..<arguments>,把下面这段替换原标签内容(解释下为什么全部替换,指定端口改下端口号即可,但是后面Jenkins中可能会出现不能打开安装的robot插件报告,以备后患还是改掉)改完别忘记重启一下服务才会生效
<arguments>-Xrs -Xmx256m -Dhudson.model.DirectoryBrowserSupport.CSP= -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8081</arguments>
4.系统配置相关路径
注意:有些虽可不配,因为默认不配是因为用到的东西在本地环境变量里保守起见,没有配置按下文配置下
&登录jenkins-系统管理—系统设置
@配置下本地ip和系统管理员邮箱(注:邮件通知必须要配管理员邮箱)
&配置邮箱,我用的是阿里企业邮箱,具体网易或其他邮箱看下smtp是什么,同样配置即可
&配置邮件通知,和上图同样的配置,配置完可以通过邮件测试下,成功返回Email was successfully sent
注意:为了避免出现不必要的问题,配置邮箱都需要和管理员邮箱一致
5.系统设置-全局工具配置
&配置下本地Git即可
6.安装jenkins中的robot测试报告插件
&系统管理—管理插件—可选插件—安装—重启或返回
7.构建任务发送邮件
新建一个自由风格的项目名为test
&选择项目进去配置--Geral配置—设置下只保留的构建数
&源码管理,选择git,输入项目的路径,和添加一个有pull或clone权限的账号
&构建触发器--定时构建
&构建选择,执行批处理文件命令 ,当git pull下来默认是放在jenkins目录下的workspace\构建的任务名\pull下来的文件
&构建后操作—添加robotframework报告
&添加邮件发送配置
发送邮件的模板如下,具体可看下配置
<!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"> <div> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <th align="center" colspan="2"><br /> <h2>构建信息</h2> </th> </tr> <tr>${JELLY_SCRIPT,template="html"}<br/> </tr> <tr> <ul> <li>项目名称 : ${PROJECT_NAME}</li><br /> <li>详细测试报告 : <a href="${PROJECT_URL}/${BUILD_NUMBER}/robot/">${PROJECT_URL}/${BUILD_NUMBER}/robot/</a></li><br /> <li>触发原因: ${CAUSE}</li><br /> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li><br /> </ul> </tr> </table> </div> </body> </html>
&现在就配置好了,对于这robot这一套只要装下测试报告插件就好了,其他的是一开始选择推荐安装时都自动安装了,点击立即构建就可以了~
&解释下定时构建填写的时间表达式
* * * * *
分别的定义为:分 时 天 月 星期
第一个*表示分钟 (0–59)
第二个*表示小时 Thehour of the day (0–23)
第三个*表示哪天 Theday of the month (1–31)
第四个*表示哪月 Themonth (1–12)
第五个*表示哪年 Theday of the week (0–7) where 0 and 7 are Sunday.
*表示全部
如果7:00整 那么第一个*为H代表00