1、持续集成(CI) Continuous integration 持续集成 团队开发成员每天都有集成他们的工作,通过每个成员每天至少集成一次,也就意味着一天有可 能多次集成。在工作中我们引入持续集成,通过持续集成自动构建(代码的编译、发布、部署、 用例的更新和自动化执行),从而达到尽早发现代码集成的错误。 2、在没有持续集成时,开发的模式是: 第一步:项目一开始划分模块,将模块分配给对应的开发 第二步:开发对自己所负责的模块进行开发以及对应后期的单元测试 第三步:等所有模块开发完成后,由项目老大(开发负责人)对所有模块的代码进行集成 第四步:将集成好的代码部署到环境上,交由测试人员进行集成测试 第五步:测试过程中发现bug,测试人员提交bug并进行记录 第六步:对应的开发人员进行bug修复 第七步:等所有开发人员将bug修复好,再进行代码集成,交给测试进行回归测试 这样我们会陷入一个循环:修改bug集成代码部署测试的循环中 缺陷: a.bug永远都是在最后才发现,不能及时发现。 b.这样的话测试效率低,使得交付效率质量差。 3、用Jenkins做持续集成的目的:及时发现bug,提高效率 4、持续集成的优点: 1、统一的代码库 2、自动部署和构建 3、自动测试 4、保证项目的交付质量 5、用什么实现持续集成? 使用Jenkins工具能帮我们实现持续集成 6、什么是Jenkins? 是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的 软件平台,使软件的持续集成变成可能。 7、Jenkins有哪些功能 1)持续的软件版本发布/测试项目。 2)监控外部调用执行的工作。 Jenkins拥有的特性包括: 1)易于安装只要把jenkins.war部署到servlet容器,不需要数据库支持。 2)易于配置所有配置都是通过其提供的web界面实现。 3)集成RSS/Email通过RSS发布构建结果或当构建完成时通过email通知。 4)生成JUnit/TestNG测试报告。 5)分布式构建支持Jenkins能够让多台计算机一起构建/测试。 6)文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。 7)插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。 Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员 省时省力提高开发效率。 8、Jenkins中的节点? 一个节点是一个代理服务器。建议使用字母、数字或字母和数字的组合。最好见名知意。不建议 使用标点符号和中文(中文命名没有问题,但Job中无法引用) Jenkins环境搭建 一、需要的应用软件如下: JDK1.8 最好安装1.8的 Jenkins.war包
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019154128350-1800340015.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019154350241-1700226277.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163726896-1067720795.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163736664-1902603929.png)
第三步:浏览器地址栏中输入IP地址+8080端 口/jenkins(http://192.168.23.129:8080/jenkins),正常打开jenkins应用页面 如果页面报错要关闭防火墙:service iptables stop 页面显示如下:
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163816799-717190046.png)
这段话翻译过后大概的意思就是: Jenkins管理员密码已经写入服务器/root/.jenkins/secrets/initialAdminPassword 文件中, 复制密码粘贴到下面的文本框中。 讲解下:/root 路径就是 cd ~ 第四步:在linux环境中输入命令: cat /root/.jenkins/secrets/initialAdminPassword ,复 制密码 到文本框中,点击continue
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163902523-501612185.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163912199-45445755.png)
![](/i/l/?n=22&i=blog/2012893/202208/2012893-20220826170951984-1350160695.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163921539-170221139.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019163958828-1992161571.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164020239-1730602755.png)
第七步:Jenkins修改密码
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019173015883-1313787413.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019174202297-552520362.png)
3.修改密码,点击应用,保存。
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164042741-6120463.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164052385-1902281204.png)
重启后,可以用新密码登录。 第八步:如果出现其他异常需要重新安装jenkins环境的步骤如下:(如果Jenkins启动正常请忽 略以下操作) 第一步:rm rf /root/.jenkins 清空所有数据 第二步:webapps中删除Jenkins目录 重启tomcat 第三步:一切按照上面的步骤操作 注意点:依赖包出错不用管
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164114762-1912501664.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019174643256-488670751.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164146724-1132011728.png)
第三步:输入节点的具体信息,这里需要注意的是启动方法,启动方法没有java web请往下看
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164152852-211713849.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164202321-1582379049.png)
第三步:代理中选额随机选取,代理协议都进行勾选
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164215396-676749323.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164226957-466852956.png)
节点可以理解为一个代理,一台服务器。Jenkins是一个ci(持续集成)平台,每个代理 服务器要与jenkins进行集成,需要执行java jar ,后面是代理服务器Ip地址,通过这条 命令,执行成功说明代理已集成在ci平台 将代理连接jenkins方法: 从代理命令行运行 第一步:下载agent.jar文件 ,保存在本地G:\jenkins 第二步:在dos中G:\jenkins目录下执行命令 java jar agent.jar jnlpUrl http://192.168.23.129:8080/jenkins/computer/test_vm/slaveagent.jnlp secret 50027f0935559679aeb8ba30adca6e16fed937199e37a95c352984235a3400be workDir "G:\jenkins"
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164244115-1983122720.png)
注意:把以上的复制到dos下执行
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164251402-1972900291.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164328648-1309896074.png)
成功jenkins首页显示,代理电脑右下方红色叉叉消失,并且显示代理服务器详细信息
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164335374-1958985282.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164342491-2133405431.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164350080-1490487855.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019183939699-442735829.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164355434-348325565.png)
4. 命令输入,例如执行单个用例 Pybot test 用例名称+套件路径 Pybot test 正常登录 G:\Python271\discuz论坛\dcs\论坛项目.txt
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164411197-1126598083.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164421115-1559162418.png)
复制报告地址在浏览器输入: G:\jenkins\workspace\auto_test\report.html
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164440154-912848195.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164446864-1873794303.png)
那么就给项目添加一个工作空间,如果系统自动选择工作空间是master,那么就进行修改
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164457463-1603919506.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164502807-1686463535.png)
如果出现如下报错: hudson.AbortException: No files found in path G:\jenkins\output\auto_test with configured filemask: output.xml 就需要把工作空间和日志输出路径都改为G:\jenkins就可以了。 7.构建触发器(设置定时任务) Build periodically 在日程表中设置 触发器是用于控制自动化测试执行时间的 日程表里有5个数字,分别为: H * * * * 分钟:059 小时:023 日:131 月:112 周:07 0和7都代表星期天 例如: 每15分钟执行一次 H/15 * * * * (注意:要空一格,H/1 一小时,H/2-15 15分钟 ) 每天8点16点,每1小时执行一次 H 816/1 * * *
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164515473-423486566.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164531788-1549828866.png)
8.添加插件,以及插件的使用 robot framework plugin Email extension template Email ext recipients column 第一步:在首页,选择系统管理,管理插件,在过滤中输入插件名称 1. robot framework plugin
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164550721-490707357.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164611753-776491259.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164617825-745664126.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164623839-8348117.png)
如果出现插件无法下载的情况,可以进行如下设置:
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164630914-624539063.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164640964-532007347.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164656845-906410101.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164702387-217880856.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164721904-1968719125.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164732347-939872224.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164741982-1867654436.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164754927-1957173065.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164759949-1591633669.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164805185-2121860172.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164823100-506941682.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164828824-1060555514.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164833353-894132943.png)
第六步:点击高级设置
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164854655-179596427.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019164900684-251584015.png)
第八步:最后收到邮件,说明你的邮件通知设置成功!
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165315507-267536685.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165322004-1342351328.png)
打开 【系统管理】>【脚本命令行】运行下面的命令: System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165332934-1459298591.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165344488-312408622.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165351870-1433822544.png)
2、添加凭据:
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165402779-1819683881.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165408519-1359258623.png)
4、然后再构建输入:Pybot test test2 G:\jenkins\auto\论坛项目.txt 也可以设置定位任务上面过程有讲到
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165414843-1732305162.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165431472-1588136462.png)
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165438227-378731141.png)
6、点击构建后Jenkins会自动拉取SVN服务器的代码到Jenkins的工作空间然后通过执行 Windows批处理命令就可以执行从 SVN拉取下来的最新的代码,这样就可以实时跑服务器中最新的代码或者自动化测试用例。
![](/i/l/?n=20&i=blog/2012893/202010/2012893-20201019165452413-1251247452.png)
分类: jenkins 好文要顶 关注我 收藏该文
![](https://common.cnblogs.com/images/icon_weibo_24.png)
![](https://common.cnblogs.com/images/wechat.png)
![](https://pic.cnblogs.com/face/2012893/20200420100951.png)
粉丝 - 155 关注 - 0 0 0 « 上一篇: 多测师app __课堂讲解随记(1)__高级讲师肖sir
» 下一篇: 多测师讲解app_app出现ANR(无响应)_高级讲师肖sir posted on 2020-10-19 16:13 多测师_肖sir 阅读(257) 评论(0) 编辑 收藏 举报 刷新评论刷新页面返回顶部 发表评论 编辑预览 自动补全
[Ctrl+Enter快捷键提交]
【推荐】MASA Framework 开启全新的.NET应用开发体验【推荐】下一步,敏捷!云可达科技SpecDD敏捷开发专区
【推荐】腾讯云多款云产品1折起,买云服务器送免费机器 编辑推荐:
· 一个奇葩的线上问题,导致我排查了一天
· 如何使用 .NET 6 的 IHostedService 和 BackgroundService?
· 纯 CSS 实现拼图游戏
· ASP.NET Core 6 框架揭秘实例演示:异常处理高阶用法
· 彻底了解线程池的原理——40行从零开始自己写线程池 最新新闻:
· 巨头纷纷入场:学习机接棒千亿教培市场?
· 曝iPhone 14 Pro Max状态栏下移 图标更靠近两侧
· 换配件动辄过万 伤不起的新能源车
· 新“超级地球”三成质量是水
· 苹果即将支付9500万美元解决翻新设备集体诉讼案
» 更多新闻... Powered by:
博客园
Copyright © 2022 多测师_肖sir
Powered by .NET 6 on Kubernetes 标签:__,sir,插件,点击,构建,jenkins,Jenkins,20220826,集成 From: https://www.cnblogs.com/xiaolehua/p/16628826.html