jenkins介绍与使用

 1.运行方式

自动化测试的运行方式:

  1. 打开 pycharm 

    代码是在远程仓库当中(不在你那)

    不一定是在个人电脑上运行自动化,比如服务器linux,不一定有pycharm(pycharm只是我们在本地编写代码的一个工具)

    命令行去运行:python run.py在运行之前,通过pip install -r requirements.txt,安装所有的第三方库

  2. 找到 run.py
  3. 运行 run.py

在服务器运行自动化测试代码方式:

  1. 准备好代码,复制到服务器
  2. 安装python,python第三方库
  3. python run.py

2.什么是持续集成 

持续集成指的是,频繁地(一天多次)将代码集成到主干

主干指的是产品发布前产品的最终形态,它还会包含很多分支,包括设计、开发、测试等等。这些工作分给了不同的部门,不同的人。在产品上线前,需要把这些分支都整合到主干,就是集成

对于测试而言,需要频繁的运行自动化测试的代码。包括定时运行,根据开发提交的代码运行等等

 持续集成让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成

Jenkins是一个持续集成的工具。各个分支把他们的代码放到jenkins上进行集中管理,相互之前可以形成各种流程作业

没有jenkins时,测试会先去问下开发,你们的代码更新了吗?我现在可以正常访问之前的接口吗?如果开发已经完成代码更新,测试就可以运行自动化测试代码了。如果开发没有完成,那就需要过段时间再去确认一次

这样存在两个问题

问题一:开发和测试之间的协作成本很高,需要频繁的询问和沟通进度

问题二:测试运行自动化测试脚本的时间不固定,什么时候测是不确定的,不利于推动流程的规范

有了jenkins以后,当开发往GitHub等版本控制系统里提交代码以后,会自动触发jenkins上开发代码的提交钩子,开发代码自动完成构建

开发代码一旦完成构建,又会触发测试代码的自动构建,不需要人工参与

3.jenkins

3.1下载与安装

jenkins安装方式有两种(通用方式):

  1. 安装成系统服务
  2. 下载war包以java命令启动

直接去Jenkins官方下载

下载完成后,通过java命令运行来运行下载的war包(这种方法运行前,需要先安装了java的jdk)

然后找到jenkins.war的文件位置,然后进入cmd

命令窗口中,输入java -jar jenkins.war --httpPort=9001 ,回车

看到Jenkins is fully up and running这行信息后才可以

 3.2 jenkins 初始化

3.2.1解锁jenkins

 这样我们就可以访问了,访问地址:http://localhost:9001/

注意访问前一定要开启服务,也就是上一步的命令java -jar jenkins.war --httpPort=9001

然后复制页面显示的路径C:\Users\lijiao\.jenkins\secrets\initialAdminPassword,找到后以.txt文件打开,复制到密码内

点击【安装推荐的插件】,会跳转到下面的页面,这种方式可能会慢,主动看网络环境,【选择插件来安装】,里面可以选择需要安装的插件,我选择的是安装推荐的插件

3.2.2创建第一个管理员用户

 输入所有的内容后,点击保存并完成即可

配置不需要管,直接点击保存并完成即可

 保存后,就会显示已就绪

点击开始使用就可以进入使用页面了

下面是登录页面

3.2.3安装插件

我们看一下如果安装插件,使用国内的地址https://updates.jenkins.io/update-center.json来进行安装,因为国外的偶尔会安装出问题

选择Manage Jenkins-->Manage Plugins-->搜索需要的插件-->点击Install without restart

3.3构建

3.3.1新建item

点击新建Item-->输入任务名称,选择Freestyle project,点击【确定】

 相关的设置可以先不用设置,直接点保存就OK

 返回列表就可以看到刚刚新建的任务名称

任务中重要的一个是Build Now,点击Build Now就创建一个构建

点击构建,选择控制台输出,就可以看出输出的内容,因为这是新建的没有东西所以运行是成功的

我们也可以在目录下看到创建任务后生成的文件夹C:\Users\lijiao\.jenkins\workspace,因为没有内容所以文件夹是空的

 

3.3.2配置

点击配置,进入配置页 

3.3.3源码管理

 输入 URL(就是gitee/gitlab/github存代码的地址),然后添加用户名和密码,然后选择添加后的用户名和密码,点击保存按钮(注意如果你的没有Git选项,说明没有安装Git插件)

3.3.4构建触发器

 构建环境,勾选Add timestamps to the Console Output

 构建选择Execute Windows batch command

然后输入pip install -r requirements.txt  和  python run.py命令

 保存成功后,再点击Build Now,选择新构建的控制台输出

因为新写的代码没有上传上gitee上,所以需要先进行提交代码,在pycharm中提交,提交前记录执行git add .   和 git commit -m "版本信息"

代码上传完成后,再次进行构建查看控制台,可以看到都已经安装成功,已经安装过不会再安装

3.3.5构建策略

此处我来模拟一下开发去触发项目

 设置构建触发器,关注对应的项目

 当开发的项目触发后,我们的项目会自动执行

3.3.6构建定时任务

配置定时构建时间:

  

符号表示:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作

逗号(,):可以用逗号隔开的值指定一个列表范围,例如"1,2,5,6,7"

中杠(-):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示"2,3,4,5,6"

正斜线(/):可以用正斜线指定时间的间隔频率,例如"0-23/2"表示每小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次

实例:

实例1:第1分钟执行一次myCommand

* * * * * myCommand

实例2:第小时的第3和15分钟执行myCommand

3,15 * * * * myCommand

实例3:在上午8点到11点的第3和15分钟执行myCommand

3,15  8-11 * * * myCommand

实例4:每隔两天的上午8点到11点的第3和15分钟执行myCommand

3,15 8-11 */2 * * myCommand

实例5:每周一上午8点到11点的第3和15分钟执行myCommand

3,15 8-11 * * 1 myCommand

实例6:每晚的21:30重启smb

30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4:45重启smb

45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1:10重启smb

10 1 * * 6,0  /etc/init.d/smb restart

实例9:每天18:00至23:00之间每隔30分钟重启smb

*/30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11:00pm重启smb

* 23 * * 6 /etc/init.d/smb restart

实例11:第一小时重启smb

* */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

* 23-7 * * * /etc/init.d/smb restart

3.4配置HTML报告

3.4.1安装HTML Publisher插件

使用前可以先确认一下是否安装了此插件,没有的话需要先安装,我这里是已经安装好的,安装就是从【可选插件】搜索到后点击安装

3.4.2配置HTML Publisher插件

点击【增加构建后操作步骤】按钮 --> 选择Publish HTML reports --> 设置

【HTML directory to archive】和【Index page[s]】--> 点击【保存】按钮

 

保存设置后,再去点击【Build Now】,然后刷新一下页面就可以看到【HTML Report】

3.4.3查看HTML报告

点击【HTML Report】即可查看HTML报告

但是我们看到显示不太美观,因为交互时,外部的一些文件jenkins自动屏蔽了,丢失了前端的样式,所以我们想美观要设置一下csp

3.4.4配置csp

我们发现HTML报告中的样式丢失了,原因是jenkins中的CSP(Content Security Policy,内容安全策略)的默认配置为一个非常严格的权限集,以防止Jenkins用户受到恶意的HTML/JS文件的攻击

点击【Manage Jenkins】--> 【Script Console】 --> 把这行代码【System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")】复制到命令行中

-->点击【运行】按钮

 然后再去构建的HTML报告就会正常显示,配置命令行之前的报告不会变

3.5配置邮件

3.5.1安装Email Extension Template插件

点击【Manage Jenkins】--> 【Manage Plugins】--> 

搜索email,选择【Email Extension Template】--> 点击安装

3.5.2配置管理员邮箱

管理员也就是发件人的邮箱,设置的时候一定要注意有两个地方都需要设置,如果只设置了一个,就会发件人收到邮件,收件人收不到邮件(因为收件不成功,邮件被退回了)

点击【Manage Jenkins】--> 【System Configuration】

 第一个设置的位置

 找到【Jenkins Location】,填写系统管理员邮件地址,注意这是填写的是发件人的邮箱

找到【Extended E-mail Notification】,填写SMTP server、SMTP Port、SMTP Username、SMTP Password,分别填写即可保存,注意的是,如果没看到SMTP Username和SMTP Password,点击高级按钮即可

SMTP server:邮箱服务地址,这个百度搜索一下即可,不同邮箱是不同的

SMTP Port:端口号,百度即可

SMTP Username:用户名,就是QQ的登录邮箱

SMTP Password:密码,不是登录QQ邮箱的密码,而是邮箱生成授权码后的那个密码,这个百度就知道如何去设置了

 第二个设置的位置

找到【邮件通知】,填写系统管理员邮件地址,注意这是填写的是发件人的邮箱,账号跟密码看不到点击【高级】按钮,密码跟第一个设置的密码是一样的,也就是授权码

3.5.3配置收件人邮件

收件人配置也有两个位置可以设置,设置其中一个位置即可

第一种方法:

点击【Manage Jenkins】--> 【Manage Plugins】-->一直向下找到【Default Recipients】输入收件人邮箱即可

 第二种方法:

选择要设置的任务 --> 点击【配置】--> 点击【增加构建后操作步骤】按钮 --> 选择Editable Email Notification --> 找到【Project Recipient List】输入收件人邮箱,多个收件人,之间用逗号隔开 --> 点击【保存】按钮

前面一步设置完成后,还有一步操作,否则收件人还是收不到邮件

点击【Advanced Settings】--> 【Add Trigger  】选择Always --> 点击【高级】按钮 --> 在【Recipient List 】输入收件人邮件,多个收件人,之间用逗号隔开

  3.5.4发送HTML格式内容的邮件

点击【Manage Jenkins】--> 【System Configuration】--> 找到【Default Content Type】选择HTML选项,找到【Default Content】,输入HTML格式代码 --> 点击【保存】按钮

查看邮件结果如下图

   

 

Guess you like

Origin blog.csdn.net/weixin_40611700/article/details/121209051