文章目录
- 前言
- 为什么要持续集成?
- 什么是持续集成?
- 持续集成的优势有哪些?
- 主要步骤
- 持续集成Jenkins配置方法
-
- 注意事项
- 配置系统配置
- 配置节点
- 全局安全配置
- 全局工具配置
- 创建项目
前言 写完自动化后,我们还需要一个工具去管理我们的代码做到持续部署。。。
为什么要持续集成? 自动化的用途主要是用于回归测试,旨在回归,这就需要我们的自动化在定期内跑,比如每天的某个时间点跑,并将测试报告发送到邮箱,减少重复性工作,持续集成还可以降低风险,由于持续集成不断去构建,编译和测试,可以很早期发现问题,除此之外还有持续部署,提供可部署单元包等
所以这里就需要用到持续集成了,最常用的是Jenkins,所以我这里也是以Jenkins为例。
什么是持续集成? 持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。这篇文章简要介绍了持续集成的技巧和它最新的应用
持续集成指的是,频繁地(一天多次)将代码集成到主干,通过持续集成流程的进行自动化方式的构建,编译和测试,提供可以部署发布的单元包
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量
持续集成的优势有哪些? 1、易于定位错误。也就是当你的持续集成失败了,说明你新加的代码或者修改的代码引起了错误,这样你很容易定位问题
2、及早在项目里取得系统级的成果。因为代码已经被集成起来了,所以即使整个系统还不是那么可用,但至少你和你的团队都已经可以看到它已经在那了。
3、 改善对进度的控制。这点非常明显,如果每天都在集成,当然每天都可以看到哪些功能可以使用,哪些功能还没有实现。
4、更加充分地测试系统中的各个单元。
5、能在更短的时间里建造整个系统。
6、有助于项目的开发数据的收集。比如说,项目代码量的变化,经常出错的Tests,经常出错的source code,等等
7、与其它工具结合的持续代码质量改进。如与CheckStyle, PMD, FindBugs, Fxcop等等等等的结合。
8、与测试工具或者框架结合的持续测试。
9、便于Code Review。在每个build里,我们都可以知道与前一个build之间有什么改动,然后针对这些改动,我们就可以实施Code Review了。
10、便于开发流程的管理。
主要步骤 【持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法】持续集成一般的做法: 通过svn或其他工具拉取代码->自动化构建->自动化编译->自动化测试->自动化部署->自动化发布->邮件发送通知
持续集成Jenkins配置方法 注意事项 注意警告:配置完记得点击保存!!!!!!
配置系统配置 入口:系统管理——系统配置
1、配置Jenkins Location
1.1、修改Jenkins URL,将Jenkins URL修改成虚拟机的正确地址,查看命令:ip addr
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/888612f044e54481b1f95591344da3b4.jpg)
文章图片
1.2、配置一个系统管理员邮件地址
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/1a6e0840f81843cbb013ec3a33464bd7.jpg)
文章图片
2、配置邮件Extended E-mail Notification(以163邮箱为例)
SMTP server:smtp.163.com
Default user E-mail suffix:@163.com
Default Content Type:HTML(text/html)
点击高级:
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/79af179330b343cea0c4429af937d0fe.jpg)
文章图片
勾选Use SMTP Authentication
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/7c0a97f84e914fd38daf518801a0395f.jpg)
文章图片
填写User Name和Password
User Name:你的邮箱地址
Password为邮箱的授权码
SMTP port:25
Charset:UTF-8
3、配置邮件通知
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/a6ba5489803043c29a8e8cd2af11cd97.jpg)
文章图片
SMTP服务器:smtp.163.com
用户默认邮件后缀:@163.com
勾选使用SMTP认证
用户名:邮箱地址
密码:邮箱授权码
SMTP端口:25
字符集:UTF-8
配置完之后可以测试一下邮箱是否配置成功
勾选通过发送邮件测试配置
填写收信邮箱地址,发送成功代表配置成功
4、邮箱授权码的获取方式:
4.1、登录163邮箱
4.2、点击设置,选择POP3/SMTP/IMAP
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/9aee662395fb47399a96fe2405bf1a00.jpg)
文章图片
4.3、进入POP3/SMTP/IMAP页面
4.4、打开IMAP/SMTP服务和POP3/SMTP服务
4.5、获取授权码
4.6、手机接收验证码(傻瓜式操作即可)
4.7、邮箱授权码只展示一次,保存好!!!
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/3f62d554028b453d85899edf7534d7d2.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/431b4d86f8004dbcaccaf4df13b517de.jpg)
文章图片
配置节点 入口:系统管理——节点管理
1、新建节点
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/bb6b66b4883f4c2ca72055c002a85c74.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/54a8a59292774364b3e9230ccfffd48e.jpg)
文章图片
名字:节点名字,自己随便取
远程工作目录:用于存放jenkins的工作空间
启动方法:选择 Java web启动代理(如果没有这一项,配置下面的全局安全配置即可)
配置从节点
选择节点属性——工作位置
注意:如果没有东西,去配置全局工具jdk、git、allure(下面有全局安全配置的步骤,按步骤配置上即可)
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/df35489ce3884b86bc31ecda6c0dcefc.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/dc742b51d966482eab549bf49ab14821.jpg)
文章图片
启动节点
1、点击agent.jar 进行下载,
2、切到agent.jar在的目录下(我放在了桌面),运行命令进行启动
命令:java -jar agent.jar -jnlpUrl http://192.168.24.36:8080/jenkins/computer/test_0727/slave-agent.jnlp -secret 044ca68ac2fb46c0441c31412e2add490c4d08be4a5127bf88b389ad902da49f -workDir “D:\test_0727”
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/79abed0a7c7843299ccfaf60729dd749.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/c231a3a321f145e99816300b56b719d3.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/15feb80ac2874f63b994ed7f916dc168.jpg)
文章图片
返回Jenkins,显示Agent is connected.表示连接成功
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/1d5053b7cd5647c09edceccfe745d8a6.jpg)
文章图片
全局安全配置 入口:系统管理——全局安全配置
配置代理项和跨站请求伪造保护
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/a84cf93fe305472dad8f8063feb318b8.jpg)
文章图片
全局工具配置 入口:系统配置——全局工具配置
配置jdk、git、allure
1、Jdk
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/34d199597cc54f7da944f651e927939b.jpg)
文章图片
2、配置Git
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/397be61bb7c24bc3829d8d6223ca2cc2.jpg)
文章图片
3、配置allure
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/0721c5250a4d43f19c746e3ee4912c89.jpg)
文章图片
创建项目 在Jenkins首页点击创建一个新任务
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/3926a228835245169efb1698e1083ed2.jpg)
文章图片
分三步:
001.给任务起个名字
002.选择自由风格
003.点击确定按钮
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/00b939a4de954b62bd54cd66835af99b.jpg)
文章图片
创建好项目后跳转到项目配置页面(如下),对新建的项目进行配置
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/70536c4c737c4e5692d00a4abf5b4ec4.jpg)
文章图片
1、general信息的配置
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/5ecb9948b9924908a8af3dd033acee3f.jpg)
文章图片
2、git管理的用户名和密码的添加
前提:注册gitee(https://gitee.com),并将代码上传
上传代码到gitee的方法我稍后再写一篇步骤。。。
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/b7e14c9ad128443db644a1d66ade3680.jpg)
文章图片
Gitee项目地址获取:
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/e149fcb0e2534fc5a532837a14ee5c74.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/0c1438a2512e4157b34965439f3b99bc.jpg)
文章图片
3、构建
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/22feb049aa224fcd88e711eb502d82f0.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/46f0bc06a8f04afa8c55e24757c89e27.jpg)
文章图片
4、构建触发器
常用的有三种:
其他工程构建后触发:开发打包之后会触发自动化代码的执行(需要指定)
定时构建:定时每隔多久执行一次
轮询SCM:到了规定时间去检查版本库是否更新,更新了就执行一次,否则不执行
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/0b090811c70444fa9079c8ca8356252e.jpg)
文章图片
5、构建后操作
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/607093c4a4d84fe398d86074664de403.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/3db4ab5b5f894bd7af0b1c952b620b15.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/555287cc58f342788390d7b2b3573be0.jpg)
文章图片
Allure报告的模板内容:
$PROJECT_NAME-第$BUILD_NUMBER次构建日志
构建信息
- 项目名称 : $PROJECT_NAME
- 详细测试日志 : ${BUILD_URL}console
- 详细测试报告 : ${JOB_URL}allure
- 触发原因: ${CAUSE}
- 项目Url : $BUILD_URL
然后点击高级设置
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/57763651570442baaf44ba6dfc83ab9e.jpg)
文章图片
发送邮件机制选择always:无论成功还是失败都发送邮件
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/50119859620f4eb5b94720e74f30fab1.jpg)
文章图片
6、生成allure报告
allure 报告: requests+pytest+allure生成接口自动化测试框架
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/fc18a5da4dd14ec1b137f4cf93c840ce.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/a70452645ec949dbbacab017b5865c66.jpg)
文章图片
生成原生的html的报告
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/30620e7c06864e35b5c71fb3193c82e4.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/0e2e21a83dbd4edc8cf1ed84eeb4753c.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/3a38ebd64c2949d2ab6a67576f2e94d1.jpg)
文章图片
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/e2fa27ec94d04dafaad6b598c229fbbf.jpg)
文章图片
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/43a5dcbcb2ce4bb5914cab4437b22052.jpg)
文章图片
然后点击构建
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/1716bde54f464f23b20bfc3e8f1ad567.jpg)
文章图片
进入控制台查看购进进程
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/5853afb419bd43d1abcadeefff89d7e2.jpg)
文章图片
成功
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/56debba2fd844905a96fba07794c703d.jpg)
文章图片
邮箱:
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/dc66a0b53730484d9f07ba5b5a5180d0.jpg)
文章图片
在线cron表达式生成器:https://cron.qqe2.com/
cron表达式
![持续集成Jenkins|傻瓜式搭建持续集成Jenkins详细步骤及用法](https://img.it610.com/image/info8/040dd64ccb2f4e879ce4fc4039844d9e.jpg)
文章图片
允许特殊字符
, - * /
, - * /
, - * /
, - * / ? L W C
, - * /
, - * / L # C
1970-2099 , - * /
字段含义
*:代表所有可能的值
-:指定范围
,:列出枚举 例如在分钟里,"5,15"表示5分钟和20分钟触发
/:指定增量 例如在分钟里,"3/15"表示从3分钟开始,没隔15分钟执行一次
?:表示没有具体的值,使用?要注意冲突
L:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五
W:只能用在月份中,表示最接近指定天的工作日
#:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五
示例
0 * * * * ? 每1分钟触发一次
0 0 * * * ? 每天每1小时触发一次
0 0 10 * * ? 每天10点触发一次
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 30 9 1 * ? 每月1号上午9点半
0 15 10 15 * ? 每月15日上午10:15触发
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0 0 1 * ? 每月1号凌晨执行一次
推荐阅读
- Jenkins|Jenkins-定时任务自动执行脚本并发送邮件
- jenkins|自动化代码发布jenkins及其发送邮件
- 接口自动化|【0】Yapi与Jenkins持续集成基础汇总
- 持续集成|持续集成(Jenkins在Windows安装部署)
- jenkins|Jenkins持续集成部署详解
- tomcat|jenkins定时执行jmeter脚本文件发送邮箱生成测试报告
- vb|VB中利用CopyMemory使用指针
- #|docker-jenkins使用npm报错npm: command not found
- Jenkins自由风格项目构建