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 ...
随机推荐
- CentOS 6.5安装MongoDB 2.6(多yum数据源)
下面我们在CentOS 6.5 x64系统上安装最新的MongoDB 2.6.5版. 在MongoDB v2.6.5版的软件仓库一共有五个包: 1)mongodb-org此包是元数据包,它可以实现自动 ...
- PS 滤镜—— 径向模糊
这里给出灰度图像的模糊算法,彩色图像只要分别对三个通道做模糊即可. %%% radiation blur %%% clc; clear all; close all; I=imread('4.j ...
- linux下的系统垃圾清理
sudo apt-get autoclean --清理旧版本的软件缓存 sudo apt-get clean--清理所有软件缓存 sudo apt-get autoremove--删除系统不再使用的孤 ...
- Sencha touch API
Sencha touch API http://docs.sencha.com/touch/2.3.1/#!/guide/getting_started
- MOOS通配符订阅
MOOS通配符订阅 简介 通配符订阅是MOOSV10的重要进步,客户端可以通过此方式订阅名字和来源符合简单正则表达式的数据. 现在仅支持"*"和"?"两种通配符 ...
- fastDFS与java整合文件上传下载
准备 下载fastdfs-client-java源码 源码地址 密码:s3sw 修改pom.xml 第一个plugins是必需要的,是maven用来编译的插件,第二个是maven打源码包的,可以不要. ...
- Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离
1.新建WebApi 2.安装Microsoft.AspNetCore.SignalR 3.新建一个集线器和消息类 using Microsoft.AspNetCore.SignalR; using ...
- vncdotool - A command line VNC client
作者:Daly 出处:http://www.cnblogs.com/daly 欢迎转载,也请保留这段声明.谢谢! 之前的一个项目需要需求希望可以通过命令行去远程执行一些Windows 系统操作. 所以 ...
- AngularJs 指令directive之require
controller的用法分为两种情形,一种是require自定义的controller,由于自定义controller中的属性方法都由自己编 写,使用起来比较简单:另一种方法则是require An ...
- spring mvc和spring的区别
springmvc只是spring其中的一部分. spring 可以 支持 hibernate ,ibatis ,JMS,JDBC 支持事务管理, 注解功能,表达式语言,测试 springmvc 就是 ...