基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 -常见的页面元素操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - iframe元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 元素定位场景分析
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象属性
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象状态
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 第三方控件类操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 执行JS操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - WebDriver的三种等待方式
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 模拟键盘操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 代码检查点[验证点/断言]与图像检查点
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - cookie操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - exe文件执行
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - grid [跨浏览器远程测试-可分布式]
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 框架设计小结
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - testng使用
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - 关于如何手动下载JAR包
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant安装、环境变量配置、ant实例及运行Ant Build 出现问题的解决方法
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用testng文件及ant 调用testng遇到的问题
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant发送邮件显示源码的解决方法
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - XSLT (报告、模板框架)
持续更新中
前提条件:已经成功安装了JDK,因为jenkins是一款基于java的持续集成工具。【本不想写这句废话的,奈何强迫症。】
准备工具:下载一个jenkins的war包。
启动方法:如把jenkins.war包放置在e盘根目录下,则打开cmd,进入E盘目录下。
输入命令:
java -jar jenkins.war ,就可以启动jenkins了。
E:
java -jar jenkins.war
见下图
上图所示:因为将jenkins.war 包放在了项目路径下,所以是在项目路径下 启动的。
安装目录:jenkins的默认安装目录在C:\Users\Administrator.jenkins下面
访问地址:http://localhost:8080/
官网地址:http://Jenkins-ci.org/
官网镜像地址:http://mirrors.jenkins-ci.org/war-stable/ 在里面可以选择任意版本的war包,lastest为最新的,推荐下载!
java -jar jenkins.war
当出现“Completed initialization”提示时,表示启动成功。
Ⅱ、第一次访问 http://localhost:8080/
第一次访问时,需要根据提示使用官方提供的初始化密码才能进行正常的访 问,进入对应提示的目录,打开文件或者直接粘贴至命令行窗口输出即可。
Ⅲ、进行下一步,会进入安装插件的页面,一般情况下我们都直接选择“推荐安装” 的插件,也可以选择“自定义安装”。需要注意的是“推荐安装”是不包含maven项目支持插件的,所以如果是maven 项目,还需要单独安装maven支持的插件的。下文附带有maven项目的支持插件。
Ⅳ、插件安装完成之后,需要创建第一个用户。
创建用户之后,就可以访问jenkins了。否则只能使用官方提供的初始化密码进行访问。
系统管理 > 插件管理 > 可选插件 搜索 maven
找到 Maven Integration plugin
、 Maven Release Plug-in
、Publish Over SSH
、Subversion Plug-in
安装,然后就可以选择构建maven项目了.(插件安装参考下图)
这是因为网络原因导致,因为Jenkins服务器在国外所以导致下载过慢。下载的地址是写在jenkins安装路径 ./jenkins/hudson.model.UpdateCenter.xml
文件中的,内容如下:
将 url 改为:http://mirror.xmission.com/jenkins/updates/update-center.json 即可。上述链接为国内清华大学开源软件镜像站。
启动jenkins默认的端口是8080,但是8080这个端口是安全端口,很多程序 或者服务都需要使用这个端口。
在说修改jenkins启动端口之前,我们先来介绍下端口的分类【三大类】:
周知端口(Well Known Ports)
:
周知端口就是众所周知的端口号,范围从0到1023,其中80端口分配给 WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个 网 址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是 “80”。网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在 地 址栏上指定端口号,方法是在地址后面加上冒号“:”,再加上端口号。比如使 用 “8080”作为WWW服务的端口,则需要在地址栏里输入“网址:8080”。
但是有些系统协议使用固定的端口号,它是不能被改变的,比如139 端口专 门用于NetBIOS与TCP/IP之间的通信,不能手动改变。
从0到1023,它们紧密绑定于一些服务,一般不可随意更改和占用。
注册端口(Registered Ports):
端口1024到49151,分配给用户进程或应用 程序。这些进程主要是用户选择 安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在 没有被服务器资源占用的时候,可以用于用户端动态选用为源端口。
动态/私有端口(Dynamic and/or Private Ports):
动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般 不固定分配某种服务,而是动态分配。
从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从 1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
面对这种端口冲突,Jenkins官方提供的解决方法是:
这样只是临时修改了 Jenkins 的端口,如果重启Jenkins的话会发现启动的仍然是 8080端口,且之前若在其他端口下创建的工作项都不见了。这样的结果肯定不是 我们想要的,这里我们可以自己新建个bat脚本。
bat脚本:
e:
cd E:\workspace
java -jar jenkins.war --httpPort=55555
每次都通过运行这个脚本来启动Jenkins,其实就是每次都设置一遍Jenkins的端口,虽是个笨法子,但是确实落地的解决了问题。
build after other projects are built
当本job依赖的job被build时,执行本job
build periodically
隔段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式。
poll scm
隔一段时间比较一次源代码,如果发生变更,那么就build。否则,不进行build。
通常采用这种方式;
触发远程构建 (例如,使用脚本)与GitHub hook trigger for GITScm polling
这两个是管理github上代码有变动时构建,一般很少用,了解即可。
定时构建语法
* * * * * 注意:五个“*”之间有空格,从左到右分别是
分钟 小时内的分钟数(0-59)
小时 一天中的小时(0-23)
DOM 每月的一天(1-31)
月 月份(1-12)
DOW 星期几(0-7),其中0和7是星期日。
要为一个字段指定多个值,可以使用以下运算符。按照优先顺序
* 指定所有有效值
M-N 指定一个值的范围
M-N/X或者*/X在整个指定范围或整个有效范围内以X为间隔步进
A,B,...,Z 枚举多个值
为了允许定期安排的任务在系统上产生均匀负载,H应尽可能使用符号(对于 “散列”)。例如,使用 0 0 * * *
十几份日常工作将会在午夜造成大量高峰。相 比之下,使用 H H * * *
仍然会每天执行一次,但并非全部同时执行,而是使用 有限的资源。
所述H符号可以与范围内使用。例如,H H(0-7) * * *
意味着在凌晨12:00(午 夜)至上午7:59之间的某段时间。您也可以使用H带或不带范围的步距。
该H符号可以被认为是一个范围内的随机值,但它实际上是作业名称的散列, 而不是随机函数,因此对于任何给定的项目,该值都保持稳定。
请注意,对于月份日的字段,由于月份长度可变,因此短周期(例如*/3
或H/3
不会在大多数月份结束时保持一致)。例如,*/3
将在一个月的第1,4
和31
天运行,然后再在下个月的第二天运行。哈希总是选在1-28
范围内,所以H/3
在一个月的月底之间会产生3到6天的间隔。(更长的周期也会有不一致的长度,但效果可能相对较不明显。)
以空格开头的空行和#行将被忽略为注释。
此外,@yearly
,@annually
,@monthly
, @weekly
,@daily
,@midnight
,并且@hourly
也支持方便的别名。这些使用散列系统进行自动平衡。例如,在一 小时内的任何时间@hourly
都是相同的H * * * *
,并且可能意味着 @midnight
实际上是指从凌晨12:00到凌晨2:59之间的某段时间。
例子:
#每十五分钟一班(可能在:07,:22,:37,:52)
H / 15 * * * *
#每小时上半场每十分钟一次(三次,也许是:04,:14, 24)
H(0-29)/ 10 * * * *
#从上午9:45开始每小时45分钟,每个工作日下午3:45结束,每两小时一次。
45 9-16 / 2 * * 1-5
#每周工作日上午9点至下午5点每隔两小时一次(可能在上午10:38,下午12:38,下午2:38,下午4:38)
HH (9-16)/ 2 * * 1-5
#每月1号和15号每天一次(12月除外)
HH 1,15 1-11 *
这里我们选择 invoke ant,分别依照下图
构建 --> invoke ant --> 高级 --> Build file
输入 build.xml 文件路径即可
应用、保存。
基本上配置到这种程度,我们的一个任务项就搭建完成了。
点击已构建好的任务,如下图。
选择“立即构建”
运行完成后,点击构建完成的任务,进入“控制台输出”,可查看结果。
ant + testng + webdriver + grid + xslt + Jenkins
ant : 编译,调用testng 发送邮件报告
testng :调用webdriver 公共参量参数化,调用grid框架,运行条件并提供一 个基础的测试报告
webdriver :真正实现测试逻辑
grid : 执行脚本分发到不同的机器,用于远程分布式测试和并发测试
xslt:有效的提升测试报告的可读性
Jenkins:自动执行,定期执行,命令式执行。