python代码学习——jekins

  • 持续集成
  • 持续集成在软件生命周期中的作用
  • 持续集成的好处
  • 8080端口被占用,jekines如何解决?
  • Jekines模块的解释:
  • 操作流程
  • 发送邮件
  • 设置邮件发件人和收件人信息
  • job的configure配置
  • 如何持续 构建(config——bulid_Triggers)
  • 常用到的其他的配置


持续集成

  • 持续集成:(Continuous Integration),简称CI,是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期的后期才能寻找和修复bug
  • 正常的开发流程是:需求分析——项目设计——开发编写代码——提交代码至项目管理服务器——提测——打包代码——部署到服务器——测试进行测试
  • 一天之中开发A提交代码并更新文件A;B提交代码并更新文件B,他们都将代码放置在版本管理工具上,第二天下载代码的时候只会运行自己的代码,打包编辑文件后机会出现缺包的情况
  • jekins之前,手动部署或者shell编写。缺点:手动部署难免会出现误操作;shell不方便管理,构建流程不简洁,不容易操作。因此出现了持续集成,其意思就是持续的构建部署服务。
  • 游客持续集成,每天都会将代码管理器上的文件进行编译打包,不一定要放在服务器上,主要检查有没有丢包的情况,出现bug或者冲突就会及时处理
  • 为什么要学jekines,自动化测试的测试框架,也是在写代码,需要将框架引入到持续继承,在提交代码后可以自动构建,自动执行,自动生成报表并将报告推送给相关人员查看测试结果。
  • 使用jekines,需要将代码当道远程服务器上,建议服务器上要有:SVN/git

持续集成在软件生命周期中的作用

  • 需求分析、软件设计、程序编码:、软件测试、运行维护,基本运行流程图如下
  • 持续继承主要涉及以下几个方面

持续集成的好处

  • 解放了重复性的劳动
  • 更快的修复问题:持续集成,事情一开始的时候就介入,有问题就可以发现,尽可能早的解决问题,不会到项目后期再来解决问题
  • 更快的交付成果:问题基本解决完了,就可以更快的交付成功
  • 减少手工的错误:机器一旦设定好运行顺序,就不会忘记,会按照步骤一步一步的执行,人,对于重复性的事情会出现犯错的情况
  • 减少了等待时间。缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间的等待时间;持续集成意味着开发、集成、测试、部署都得以持续
  • 更高的产品质量,集成服务器往往提供Code Reciew,代码质量检测等功能,对不规范或者有错误的地方会进行标识,也可以设置邮件、短信等预警,二开发人员通过code review也可以提高编程能力

8080端口被占用,jekines如何解决?

  • 进入jekines的安装命令下,查找jekines.html文件
  • 修改端口号后,使用新的端口号打开即可

Jekines模块的解释:

  • 左侧——new任务:开发用来打包、编辑,在此可以创建一个任务,需要填写任务名称,选择任务类型
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器

  • 左侧——people:登录的用户
  • 左侧——Bulid History :构建历史,包含所有项目的构建历史,全部在右侧显示 - 左侧——系统管理_系统设置:设置Jekines的功能,例如:系统设置(全局设置和路径)。Jekines Location的Jekines_url:Jekines的启动服务地址,不建议使用本地服务,注意一定要改成ip地址,因为他是协作构建的,并不是一个人在使用;如下图
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_02

  • 左侧——系统管理_全局安全设置:Jekines支持登录注册,在这里配置Jekines的权限,也可以很具他的插件,来丰富用户管理权限。最常见的是Jekines专用数据库、认证和可以访问、操作Jekines的配置权限(Authorization);如果jekines对权限控制比较严格,会建议使用Role Based Strategy
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_03

  • 左侧——系统管理_凭证配置:配置登录Jekines的用户名和密码
  • 左侧——系统管理_全局工具配置:可以设置java的、Git等的环境变量,指定Java/Git用哪个版本,是否在线安装等等
  • 左侧——系统管理_插件管理 显示所有人在jekines上编写的插件,使用插件的时候需要安装,查找路径:拆件管理——Available。如果Jekines在线安装时报错,可使用Advance上传官网上下载的安装包后,自动安装;
  • 插件管理的右上角有一个filter,可以根据插件名称搜索插件;或者想要什么样的功能,输入关键字后,会自动筛选并将插件放在Available下面
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_04


  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_05


  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_06

  • 左侧——系统管理_系统日志,捕捉脚本中的logging日志,将其输出到job中
  • 左侧——系统管理——节点管理,分布式的job可以用到(web自动化可能用到),一套代码在不同的服务器上运行

操作流程

  • 左侧——new任务,新建任务,直接点击“所有”后面的+即可。构建自由风格的软件项目(最常用)
  • 进入之后,如下图;编辑信息时需要点击工作空间中的configure
  • 什么都不填写的情况下,工作控件是空的,点击项目名称后如下:
  • 项目创建后,jekines安装目录下,可以查看的路径是:
  • 如果不通过git想要运行代码,直接将代码复制到这个路径下即可
  • 进入job——configure,设置描述、选择shell/windows批处理命令,在文本框中指定执行路径和执行命令,即可执行代码并执行命令;执行命令就是python.exe的路径
  • 注意:如果有两个python,需要指定用那个python,否则会报错,指定路径:直接在config中,将python运行的路径粘贴即可
  • 优化 代码一般情况下放在git或者svn上,git——Source Code Management ,选择Git,将链接粘贴即可(注意要删除本地run文件的路径);SVN——选择Subversion,粘贴链接即可。注意选择此种方式需要填写git或者SVN的用名或者密码
  • 添加用户名和密码后,需要在凭据的下拉框中选择账号和密码
  • 使用此种方式需要将bulid的批处理命令中,本地的运行文件路径删除
  • 如果想要在构建的时候运行代码,可以在command的运行环境后面添加run的py文件名称,他是相对路径,相对的是workspace的路径;如果要执行某一个py文件,也需要相对workspace,写运行文件的路径
  • 集成报表:confige——Bulid——post_bulid_Actions,选择插件(publish_html_reports),需要配置html的路径(服务器或本地)、py文件名称和报表名字,在此需要相对workspace去找
  • 集成之后,在页面左侧会出现一个HTML报表的选项,报表名字为自己设置的report名字
  • 保留历史生成报告的结果,需要在config——post_bulid_Action中,点击publishing_options,需要勾选上keep_past_HTML_reports

发送邮件

设置邮件发件人和收件人信息

  • 路径:系统管理——系统设置中,如图,多个收件人可以使用逗号隔开
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_系统管理_07

  • 测试邮件是否可以发布成功,可以用到另外一个邮件发送插件上的一个功能,如图
    -返回email was success send 就算成功
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_系统管理_08

  • 如果在测试的时候出现认证错误(501或者401的返回码),一般情况下都是认证信息不一致,需要保证下面截图中的邮箱与发件人的邮箱是一致的
  • Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_09

job的configure配置

  • 如图:
  • 如果邮件没有被触发,就不会发送,因此要设置邮件触发情况,设置如下:

如何持续 构建(config——bulid_Triggers)

Jenkins用API Token for accessing GitLab 源码管理 jenkins源码分析_服务器_10


里面有两个任务,一个是定时构建,一个是轮询SCM。定时构建需要设定时间

轮询SCM是只要提交代码至SVN或者git,就会自动构建

其他工程构建后触发,需要写构建分支

两者都要配置schedule

配置定时的时候,MINUTE、HOUR、DAY、MONTH和WEEK之间用*隔开

例如:15***** 代表每个小时的15分去运行脚本。文本框下方会出现提示

常用到的其他的配置

  • 参数化构建,在脚本中设置接受运行是的传参,比如动态的决定如何去运行,可实现过滤cases,动态的配置测试环境等等,参数化构建中可以添加多个参数
  • 这里面对的参数可以在参数化构建中设置,最常见的就是字符参数,设置参数名、参数值
  • 使用的时候直接在批处理环境中,直接在文本框中输入 echo $变量名,就可以取到参数信息,这个参数的使用是linux情况下。
  • 注意这个要写在首行,顶格写即可
  • 如果需要将文件copy到某个文件夹下,可用在批处理命令文本框中输入 复制命令 文件名称 文件夹名称