文章目录

  • 前言
  • 为什么要持续集成?
  • 什么是持续集成?
  • 持续集成的优势有哪些?
  • 主要步骤
  • 持续集成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

jenkins继承策略_持续集成

1.2、配置一个系统管理员邮件地址

jenkins继承策略_持续集成_02


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继承策略_03


勾选Use SMTP Authentication

jenkins继承策略_jenkins继承策略_04


填写User Name和Password

User Name:你的邮箱地址

Password为邮箱的授权码

SMTP port:25

Charset:UTF-8

3、配置邮件通知

jenkins继承策略_持续集成系统_05


SMTP服务器:smtp.163.com

用户默认邮件后缀:@163.com

勾选使用SMTP认证

用户名:邮箱地址

密码:邮箱授权码

SMTP端口:25

字符集:UTF-8

配置完之后可以测试一下邮箱是否配置成功

勾选通过发送邮件测试配置

填写收信邮箱地址,发送成功代表配置成功4、邮箱授权码的获取方式:

4.1、登录163邮箱

4.2、点击设置,选择POP3/SMTP/IMAP

jenkins继承策略_api_06


4.3、进入POP3/SMTP/IMAP页面

4.4、打开IMAP/SMTP服务和POP3/SMTP服务

4.5、获取授权码

4.6、手机接收验证码(傻瓜式操作即可)

4.7、邮箱授权码只展示一次,保存好!!!

jenkins继承策略_持续集成_07


jenkins继承策略_jenkins继承策略_08

配置节点

入口:系统管理——节点管理

1、新建节点

jenkins继承策略_api_09


jenkins继承策略_持续集成系统_10


名字:节点名字,自己随便取

远程工作目录:用于存放jenkins的工作空间

启动方法:选择 Java web启动代理(如果没有这一项,配置下面的全局安全配置即可)配置从节点

选择节点属性——工作位置

注意:如果没有东西,去配置全局工具jdk、git、allure(下面有全局安全配置的步骤,按步骤配置上即可)

jenkins继承策略_api_11


jenkins继承策略_api_12


启动节点

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继承策略_持续集成_13


jenkins继承策略_jenkins_14


jenkins继承策略_api_15


返回Jenkins,显示Agent is connected.表示连接成功

jenkins继承策略_api_16

全局安全配置

入口:系统管理——全局安全配置

配置代理项和跨站请求伪造保护

jenkins继承策略_持续集成系统_17

全局工具配置

入口:系统配置——全局工具配置

配置jdk、git、allure

1、Jdk

jenkins继承策略_api_18


2、配置Git

jenkins继承策略_jenkins继承策略_19


3、配置allure

jenkins继承策略_jenkins继承策略_20

创建项目

在Jenkins首页点击创建一个新任务

jenkins继承策略_持续集成系统_21


分三步:

001.给任务起个名字

002.选择自由风格

003.点击确定按钮

jenkins继承策略_api_22


创建好项目后跳转到项目配置页面(如下),对新建的项目进行配置

jenkins继承策略_api_23


1、general信息的配置

jenkins继承策略_持续集成_24


2、git管理的用户名和密码的添加

前提:注册gitee(https://gitee.com),并将代码上传

上传代码到gitee的方法我稍后再写一篇步骤。。。

jenkins继承策略_jenkins继承策略_25


Gitee项目地址获取:

jenkins继承策略_持续集成系统_26

jenkins继承策略_jenkins_27


3、构建

jenkins继承策略_持续集成_28


jenkins继承策略_jenkins_29


4、构建触发器

常用的有三种:

其他工程构建后触发:开发打包之后会触发自动化代码的执行(需要指定)

定时构建:定时每隔多久执行一次

轮询SCM:到了规定时间去检查版本库是否更新,更新了就执行一次,否则不执行

jenkins继承策略_持续集成系统_30


5、构建后操作

jenkins继承策略_持续集成系统_31


jenkins继承策略_jenkins继承策略_32


jenkins继承策略_jenkins继承策略_33


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>

然后点击高级设置

jenkins继承策略_jenkins继承策略_34


发送邮件机制选择always:无论成功还是失败都发送邮件

jenkins继承策略_持续集成系统_35


6、生成allure报告

allure 报告: requests+pytest+allure生成接口自动化测试框架

jenkins继承策略_持续集成系统_36


jenkins继承策略_jenkins继承策略_37


生成原生的html的报告

jenkins继承策略_api_38


jenkins继承策略_持续集成系统_39


jenkins继承策略_持续集成_40


jenkins继承策略_api_41


System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)

jenkins继承策略_jenkins_42


然后点击构建

jenkins继承策略_jenkins继承策略_43


进入控制台查看购进进程

jenkins继承策略_jenkins_44


成功

jenkins继承策略_api_45


邮箱:

jenkins继承策略_持续集成_46

在线cron表达式生成器:https://cron.qqe2.com/

cron表达式

jenkins继承策略_持续集成系统_47


允许特殊字符

, - * /

, - * /

, - * /

, - * / ? 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号凌晨执行一次