UI自动化持续化集成

自动化持续化集成-策略初稿html

 

1、 策略意义与相关解释java

广义的持续化集成是贯穿于整个开发流程的:开发开发完成相应的需求后,向SVN或是GIT服务器上提交代码,此时持续化集成就会进行词法检查,语法检查,代码和注释比例的检查,运行单元测试用例;此时是开发的持续化集成,若是任何环境出现了问题,就会把代码打回,通知相关开发作修改。若是此环节经过后,则会自动推送到测试环境上,完成自动部署;部署成功后,则调用咱们关联的自动化测试用例,执行相应的测试用例,若是测试用例失败则会根据重跑机制再次运行。确保真正失败后,会发邮件或是短信通知相关的人员,作修改,当开发再次提交代码的时候,整个流程又会执行一遍。数据库

狭义的持续化集成就是只有测试环境,咱们经过将测试用例接入到Jenkins中,而且根据须要设置定时执行或是绑定到开发的job上,触发式执行。若是测试用例执行失败后,就发送相应的通知给相关人等,通知他们去作相应的修改。在狭义持续化集成过程当中,是不包含咱们对开发部分的检测和单元用例执行的。windows

2、 运用的技术及框架浏览器

1、整体框架:Jenkins(持续集成服务器)+Maven(项目管理)+SVN(代码管理平台)+WebDriver(自动化测试工具)+Java(脚本语言)+TestNG(测试框架)安全

2、VisualSVN:服务器

我这里用的visualSVN本身模拟SVN框架

3Jenkins持续集成: svn

域名:http://localhost:8080/工具

用户名:XXXXX  密码:XXXX

3、 Jenkins集成测试服务器搭建步骤:

一、   原理:

  找任意一台电脑为jenkins服务器,进行搭建,而后经过svn管理更新最新的代码,经过日程表定时执行自动化用例,输出结果,反馈邮件

2、Jenkins从安装到服务器搭建完毕

2.1 安装 Jenkins

从官网上下载安装程序:

(1) 打开官网:http://jenkins-ci.org/

(2) 能够下载 war 包,而后运行命令:

$java -jar jenkins.war

(3) 下载 windows 版本的,运行 Exe 程序便可安装。

(4) 安装成功后,在网址中输入:http://127.0.0.1:8080/。打开以下所示网页,说明安装成功。

2.2 Jenkins 的配置

(1)全局变量的设置

点击 Jenkins 左侧的“系统管理”—>“系统设置”,设置全局

变量:

JDK、Maven 配置:

配置一个 JDK、Maven 实例,请在每一节下面单击 Add(新增) 按钮,这里将添加实例的名称和绝对地址。下图描述了这两个部分。

 

JDK 别名:本身能够命名,起到识别做用。

JAVA_HOME:这个是本机 JDK 的安装路径(错误的路径会有红字提示你的)

自动安装:不推荐这个选项

(2)Maven 项目配置

 

设置本地的 Repository 路径,在咱们 build 工程的时候下载相应的依赖包。

(3)Jenkins 访问配置

 

Jenkins URL:jenkins 的访问地址,这个是默认的,能够改为你喜欢的 hostname.

系统管理员邮件地址:设置 Jenkins 系统管理员的邮件,若是不设置在邮件通知的时候会出问题。

SSH 的端口号设置,还有 CVS 相关的设置,能够采用默认的。

(4)邮件通知配置

根据设置提示,配置你要发送邮件的服务器信息以及 SMTP 认证的用户名及密码等。我的建议:这个邮件用户名最好和上面的系统管理员邮箱一致,不然会出现莫名其妙的错误。

(5) Configure Global Security(全局安全设置)

在已运行的 Jenkins 主页中,点击左侧的系统管理—>Configure

Global Security 进入以下界面:

 

启用安全,选择“Jenkins 专有用户数据库”—>“容许用户注册”,保存后即出现注册和登陆选项。

注册一个账号,登陆后便可使用 Jenkins。

 

2.3 代码持续化集成

配置完成后,咱们须要把代码接入到 Jenkins 中,以完成咱们的

持续化集成相关的工做。

(1) 建立 Job

单击左侧的“新建”按钮,在打开的页面中选择“构建一个自由风格的软件项目”,而后输入项目名字,如:“DemoApiTest”,单击“Ok”对其进行配置。

 

(2) 配置项目

A,在打开的页面中进行配置,输入项目描述,方便咱们识别出项目的功能。是否丢掉旧的构建,以及相关设置。

B,源码管理

此处输入咱们要执行的源码对应的 SVN 路径,在上面咱们经过 VirtualSVN Server 来把咱们本地的文件变成了 SVN 对应的路径,拷贝 我 们 设 置 的 路 径 , 如 : https://58-PC/svn/APITestCases/TestCases 。 选 择 “ Subversion” , 在 Repository URL 后填写这个路径,回车后会提示受权问题,单击 “enter credential”连接,在打开的页面中输入 SVN 的用户名和密码。再次返回到这个页面后,报错信息就会消失。

 

C,1构建

在增长构建步骤中选择“Execute Windows batch Command”,而后输入咱们的构建脚本,如咱们的接口执行命令是:

cd accuser ——表示进入这个测试用例集

mvn clean install ——表示开始编译测试用例集

2构建触发器:定时监控执行

A,打开要配置邮件通知的工程,单击左侧的“配置”连接,打开配置页。

B,向下滚动页面,找到“构建触发器”,选择“Build periodically” 定时执行。

C,设置定时执行,如:“H/5 * * * *”。

“日程表”中填写 * * * * *,含义以下:

第一个参数表明的是分钟 minute,取值 0~59;第二个参数表明的是小时 hour,取值 0~23;第三个参数表明的是天 day,取值 1~31;第四个参数表明的是月 month,取值 1~12;

最后一个参数表明的是星期 week,取值 0~7,0 和 7 都是表示星期天。

因此 “H/5 * * * *”,则表示每五分钟执行一次。

D,保存工程配置后,工程会五分钟执行一次。

E,保存配置:单击保存按钮,便可保存相关的配置。

(3) 构建 Job

进入工程,单击左侧的“当即构建”连接,构建项目。构建完成后,能够看到左下的 Build History 下有相应的版本号。版本号为蓝色的时候表示构建成功,红色表示构建失败。

(4) 查看构建结果

单击“Build History”下相应的版本号,进入到构建详情页。单击右侧的“Console Output”,进入控制台输出页,能够查看本次的构建输出状况。

至此,咱们的接口自动化代码接入到了 Jenkins 中,但是尚未达到咱们的持续集成的目的。

2.4,Jenkins 高级应用

(1)失败发送邮件

在咱们工程执行失败后,咱们但愿获得相应的通知,而 Jenkins

也有相应的配置的。咱们在前面设置了邮件通知发送的相关配置,但是要达到真正发送邮件,咱们还须要在对应的工程中进行配置。

 

A,打开要配置邮件通知的工程,单击左侧的“配置”连接,打开配置页。

B,向下滚动页面,找到“增长构建后操做步骤”下拉框,选择“E-mail Notification”项。

C,在 Recipients 后输入要接收邮件的邮箱地址,多个邮件地址之间用空格分隔。

D,选择“每次不稳定的构建都发送邮件通知”,保存后,在 job 运行失败后便会给设置的邮箱发送邮件通知。

(2)发送邮件

安装 Email Extension Plugin 插件

进入系统管理--系统设置

首先找到 Extended E-mail Notification 

(3)触发执行

自动化测试用例一般在开发发布一个版本后,咱们就执行,进行回归测试,这就要求咱们时刻监控着开发的 Job。一旦开发的 Job 执行完成,把代码部署到了测试环境上,咱们就开始执行测试用例,具体设置以下:

 A,打开要关联其余 Job 的设置页,找到构建触发器项。

B,选择“Build after other projects are build”项目,此时会展现下面几项:

---Projecte to watch:须要监控的项目,也就是咱们要关联的项目。

---Trigger only if build is stable:被监控的项目稳定时触发。 ---Trigger even if the build is unstable:被监控项目即便不稳定也触发。

----Trigger even if the build is fails: 被监控项目即便失败也触发。

能够根据项目的状况,选择不一样的触发条件,这样咱们的项目会随着被监控程序的变化而随时运行。(4)发送本身生成的报告

添加插件“Extended E-mail Notification”,而后打开要发送本身 产 生 报 告 的 工 程 的 设 置 项 目 , 找 到 “ 增 加 构 建 后 操做”—>”Editable Email Notification”项目,进行相关的设置:

Disable Extened Email Publisher:是否关闭发送扩展邮件

Project RecipientList:接收这个邮件的邮箱地址列表

Project Reply_To List:抄送邮件的邮箱地址列表

Content Type:邮件内容格式

Default Subject:默认邮件主题

Default Content:默认邮件内容

默认内容示例:

<hr/>

<font size="4">

<font color="#FF0000">(本邮件是程序自动下发的,请勿回复!)</font><br/><hr/>项目名称:$PROJECT_NAME<br/>

构建编号:$BUILD_NUMBER<br/>

svn 版本号:${SVN_REVISION}<br/>

构建状态:$BUILD_STATUS<br/>

触发缘由:${CAUSE}<br/>

构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/>

构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

###单击可查看报告文件详情

运行结果:<a href="${BUILD_URL}../ws/report.html">Report Detail>>></a><br/> ${FILE,path="./report.html"}<br/><hr/> #将生成的报告嵌入到邮件中

</font>报告结果以下:

 

其余设置以下:

在 Trigger 中添加触发事件,在什么状况下发送这个自定义的邮件,如:Failure-Any,只要失败就会发送邮件。

 

定义了触发器后,咱们再定义邮件发送给谁,如:Recipient List,会把邮件发送给咱们上面定义的邮件接收列表中的全部邮箱地址。

设置完成后保存,此时咱们就会收到两封邮件,一封是 Jenkins 本身发送的,一封是咱们自定义的。

4、 疑难问题汇总:

一、   jenkins调用selenium脚本不打开浏览器解决方法

Step 1. Control Panel(控制面板) -> Administrative Tools(管理工具) -> Services(服务),找到Jenkins,右键菜单,执行stop; 右键菜单 “属性” start type 选择“Disabled”  点击 应用,点击肯定。(这一步目的:让jenkins不在以windows 服务的方式在后台运行)

Step2.  经过命令行启动Jenkins

  java -jar "D:\Program Files (x86)\Jenkins\jenkins.war"

  固然,你们也能够作个bat文件,之后每次启动jenkins,双击运行这个bat文件就OK了,bat文件内容以下:

  echo "Jenkins CI automation testting"

D:

cd "D:\jenkins

java -jar "D:\jenkins\jenkins.war"

pause 

Step3. 从新建立Jenkins的Job,从新配置,在执行测试

注意:运行的jenkins.war决定jenkins主目录在哪里

问题解决了。

注意问题:

(1)经过这种方式启动jenkins,以前以windows service 启动jenkins的数据都丢失了,须要从新建立job。

(2)以前以windows service 启动jenkins中安装的插件也没有了,须要从新安装所需插件。