Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)
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自动化测试(自由风格)的更多相关文章
- [转载]Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试 -2
自己的代码 import unittest # import HTMLTestRunner_cn as HTMLTestRunner import xmlrunner import sys sys.p ...
- Jenkins持续集成项目搭建——基于Python Selenium自动化测试
参考链接:https://www.liaoxuefeng.com/article/1083282007018592 第一步:去官网https://jenkins.io/下载最新的war包 第二步:安装 ...
- Jenkins持续集成学习-搭建jenkins问题汇总
目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...
- 开源you-get项目爬虫,以及基于python+selenium的自动测试利器
写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...
- Jenkins可持续集成项目搭建——配置Jenkins基本设置 & 运行脚本报错点
一.系统管理->全局工具配置:配置JDK.GIT: 二.项目配置-部署源码管理的远程地址 三.项目配置-构建触发器(以Windows平台举例) 构建项目时,会自动分配一个运行空间(D:\Prog ...
- Jenkins - 持续集成环境搭建
1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...
- Jenkins - 持续集成环境搭建【转】
1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...
- Jenkins可持续集成项目搭建——配置邮件
1.系统管理->系统设置 (1)填写系统管理员邮件地址 (2)填写邮箱配置.发件人邮箱.收件人邮箱 注:1>发件人邮箱地址必须和系统管理员邮箱地址一致 2> 部分邮箱配置输入的不是登 ...
- Jenkins持续集成环境搭建
1部署Jenkins Jenkins部署很简单,只需建立一个新应用,将Jenkins的war包部署进去,再分配好权限就可以了. 1.1创建应用 建立一个新Nginx应用:jenkins.com 1.2 ...
随机推荐
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...
- mahout系列之---谱聚类
1.构造亲和矩阵W 2.构造度矩阵D 3.拉普拉斯矩阵L 4.计算L矩阵的第二小特征值(谱)对应的特征向量Fiedler 向量 5.以Fiedler向量作为kmean聚类的初始中心,用kmeans聚类 ...
- Log4j.properties 配置详解
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- ubuntu12.04:Mysql数据库:手动安装
首先到mysql的下载中心上下载最新的tar.gz包: 1.在浏览器中输入http://www.mysql.com/downloads/ 进入mysql的下载中心,在这里有使用mysql开发的一些工具 ...
- 使用kubeadm搭建Kubernetes(1.10.2)集群(国内环境)
目录 目标 准备 主机 软件 步骤 (1/4)安装 kubeadm, kubelet and kubectl (2/4)初始化master节点 (3/4) 安装网络插件 (4/4)加入其他节点 (可选 ...
- Object对象你真理解了吗?
前言 五一回家又断更了一个放假时间了~~~ 只有光头才能变强 回顾前面: ThreadLocal就是这么简单 多线程三分钟就可以入个门了! 多线程基础必要知识点!看了学习多线程事半功倍 Java锁机制 ...
- 鹅厂优文|打通小程序音视频和webRTC
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯视频云终端技术总监常青, 2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ.手机QQ.QQ物联 等产品 ...
- 什么才是java的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- Spring中事务管理
spring事务管理两种方式 第一种 编程式事务管理(不用) 第二种 声明式事务管理 (1) 基于xml配置文件实现 (2) 基于注解实现 一:声明式事务管理(xml配置) 第一步 ...
- R实战 第七篇:网格(grid)
grid包是R底层的图形系统,可以绘制几乎所有的图形.除了绘制图形之外,grid包还能对图形进行布局.在绘图时,有时候会遇到这样一种情景,客户想把多个代表不同KPI的图形分布到同一个画布(Page)上 ...