Jenkins简介

  Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目。所以Jenkins和Hudson功能相似。

  Jenkins支持各种版本的控制工具,如CVS、SVN、Git、Mercurial、Perforce和ClearCase,而且可以执行用Apache Ant或Java Maven构建的项目。同时,它也可以利用一些插件、Shell脚本和Windows批处理命令来构建其他平台的项目。

  Jenkins除了构建软件功能外,还可以用于搭建自动化测试环境,比如实现Python Selenium测试的无人值守的情况下按照预定的时间调度运行(如晚上),或者每次代码变更提交至版本控制系统时实现自动运行的效果。

  下面,我将演式如何搭建Jenkins并创建一个自由风格的软件项目在无人值守的情况下按预定时间自动化测试(基于Python Selenium自动化测试)。

Jenkins环境准备  

  为了能够成功使用Jenkins执行测试,我们需要做一些修改。目标是在Jenkins上按计划执行测试,然后收集测试结果并显示在Jenkins Dashboard页面。为了实践,我将重用之前创建的百度冒烟测试。

  我使用了unittest的TestSuite Runner批量执行测试,并以JUnit报告的格式输出测试结果。这里需要用到Python下的xmlrunner库。执行以下命令下载与安装xmlrunner。

  pip install xmlrunner

  百度冒烟测试脚本在通过TestSuite Runner运行homepagetests.py和searchtests.py两个脚本中的测试。最后用xmlrunner.XML TestRunner来运行冒烟测试并生成JUnit测试报告。此报告以XML格式生成,保存在test-reports子文件夹中。代码如下:

   

搭建Jenkins

  搭建Jenkins简单。下载系统平台的Jenkins包并进行安装。下面我将安装并启动Jenkins,然后创建一个新的构建作业以对上面的脚本进行在无人值守的情况下按照预定的时间调度运行(百度冒烟测试)。

  1)下载并安装Jenkins CI服务器。我下载的是Jenkins Windows安装包,并在Windows7上安装Jenkins。

  2)从浏览器进入Jenkins Dashboard页面(默认情况下为http://localhost:8080)。

  3)在Jenkins Dashboard页面上,单击新建项目(New Item)链接,创建一个新的Jenkins作业,如下图所示:

  

  4)在项目名称(Item name)文本框中输入Baidu_Smoke_Test,然后选择构建自由风格的软件项目(Freestyle project)单选按钮,如下图所示:

  

  5)单击确定(OK)按钮。以上指定名称命名的新作业就创建成功了。

  6)在构建(Bulid)部分,单击增加构建步骤(Add build step),然后从下拉列表中选择执行Windows批处理命令(Execute Windows batch command)选项,如下图所示:

  

  7)在命令(Command)文本框里输入以下命令,如下图所示。这个命令将冒烟测试的Python脚本文件复制到Jenkins工作空间下并执行smoketest.py。

  

  8)在前面已经配置了smoketest.py以生成JUnit格式的测试结果,并将测试结果显示在Jenkins Dashboard页面。要在Jenkins中集成这些报告,先单击增加构建后操作步骤(Add post-build action),然后选择发布JUnit测试结果报告(Publish JUnit test result report)选项,如下图所示:

  

  9)在构建后操作(Post-build Aactions)部分中,在测试报告XML(Test report XMLs)文本框中添加test-report/*.xml,如下图所示。Jenkins每次运行测试的时候,它将从test-reports子文件夹中读取测试结果。

  

  10)由于需要按计划时间自动执行测试,在构建触发器(Build Triggers)部分选择定期构建(Build periodically),并在计划(Schedule)文本框中输入如下图所示数据。那么,每天下午18:24构建过程将自动触发,作为无人值守构建过程的一部分,Jenkins也将自动执行测试,这样在第二天早上当你到达办公室的时候就可以看到测试执行结果了。

  

  11)单击保存按钮保存作业配置,Jenkins将会显示新创建的作业项目页面。

  12)现在可以来检测一下所有的配置是否设置好,测试是否能成功执行。单击立即构建(Build Now)链接手动运行该作业,如下图所示:

  

  13)在构建历史(Build History)部分中可以查看构建的运行状态,如下图所示:

  

  14)单击构建历史(Build History)部分中正在运行的项目,将打开如下图所示的页面。

  

  15)除了Jenkins页面上的执行状态和进度条,还可以通过打开控制台输出(Console Output)链接观察后执行信息。如下图是有命令输出信息的“控制台输出”页面。

  

  16)一旦Jenkins完成构建过程,就可以看到一个类似于下面截图所示的构建页面。

  17)Jenkins通过读取unittest框架生成的测试文件,在页面上显示测试结果和其他各项指标。单击构建页面上的测试结果(Test Results)链接可以查看Jenkins保存的测试结果。

  18)之前配置的测试结果以JUnit格式生成。当单击测试结果(Test Results)时,Jenkins将会显示JUnit测试结果,如下图所示,显示测试结果摘要,其中失败的测试会高亮显示。

  

  19)我们也可以单击Package名字的链接来查看各个测试的详细结果信息,如下图所示:

  

  20)Jenkins还会以下图所示的格式在Dashboard主页上显示所有构建作业的最终状态信息。

  

  综上所述,通过搭建Jenkins运行Python Selenium测试,从而实现每天晚上在无人值守的情况下自动构建程序和执行测试。即实现了简单的持续集成测试。

Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)的更多相关文章

  1. [转载]Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试 -2

    自己的代码 import unittest # import HTMLTestRunner_cn as HTMLTestRunner import xmlrunner import sys sys.p ...

  2. Jenkins持续集成项目搭建——基于Python Selenium自动化测试

    参考链接:https://www.liaoxuefeng.com/article/1083282007018592 第一步:去官网https://jenkins.io/下载最新的war包 第二步:安装 ...

  3. Jenkins持续集成学习-搭建jenkins问题汇总

    目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...

  4. 开源you-get项目爬虫,以及基于python+selenium的自动测试利器

    写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...

  5. Jenkins可持续集成项目搭建——配置Jenkins基本设置 & 运行脚本报错点

    一.系统管理->全局工具配置:配置JDK.GIT: 二.项目配置-部署源码管理的远程地址 三.项目配置-构建触发器(以Windows平台举例) 构建项目时,会自动分配一个运行空间(D:\Prog ...

  6. Jenkins - 持续集成环境搭建

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

  7. Jenkins - 持续集成环境搭建【转】

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

  8. Jenkins可持续集成项目搭建——配置邮件

    1.系统管理->系统设置 (1)填写系统管理员邮件地址 (2)填写邮箱配置.发件人邮箱.收件人邮箱 注:1>发件人邮箱地址必须和系统管理员邮箱地址一致 2> 部分邮箱配置输入的不是登 ...

  9. Jenkins持续集成环境搭建

    1部署Jenkins Jenkins部署很简单,只需建立一个新应用,将Jenkins的war包部署进去,再分配好权限就可以了. 1.1创建应用 建立一个新Nginx应用:jenkins.com 1.2 ...

随机推荐

  1. 通信录列表+复杂Adapter分析

    概述 最近写论文之余玩起了github,发现有个citypicker挺不错的,高仿了美团城市选择和定位的一些功能 地址链接 效果图如下: 自己手动写了一遍优化了一些内容,学到了一些姿势,下面对其中一些 ...

  2. 解决水平ListView在ScrollView中出现的滑动冲突

      解决的问题有两个:  1)实现水平滑动的ListView.重写AdapterView,上代码: package com.liucanwen.horizontallistview.view; imp ...

  3. SharePoint 调查添加图片支持

    前言:今天,碰到一个有趣的问题,就是SharePoint调查里面,添加对于图片的支持,众所周知,SharePoint的调查就支持那么几种字段类型的问题,当然,我们可以开发实现,不过,这个不是我们今天介 ...

  4. asp.net core选项配置的研究

    asp.net-core选项模块是全新,可拓展的框架,其作用在整个.net-core框架中,就像依赖注入一样无处不在,是一个很重要的组件. 其实配置模块与选项模块是紧密相连的,我们可以使用Config ...

  5. Runtime - ③ - 分类Category探究

    写博客只是为了让自己学的更深刻,参考:https://tech.meituan.com/DiveIntoCategory.html 分类(Category)是个啥玩意儿这里就不多介绍了,这里主要是研究 ...

  6. CRM客户关系管理系统(十)

    第十章.kingadmin+admin+actions功能开发 10.1. django admin的action  可以自己写个函数执行批量操作 crm/admin.py 后台admin actio ...

  7. sqlplus 登录数据库

     sqlplus pams/pamscncc@ORCLMIS

  8. JDK 常用命令

    一) 引言:    当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具.正所谓“工欲善其事,必先利其器.”如果能用好这些工具,它们将大大方便你的开发.它们的实用和方便有时甚至会使 ...

  9. 聊聊Unity的Gamma校正以及线性工作流

    0x00 前言的前言 这篇小文其实是在清明节前后起的头,不过后来一度搁笔.一直到这周末才又想起来起的这个头还没有写完,所以还是直接用一个月前的开头,再将过程和结尾补齐. 0x01 前言 结束了在南方一 ...

  10. Amazing iOS Tips

    先开个题,慢慢加内容: 准备参考的资料 https://github.com/Aufree/trip-to-iOS       https://github.com/vsouza/awesome-io ...