UI自动化持续化集成

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

 

一、 策略意义与相关解释

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

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

二、 运用的技术及框架

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

2、VisualSVN:

我这里用的visualSVN自己模拟SVN

3Jenkins持续集成:

域名:http://localhost:8080/

用户名:XXXXX  密码:XXXX

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

1、   原理:

  找任意一台电脑为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 自己发送的,一封是我们自定义的。

四、 疑难问题汇总:

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

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

Step2.  通过命令行启动Jenkins

  java -jar "D:Program Files (x86)Jenkinsjenkins.war"

  当然,大家也可以做个bat文件,以后每次启动jenkins,双击运行这个bat文件就OK了,bat文件内容如下:

  echo "Jenkins CI automation testting"

D:

cd "D:jenkins

java -jar "D:jenkinsjenkins.war"

pause 

Step3. 重新创建Jenkins的Job,重新配置,在执行测试

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

问题解决了。

注意问题:

(1)通过这种方式启动jenkins,之前以windows service 启动jenkins的数据都丢失了,需要重新创建job。

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

 

原文地址:https://www.cnblogs.com/TestMa/p/8617110.html