傻瓜式搭建持续集成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、便于开发流程的管理。

主要步骤

持续集成一般的做法: 通过svn或其他工具拉取代码->自动化构建->自动化编译->自动化测试->自动化部署->自动化发布->邮件发送通知

持续集成Jenkins配置方法

注意事项

注意警告:配置完记得点击保存!!!!!!

配置系统配置

入口:系统管理——系统配置
1、配置Jenkins Location
1.1、修改Jenkins URL,将Jenkins URL修改成虚拟机的正确地址,查看命令:ip addr
在这里插入图片描述

1.2、配置一个系统管理员邮件地址
在这里插入图片描述
2、配置邮件Extended E-mail Notification(以163邮箱为例)
SMTP server:smtp.163.com
Default user E-mail suffix:@163.com
Default Content Type:HTML(text/html)
点击高级:
在这里插入图片描述
勾选Use SMTP Authentication
在这里插入图片描述
填写User Name和Password
User Name:你的邮箱地址
Password为邮箱的授权码
SMTP port:25
Charset:UTF-8
3、配置邮件通知
在这里插入图片描述
SMTP服务器:smtp.163.com
用户默认邮件后缀:@163.com
勾选使用SMTP认证
用户名:邮箱地址
密码:邮箱授权码
SMTP端口:25
字符集:UTF-8
配置完之后可以测试一下邮箱是否配置成功
勾选通过发送邮件测试配置
填写收信邮箱地址,发送成功代表配置成功

4、邮箱授权码的获取方式:
4.1、登录163邮箱
4.2、点击设置,选择POP3/SMTP/IMAP
在这里插入图片描述
4.3、进入POP3/SMTP/IMAP页面
4.4、打开IMAP/SMTP服务和POP3/SMTP服务
4.5、获取授权码
4.6、手机接收验证码(傻瓜式操作即可)
4.7、邮箱授权码只展示一次,保存好!!!
在这里插入图片描述
在这里插入图片描述

配置节点

入口:系统管理——节点管理
1、新建节点
在这里插入图片描述
在这里插入图片描述
名字:节点名字,自己随便取
远程工作目录:用于存放jenkins的工作空间
启动方法:选择 Java web启动代理(如果没有这一项,配置下面的全局安全配置即可)

配置从节点
选择节点属性——工作位置
注意:如果没有东西,去配置全局工具jdk、git、allure(下面有全局安全配置的步骤,按步骤配置上即可)
在这里插入图片描述
在这里插入图片描述
启动节点
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,显示Agent is connected.表示连接成功
在这里插入图片描述

全局安全配置

入口:系统管理——全局安全配置
配置代理项和跨站请求伪造保护
在这里插入图片描述

全局工具配置

入口:系统配置——全局工具配置
配置jdk、git、allure
1、Jdk
在这里插入图片描述
2、配置Git
在这里插入图片描述
3、配置allure
在这里插入图片描述

创建项目

在Jenkins首页点击创建一个新任务
在这里插入图片描述
分三步:
001.给任务起个名字
002.选择自由风格
003.点击确定按钮
在这里插入图片描述
创建好项目后跳转到项目配置页面(如下),对新建的项目进行配置
在这里插入图片描述
1、general信息的配置
在这里插入图片描述
2、git管理的用户名和密码的添加
前提:注册gitee(https://gitee.com),并将代码上传
上传代码到gitee的方法我稍后再写一篇步骤。。。
在这里插入图片描述
Gitee项目地址获取:
在这里插入图片描述

在这里插入图片描述
3、构建
在这里插入图片描述
在这里插入图片描述
4、构建触发器
常用的有三种:
其他工程构建后触发:开发打包之后会触发自动化代码的执行(需要指定)
定时构建:定时每隔多久执行一次
轮询SCM:到了规定时间去检查版本库是否更新,更新了就执行一次,否则不执行
在这里插入图片描述
5、构建后操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Allure报告的模板内容:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>$PROJECT_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>  
            <td>  
                <ul>  
                    <li>项目名称 : $PROJECT_NAME</li><br />  
                    <li>详细测试日志 : <a href=${BUILD_URL}console target='_blank'>${BUILD_URL}console</a></li><br />
                    <li>详细测试报告 : <a href=${JOB_URL}allure target='_blank'>${JOB_URL}allure</a></li><br />
                    <li>触发原因: ${CAUSE}</li><br />                    
                    <li>项目  Url : <a href=‘$BUILD_URL’ target='_blank'>$BUILD_URL</a></li><br />
                </ul>  
            </td> 
           <td height="350px" style="overflow:hidden;display:block">${JELLY_SCRIPT,template="html"}<br/>
        </tr>  
    </table> 
    </div>
  </body>  
</html>

然后点击高级设置
在这里插入图片描述
发送邮件机制选择always:无论成功还是失败都发送邮件
在这里插入图片描述
6、生成allure报告
allure 报告: requests+pytest+allure生成接口自动化测试框架
在这里插入图片描述
在这里插入图片描述
生成原生的html的报告
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
在这里插入图片描述
然后点击构建
在这里插入图片描述
进入控制台查看购进进程
在这里插入图片描述
成功
在这里插入图片描述
邮箱:
在这里插入图片描述

在线cron表达式生成器:https://cron.qqe2.com/
cron表达式
在这里插入图片描述
允许特殊字符
, - * /
, - * /
, - * /
, - * / ? 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号凌晨执行一次

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七光年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值