基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - Jenkins[定时计划执行任务]

基于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 (报告、模板框架)

持续更新中

WebDriver框架篇 - 利用Jenkins定时、计划执行任务

Jenkins

  • 前提条件:已经成功安装了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/

1、去官网下载jenkins.war 包

官网地址:http://Jenkins-ci.org/
官网镜像地址:http://mirrors.jenkins-ci.org/war-stable/ 在里面可以选择任意版本的war包,lastest为最新的,推荐下载!

2、启动jenkins

  • 将下载好的jenkins.war包放置在想要放置的路径下
  • 打开cmd,进入 dos 命令窗口,并进入放置 jenkins.war包的路径下
  • 输入命令 : java -jar jenkins.war

当出现“Completed initialization”提示时,表示启动成功。


在这里插入图片描述


3、访问jenkins

  • Ⅰ、当jenkins启动成功之后,在浏览器输入 http://localhost:8080/

在这里插入图片描述


  • Ⅱ、第一次访问 http://localhost:8080/ 第一次访问时,需要根据提示使用官方提供的初始化密码才能进行正常的访 问,进入对应提示的目录,打开文件或者直接粘贴至命令行窗口输出即可。

  • Ⅲ、进行下一步,会进入安装插件的页面,一般情况下我们都直接选择“推荐安装” 的插件,也可以选择“自定义安装”。需要注意的是“推荐安装”是不包含maven项目支持插件的,所以如果是maven 项目,还需要单独安装maven支持的插件的。下文附带有maven项目的支持插件。

  • Ⅳ、插件安装完成之后,需要创建第一个用户。
    创建用户之后,就可以访问jenkins了。否则只能使用官方提供的初始化密码进行访问。

4、Maven项目支持插件的安装方法:

系统管理 > 插件管理 > 可选插件 搜索 maven 找到 Maven Integration pluginMaven Release Plug-inPublish Over SSHSubversion Plug-in 安装,然后就可以选择构建maven项目了.(插件安装参考下图)


在这里插入图片描述


5、关于jenkins首次安装、访问过程中遇到的一些问题及解决方法

Jenkins首次安装,输入初始化密码一直停留在向导界面问题。

这是因为网络原因导致,因为Jenkins服务器在国外所以导致下载过慢。下载的地址是写在jenkins安装路径 ./jenkins/hudson.model.UpdateCenter.xml 文件中的,内容如下:


在这里插入图片描述


将 url 改为:http://mirror.xmission.com/jenkins/updates/update-center.json 即可。上述链接为国内清华大学开源软件镜像站。

关于修改Jenkins启动其他端口的解决方法

启动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.war所在路径输入命令:java -jar jenkins.war
  • 而想要启用其他端口的话,输入命令:java -jar jenkins.war --httpPort=8081

这样只是临时修改了 Jenkins 的端口,如果重启Jenkins的话会发现启动的仍然是 8080端口,且之前若在其他端口下创建的工作项都不见了。这样的结果肯定不是 我们想要的,这里我们可以自己新建个bat脚本。

bat脚本:

e:
cd E:\workspace
java -jar jenkins.war --httpPort=55555

每次都通过运行这个脚本来启动Jenkins,其实就是每次都设置一遍Jenkins的端口,虽是个笨法子,但是确实落地的解决了问题。


在这里插入图片描述


6、构建Jenkins job(工作项)

访问 http://localhost:55555/ ,并创建一个新的任务


在这里插入图片描述


输入项目名称

  • 这里需要注意一下,这里我们选择“构建一个自由风格的软件项目”。
  • 如果是maven 的项目就选择配适maven 项目的选择。

在这里插入图片描述


general 【描述这里随便填写,一般填写项目的简述】


在这里插入图片描述


源码管理

  • 如果有SVN的情况下,选择 Subversion ,然后填写我们的SVN地址
  • 这里因为我们没有SVN,所以我们选择 None

在这里插入图片描述


构建触发器


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符号可以被认为是一个范围内的随机值,但它实际上是作业名称的散列, 而不是随机函数,因此对于任何给定的项目,该值都保持稳定。

请注意,对于月份日的字段,由于月份长度可变,因此短周期(例如*/3H/3 不会在大多数月份结束时保持一致)。例如,*/3将在一个月的第1,431天运行,然后再在下个月的第二天运行。哈希总是选在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 *

构建环境,这里我们选择使用 “ant”


在这里插入图片描述


构建

这里我们选择 invoke ant,分别依照下图

构建 --> invoke ant --> 高级 --> Build file

输入 build.xml 文件路径即可


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


应用、保存。

基本上配置到这种程度,我们的一个任务项就搭建完成了。

7、运行/验证已构建任务

点击已构建好的任务,如下图。


在这里插入图片描述


选择“立即构建”


在这里插入图片描述


运行完成后,点击构建完成的任务,进入“控制台输出”,可查看结果。


在这里插入图片描述


在这里插入图片描述


8、外部框架基本完成

ant + testng + webdriver + grid + xslt + Jenkins

ant : 编译,调用testng 发送邮件报告
testng :调用webdriver 公共参量参数化,调用grid框架,运行条件并提供一			个基础的测试报告
webdriver :真正实现测试逻辑 
grid : 执行脚本分发到不同的机器,用于远程分布式测试和并发测试
xslt:有效的提升测试报告的可读性
Jenkins:自动执行,定期执行,命令式执行。

Guess you like

Origin blog.csdn.net/weixin_42250835/article/details/121133211