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任务:开发用来打包、编辑,在此可以创建一个任务,需要填写任务名称,选择任务类型
- 左侧——people:登录的用户
- 左侧——Bulid History :构建历史,包含所有项目的构建历史,全部在右侧显示 - 左侧——系统管理_系统设置:设置Jekines的功能,例如:系统设置(全局设置和路径)。Jekines Location的Jekines_url:Jekines的启动服务地址,不建议使用本地服务,注意一定要改成ip地址,因为他是协作构建的,并不是一个人在使用;如下图
- 左侧——系统管理_全局安全设置:Jekines支持登录注册,在这里配置Jekines的权限,也可以很具他的插件,来丰富用户管理权限。最常见的是Jekines专用数据库、认证和可以访问、操作Jekines的配置权限(Authorization);如果jekines对权限控制比较严格,会建议使用Role Based Strategy
- 左侧——系统管理_凭证配置:配置登录Jekines的用户名和密码
- 左侧——系统管理_全局工具配置:可以设置java的、Git等的环境变量,指定Java/Git用哪个版本,是否在线安装等等
- 左侧——系统管理_插件管理 显示所有人在jekines上编写的插件,使用插件的时候需要安装,查找路径:拆件管理——Available。如果Jekines在线安装时报错,可使用Advance上传官网上下载的安装包后,自动安装;
- 插件管理的右上角有一个filter,可以根据插件名称搜索插件;或者想要什么样的功能,输入关键字后,会自动筛选并将插件放在Available下面
- 左侧——系统管理_系统日志,捕捉脚本中的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
发送邮件
设置邮件发件人和收件人信息
- 路径:系统管理——系统设置中,如图,多个收件人可以使用逗号隔开
- 测试邮件是否可以发布成功,可以用到另外一个邮件发送插件上的一个功能,如图
-返回email was success send 就算成功 - 如果在测试的时候出现认证错误(501或者401的返回码),一般情况下都是认证信息不一致,需要保证下面截图中的邮箱与发件人的邮箱是一致的
job的configure配置
- 如图:
- 如果邮件没有被触发,就不会发送,因此要设置邮件触发情况,设置如下:
如何持续 构建(config——bulid_Triggers)
里面有两个任务,一个是定时构建,一个是轮询SCM。定时构建需要设定时间
轮询SCM是只要提交代码至SVN或者git,就会自动构建
其他工程构建后触发,需要写构建分支
两者都要配置schedule
配置定时的时候,MINUTE、HOUR、DAY、MONTH和WEEK之间用*隔开
例如:15***** 代表每个小时的15分去运行脚本。文本框下方会出现提示
常用到的其他的配置
- 参数化构建,在脚本中设置接受运行是的传参,比如动态的决定如何去运行,可实现过滤cases,动态的配置测试环境等等,参数化构建中可以添加多个参数
- 这里面对的参数可以在参数化构建中设置,最常见的就是字符参数,设置参数名、参数值
- 使用的时候直接在批处理环境中,直接在文本框中输入 echo $变量名,就可以取到参数信息,这个参数的使用是linux情况下。
- 注意这个要写在首行,顶格写即可
- 如果需要将文件copy到某个文件夹下,可用在批处理命令文本框中输入
复制命令 文件名称 文件夹名称