一、什么是CI、什么是CD
CI是持续集成的缩写,是一种开发流程,旨在不断地将代码集成到主干分支中,以便快地发现和纠正问题。
CD是持续交付(Continuous Delivery)或持续部署(Continuous Deployment)的缩写,是一种自动化流程,旨在将代码更快地交付到生产环境中,以实现快速部署和反馈。持续交付是指将代码交付到一个预备环境中进行测试和评估,而持续部署则是指将代码直接部署到生产环境中。
二、对于接口测试有什么意义
对于我们接口测试来说,持续集成与持续交付的意义,就是可以不断的更新迭代或者回滚我们的自动化框架代码,并把代码部署到持续、定时运行的服务器上,让它帮我们去定时巡检,真正实现了测试右移。
三、如何安装jenkins(linux服务器)
1、linux安装jdk11:
1.下载jdk11,新版jenkins已不支持jdk8。下载链接:https://www.oracle.com/cn/java/technologies/downloads/,可下载11.0.17、11.0.18、11.0.19均可以。
直接下载压缩包即可。
2.为避免麻烦,统一在/usr/local中创建安装软件的目录,那么安装java就在/usr/local中创建java。
在终端代码中输入
cd /usr/local
mkdir java
3.把下载好的压缩包放在桌面上,在终端上输入
rz
#或者输入
rz -b
rz -e
rz -be
因为有时候因为一些转码问题,会出现乱码然后屏闪,或者上传文件不成功,be是强制转码之类的参数,把三个命令都尝试一遍。
在弹出的窗口中选好你刚刚下载的java的压缩包,如果上传成功的话,就会上传到目前处于的文件夹内。
使用解压命令进行原地解压。
tar -zxvf jdkXXXXXXXXXXXXXXXXXX.tar.gz
4.最后输入配置命令
vim /etc/profile
5.在末端文本追加
export JAVA_HOME=/usr/local/java/jdk-11.0.18 # 根据自己实际java安装路径 看你自己的文件名,不一定是jdk-11.0.18
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
6.输入命令重新载入配置
source /etc/profile
7.验证是否安装成功
java -version
出现版本号码即安装成功。
2、安装maven
maven也是jenkins的依赖项
1.下载maven安装包
我选择3.6.3版本
下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/
2. 创建maven目录
mkdir /usr/local/maven
3.将本地的jdk上传到linux
上传命令:rz 跟java安装一样,多试几个命令
4.解压压缩包
unzip apache-maven-3.6.3-bin.zip
5.配置环境变量
vim /etc/profile
追加内容:
export M2_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
6.重新加载配置文件
source /etc/profile
7.验证
mvn -v
总体都跟java安装差不多,无坑。
3、安装jenkins(重点)
1.zip包下载地址:https://mirrors.jenkins-ci.org/redhat/
不要犹豫,直接下载最新版本,因为有一些插件已经不支持旧的版本。
2.创建jenkins目录
还是跟java一样,在usr/local下创建目录
mkdir /usr/local/jenkins
3.将本地的rmp包上传到linux
上传命令:rz,跟java一样,不多赘述。
4.解压rpm包
rpm -ivh jenkins-2.414-1.1.noarch.rpm
5.配置环境变量
先查看你的java路径,复制进去,因为jenkins是要java来持续启动的。
which java #先查看java的绝对路径并复制
vim /etc/init.d/jenkins #配置jdk安装路径
找到蓝色字体candidates,配置好你刚刚安装的java路径。
6.修改jenkins配置文件
vim /etc/sysconfig/jenkins
将 JENKINS_USER="jenkins"改成 JENKINS_USER=“root”;
将 JENKINS_PORT="8080"改成 JENKINS_PORT=“8772”;不必非改成 8772,只要是端口号不冲突就行
然后重新加载配置文件
systemctl daemon-reload
7.启动服务(重点)
先输入启动命令
systemctl start jenkins
启动服务,会有三种情况。
第一种:等了一会什么都不会反映,然后命令行复原,输入systemctl status jenkins
是绿色,那么恭喜你,一次启动成功。
第二种:
输入systemctl status jenkins,发现jenkins.servic显示fail,绿色的点变成红色。大概率是因为路径没有成功创建的原因,使用命令
ln -s /usr/local/java/jdk-11.0.18/bin/java /usr/bin/java
把java的真正路径指向 /usr/bin/java
同时cd/usr/bin/java查看
cd/usr/bin
ls -lah java
必须像这种java文件可以,如果是红色的证明快捷方式失效了。
第三种(大多数情况):输入启动命令后,等了很久,没有反映,使用CTRL+C进行终端强制中断后,再输入systemctl status jenkins,发现即不是红色也不是绿色,是灰色,然后再浏览器输入你服务器的http://你的服务器+jenkins的端口号,发现有页面了,但是一直卡在jenkins正在启动,请稍后。
那么这是你的jenkins实际已经部署好了,因为里面有写入一些外国IP的地址,被某WALL挡住了,这时候你要修改jenkins的内置网址,输入以下命令:
find / -name hudson.model.UpdateCenter.xml
#找到路径后
vim hudson.model.UpdateCenter.xml
里面有一个网址http://updates.jenkins-io/update-center.json,这个是国外网址来的,把该网址改变成我们国内的清华园网址http://mirror.xmission.com/jenkins/updates/update-center.json。
保存后,要重新输入
systemctl daemon-reload
systemctl status jenkins
重新启动以下,就可以了。
8.关于端口号,各位在启动文件后输入
nestat -anput
如果只看到有8080没有看到有8772端口,那么证明端口号设置失败。
使用下列命令
cd /usr/lib/systemd/system
vim jenkins.service
把对应参数改成8772,如果还不行。
在这个地方后面加空格–8772
9.输入IP+端口号成功进入了jenkins
要输入密码,会显示地址,在终端上输入后可以获取地址。
或者使用
systemctl status jenkins
在loaded状态下也有会密码,就在两排星号中间。
下一步选择推荐安装插件,如果这时候你没有选择清华园地址,或者版本是比较旧的,就会出现一堆插件下载错误,如果只是版本不够高这时候你先硬着头皮点下一步,
进入jenkins点击这个下载最新版本,再把它上传到linux终端上,输入命令
find / -name jenkins.war
找到这个文件,把它替换成你下载的最新war即可。
(jenkins提示centos7在11月份就不给用了,且学且珍惜把!到时候再想办法换服务器或者其他办法)
4、构建项目
1.创建项目
2.填写名称,项目类型主题自由
3.写点关于项目的描述
4.工程配置-源码管理-源码管理选择git
git地址格式:https://github.com/hXXX/leXXXXXXt.git
这个地方的git地址是你再github把项目上传到main分支或者其他分支之后,点击code出来的,如果你还没学习github玩法,请回过头去学习,注意master分支,如果github上叫main,请把master改成main分支。
5.工程配置-构建触发器
这里是用的一种语法,即原来一共有五颗星* * * * ,需要改什么就在对应的号位置上改动,大家不一定看得懂
这里举几个例子:
每隔15分钟构建一次:H代表形参
H/15 * * * *
每隔5分钟构建一次
H/5 * * * *
在每个小时的前半个小时内的每15分钟构建一次
H(0-29)/15 * * * *
每3个小时构建一次
H H/3 * * *
每天中午12点定时构建一次
H 12 * * *
每天的3点,8点,12点,一天构建3次(多个时间点中间用逗号隔开)
0 3,8,12 * * *
每天早上7点到晚上7点,每两小时构建一次
H 7-19/2 * * *
周一到周五,从上午9:45开始到下午3:45,每两小时构建一次
45 9-15/2 * * 1-5
周一到周五,从上午9点到下午4点,每两小时构建一次
H H(9-16)/2 * * 1-5
备注:第一个 * 写成“H”,代表分钟是随机的,写成“0”,代表是整点
6.配置脚本命令
如果你的自动化脚本启动文件main,在github上还在一个大文件里面,比如像我这样,
那么你的路径要输入
像我这样。它的根目录相当于unittest所处的目录。
7.构建
点击立即构建,如果是红色,打开构建中的控制日志输出看什么问题。如果是卡在clone git地址,因为github是外国部署的站点,所以有时候是进不去,多尝试几遍。
如果是main模块找不到用例的途径,启动套件的路径还要加个unittest比如我这里把.改成了unittest才可以成功运行。
如果是Python版本或者模块的原因,你要更新服务器上的python模块和包。