1.测试工程师为什么要掌握持续集成

一个程序员如果想发布一个产品,他需要编码、编译、测试,发布的过程对于一个企业来说,如果也想发布一个产品的话,同样的也是需要上述的过程,区别在于企业要发布的产品的需求会很多,如果有一个程序员来完成整个的过程的话,需要花费大量的时间,导致产品的研发周期过长,错过市场良机。为了避免这样的问题出现,企业一般会招聘多个程序员来协同编码,最后再将所有的代码进行集成,而在集成时往往会发现很多bug,这些问题是在研发编码的时候就已经存在了,如果在集成时才发现问题的话,会导致开发者在集成阶段花费大量的时间寻找bug的原因,加上软件的复杂想,bug的根源很难定位,甚至会出现不得不调整底层架构的情况,那么在这样的情境下,持续集成的概念产生了,下面就介绍持续集成可以帮助我们来完成哪些事情,持续集成如何来应用?

2.持续集成的概念、流程和意义

 

持续集成的流程;1.开发将代码提交到主版本,测试工程师的任务是要验证代码合并之后的正确性;2.把代码拉去到本地;3.创建测试环境:编译(成为可执行程序)、打包、配置;4.测试:往往会选择一些比较核心的功能;

3.持续集成工具jenkins

关于Git、Jenkins的安装和配置,这里只做简单的描述,更详细的安装和配置的方法可以参考这几个链接:

4.jenkins工具的配置说明

说明:1.Github代码库:Jenkins拉取代码的来源;2.Git:向Github发出拉取代码的命令;3.Gradle:把拉取到本地的代码进行编译;4.Android:Gradle把代码编译完成之后会形成一个可执行文件(apk),此时就需要Android的环境来操作apk(比如通过adb命令向手机中安装apk)。

系统级的配置和JOB级配置的区别:系统级的配置是针对所有的JOB生效的,JOB级配置只针对自己本身才生效。

5.jenkins工具系统配置和Job配置

5.1,系统配置

方法:

1.如图1:常用的需要配置的选项;

2.如图2:配置Gradle;

3.如图3、4:jenkins上为了让有权限能访问Github需要做的配置;

4.如图5、6、7:在Github中获取口令;

5.点击图3中棕色框"Add",弹出图8,按图8所示完成操作。

6.同样的,如图10所示,也可以验证是否配置成功。

5.2,Job配置

如图11,新建一个任务,一般选择“创建一个自由风格的软件项目”;

如图12:JOB配置界面。下文会通过具体的项目展示如何配置;

6.jenkins手动持续集成实战

实例:如图13所示,使用Jenkins完成自动拉取代码、编译、打包、把包安装到模拟器、执行monkey测试。


步骤:1.如图14,在Github中复制源码的连接;

2.如图15,配置刚刚已经建立好的JOB,配置Git,粘贴图14中复制的连接到红色框中,点击“Add”;

3.如图16、17,添加github的账号和密码;

4.配置Gradle,如图18、19配置可以生成apk包;

5.图20、21,设置包保存的路径。

6.由于目前还没有执行过构建过程,所以还不清楚包保存的路径,需要构建一次,然后找到包保存的路径。

方法:6.1.在图19的基础上保存设置后来到图22的界面;6.2.图22中点击“立即构建”,从代码库拉取代码、编译,生成apk包;6.3.如图23,项目正在构建;

 

6.4.图23上点击,来到图24;

6.5.图24上点击,来到图25,可以看到构建过程中的命令执行情况(为了确保在Jenkins上Gradle成功,需要先手动Gradle成功);

6.6.如图26-1,构建已完成,可以通过图26-2中“Building in workspace”中找到包保存的路径的前半部分;

6.7.如图27,在命令行中找到包保存路径;

 

6.8.如图28,把路径复制到当前的Job设置中;

7.配置monkey,如图29、30,增加monkey构建,;

8.此时点击“立即构建”,如图31,就完成了整个的编译、打包、安装、执行monkey测试的过程;

7.jenkins自动化持续集成实战

在实际的工作过程中,我们不希望每次的构建都是通过手动来完成,希望构建是自动来完成的,那么如何让构建过程自动的进行呢?需要进行一定的配置。方法:

1.点击工程JOB中的“配置”;

2.如图33,“构建触发器”中勾选“Build periodically”,在“日程表”中填写“构建周期”;

3.点击左侧“?”,可以查看构建规则,如图34;

4.如图35,日程表中设置“每2分钟构建一次”,点击“Apply”、保存,返回到工程界面;

5.如图36,返回到工程界面后,自动构建已经开始了;

以上,通过实例简单梳理了Jenkins持续集成的流程,希望对初接触持续集成的朋友有所帮助。

通过实例介绍持续集成的应用--基于Jenkins的更多相关文章

  1. 「持续集成实践系列 」Jenkins 2.x 构建CI自动化流水线常见技巧

    在上一篇文章中,我们介绍了Jenkins 2.x实现流水线的两种语法,以及在实际工作中该如何选择脚本式语法或声明式语法.原文可查阅:「持续集成实践系列」Jenkins 2.x 搭建CI需要掌握的硬核要 ...

  2. 持续集成之④:GitLab触发jenkins构建项目

    持续集成之④:GitLab触发jenkins构建项目 一:目的为在公司的测试环境当中一旦开发向gitlab仓库提交成功代码,gitlab通知jenkins进行构建项目.代码质量测试然后部署至测试环境, ...

  3. 什么是云效持续集成?如何关联Jenkins进行持续集成?

    什么是云效持续集成?如何关联Jenkins进行持续集成?云效流水线 Flow是一款企业级.自动化的研发交付流水线, 提供灵活易用的持续集成.持续验证. 持续发布功能,帮助企业高质量.高效率的交付业务. ...

  4. Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布

    环境:Windows 2008 R2.Jenkins2.235.1.Visual Studio 2017: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成S ...

  5. 持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置具体解释

    本文同意转载.但请标明出处:http://blog.csdn.net/wanghantong/article/40985653/, 版权全部 文章概述: 一. 描写叙述了持续集成工具Hudson的安装 ...

  6. 「持续集成实践系列」Jenkins 2.x 搭建CI需要掌握的硬核要点

    1. 前言 随着互联网软件行业快速发展,为了抢占市场先机,企业不得不持续提高软件的交付效率.特别是现在国内越来越多企业已经在逐步引入DevOps研发模式的变迁,在这些背景催促之下,对于企业研发团队所需 ...

  7. [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...

  8. Web API 持续集成:PostMan+Newman+Jenkins(图文讲解)

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上篇文章我们已经完成了API测试工具选型,接下来是一系列周期性的开发 ...

  9. CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接

    原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...

随机推荐

  1. Docker镜像导致centos-root根分区容量爆满

    当虚拟机服务器运行Docker久了后,发现Docker的文件越来越大,某天发现此台机上的数据库访问不了了,再重启数据库等日志,提示空间不足,查看磁盘空间: root分区满载啊,前段时间还有不少空间的, ...

  2. JavaScript URL传值过程中遇到的问题及知识点总结

    JavaScript URL传值过程中遇到的问题及知识点总结 Web系统开发过程中经常用到URL进行传值,刚刚接触时不太会解析,会出现中文乱码问题等. 1.父子页面之间的传值(在一个页面中以加载ifr ...

  3. Xcode 单元测试

    项目创建后自动创建的单元测试文件夹, 文件夹名为项目名+tests, xcode6后貌似没有选择是否添加测试target的选择了. 默认生成的如下图 提供的断言如下 typedefNS_ENUM(NS ...

  4. FORTH基本堆栈操作

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  5. linux_发邮件

    如何通过linux发邮件? 邮箱配置文件: /etc/mail.rc 1. 邮箱文件配置 vim /etc/mail.rc # 添加一下数据 set from=beimen@163.com smtp= ...

  6. Django_form验证

    需求: 当用户向Django后端以post提交数据的时候,无论前端是否进行数据合法验证,后端都需要对客户端提交过来的数据进行数据合法性验证,是否可以利用models中表类字段的约束来实现验证,并且可以 ...

  7. python_print和input

    什么是输入? --用户从键盘.鼠标或其他终端 输入 的数据 -- input("提示信息") --python 2.7 rqw_input("提示信息") 如何 ...

  8. WebSphere--基本特性

    WebSphere应用服务器使您能够为Servlet 的开发实现 "一次写成,各处使用"的目的.该产品包括一个基于 Java 的 Servlet 引擎,独立于 Web 服务器和它所 ...

  9. CSS中设置border:none和border:0的区别

    在我们设置CSS的时候,对标签元素不设置边框属性或者取消边框属性一般设置为:border:none;或border:0;两种方法均可. border:none;与border:0;的区别体现有两点:一 ...

  10. C# 类型基础(上)

    C#类型都派生自System.Object 祖先的优良传统:Object的公共方法 Equals: 对象的同一性而非相等性 GetHashCode:返回对象的值的哈希码 ToString:默认返回类型 ...