Time will tell.

一、Jenkins简介

Jenkins是一个可扩展的持续集成引擎。

持续集成,就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。

每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

二、Jenkins用处

1、持续、自动地构建、测试软件项目。

2、监控一些定时执行的任务。

三、Jenkins特性

1、易于安装。只要把jenkins.war包部署到servlet容器即可,不需要数据库的支持。

2、易于配置。所有的配置都是通过其提供的 web 界面实现得。

3、集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 E-mail 通知相关人员以及负责人。

3、生成Junit/testNG/HTMLTestRunner测试报告

4、分布式构建支持jenkins能够让多台计算机一起构建、测试。

5、文件识别。 jenkins 能够跟踪那次构建生成那些jar,那次构建使用哪个版本的jar等。

6、插件支持。支持扩展插件,你可以开发适合自己团队使用的工具。

四、jenkins由来

持续集成(CI)目前已成为许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助开发团队应对如下挑战:

1、软件构建自动化 :

配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。

2、建可持续的自动化检查 :

CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。

3、构建可持续的自动化测试 :

构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。

4、生成后后续过程的自动化 :

当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。

下图概括了CI系统的基本结构:

该系统的各个组成部分是按如下顺序来发挥作用的:

  1. 开发者检入代码到源代码仓库。

  2. CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。

  3. CI系统会在对应的工作区内执行构建过程。

  4. 构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等)给相关的当事人。

  5. 如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像 Java.net 、 SourceForge 之类的网站。

  6. CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。

Jenkins就是这样一个CI系统,之前叫做Hudson。使用Jenkins的一些理由:

1、是所有CI产品中在安装和配置上最简单的。

2、基于 Web 访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。

3、 Jenkins 是基于 Java 开发的,但它不仅限于构建基于 Java 的软件。

4、Jenkins 拥有大量的插件。这些插件极大的扩展了 Jenkins 的功能;它们都是开源的,而且它们可以直接通过 web 界面来进行安装与管理。

五、Jenkins目的

Jenkins 主要是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。

CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。

它具有以下优点:

  1. Jenkins 一切配置都可以在 web 界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。

  2. 支持Maven的模块(Module),Jenkins 对Maven做了优化,因此它能自动识别 Module ,每个 Module 可以配置成一个 job 。相当灵活。

  3. 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。

  4. 构件指纹(artifact fingerprint),每次 build 的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。


好了,以上就分享到这里,如果你对Python自动化软件测试、面试题感兴趣的话可以加入我们175317069一起学习。群里会有各项测试学习资源发放,更有行业深潜多年的技术人分析讲解。

祝你能成为一名优秀的软件测试工程师!

欢迎【点赞】、【评论】、【关注】~

Time will tell.(时间会证明一切)

Jenkins 详细介绍相关推荐

  1. 【转】Jenkins详细教程

    最近花了一段时间研究jenkins这个工具.所以写下这篇文章,算是当做记录吧! 一.jenkins是什么? Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hu ...

  2. Jenkins详细安装配置部署--超详细

    Jenkins详细安装配置部署--超详细 一.什么是CI/CD 二.Gitlab内置持续集成 持续集成(CI) 持续交付(CD) 2.1 Gitlab的CI/CD优势 2.2 Gitlab的CI/CD ...

  3. 持续集成、持续交付、持续部署(CI/CD)详细介绍

    CI/CD详细介绍 文章目录 CI/CD详细介绍 一.集成(Integration) 二.持续集成(Continuous Integration) 三.持续交付(Continuous Delivery ...

  4. HTML页面加载和解析流程详细介绍

    浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...

  5. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  6. php比较运算符案列,PHP实例:PHP比较运算符的详细介绍

    <PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...

  7. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  8. linux路由介绍,Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...

  9. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

最新文章

  1. XMPP通讯开发-好友获取界面设计
  2. Laravel的初始化安装
  3. Discuz! 在线中文分词、关键词提取服务
  4. JavaScript实现MergeSort归并排序算法(附完整源码)
  5. C++ volatile关键字说明
  6. 正则表达式 (re包)——python(快餐)
  7. C# Winform 窗体美化(目录)
  8. node中模块系统及核心模块、执行node文件
  9. 从前端html 来限制删除去掉csdn页面广告
  10. Jw-alipay 1.0.0版本发布,开源支付窗管理平台
  11. phpcms根据二级栏目列表写的三级栏目列表
  12. 【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(二)
  13. 详析百度“原创保护”使用规范,及如何推送原创文章链接?
  14. 自己怎么制作地图,如何绘制电子版地图?
  15. Node之使用os模块获取操作系统信息
  16. ntp的同步方式slew step的区别
  17. 项目管理:项目开发类型、模型、流程以及案例介绍
  18. 进入BeOS的花花世界 系列三
  19. C#编写上位机连接华为云平台IoTDA
  20. Java Web中的一些概念(JSP、Servlet以及过滤器等)

热门文章

  1. 为什么电脑点桌面软件跳计算机,电脑玩游戏为什么会跳桌面
  2. 平行志愿计算机录取顺序,平行志愿与顺序志愿分别是什么?
  3. 微型计算机的组成结构
  4. 养殖场智能监控系统方案
  5. nginx以及openresty
  6. 牛年送祝福2021年
  7. CTF网络信息安全竞赛:记一次小比赛
  8. css上滑事件,css transition 实现滑入滑出
  9. 《重学Java系列》之 泛型(上)
  10. 【主题词——满天星】