不管是哪种自动化,最终必然是要和持续集成结合在一起的,在本地IDE里运行只适合代码调试的时期。当前最流行的持续集成框架就是Jenkins了。
下面通过一个简单的例子,演示如何使用Jenkins slave进行远程的Selenium webdriver自动化测试。
Selenium Webdriver的代码这里就不涉及了,正常写即可。
Jenkins master部署在Ubuntu 16.04 LTS上,slave部署在win7上,安装了Firefox和geckodriver。测试代码放在Git上。
一、环境搭建
1、Jenkins安装
在Ubuntu上使用docker搭建Jenkins环境,从hub.docker下载最新版本的Jenkins镜像:
docker pull jenkins/jenkins:lts
创建本地持久化目录jenkins_home作为jenkins的工作目录,然后用如下命令启动:
mkdir jenkins_home
docker run -p 8080:8080 -p 50000:50000 -v /home/itsgoodtobebad/jenkins_home:/var/jenkins_home --name jenkins -d jenkins/jenkins:lts
在docker里查看初次启动时Jenkins给出的密码:
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
访问:http://ip:8080,解锁Jenkins,输入上面看到的初始Admin密码,进行简单的配置(主要是安装插件,按照推荐即可),下面会用到的一些插件主要包括:
Git plugin
Git API Plugin
Maven Integration
2、插件配置
JDK配置:系统管理—Global Tool Configuration
MAVEN配置:选择版本和自动安装即可。注意如果没有配置MAVEN,新建项目时是不会出现“构建一个maven项目”的。
3、配置github凭据(可选)
进入菜单“凭据”—“系统”—“全局凭据”—“添加凭据”,为github添加一个凭据(输入你的Git用户名和密码)。
二、配置Windows Slave节点
1、登录Jenkins,选择菜单“系统管理
2、新增一个windows的从节点
选择一个远程工作目录,启动方法选择:Launch agent via Java Web Start,这个是最简单最方便的,也是官方推荐的。
记住给节点一个标签,后面在选择使用哪些节点运行测试时方便选择。
3、点击刚刚建好的节点,点击那个“Launch”下载slave-agent.jnlp文件(也可以在slave上直接启动)
4、启动slave-agent.jnlp
这里可以选择,每次测试的时候手工来启动,还是“Install as a service”,开机自动启动。
这个“File”菜单,需要连接Master成功后才会出现。
三、新建构建任务
1、构建一个maven项目
2、点击“立即构建”
构建策略一般会配置为定时,或者代码有改动时。不过这里我们就立即构建,测试是否能顺利完成测试。
3、邮件配置
实际的持续集成是配置了Extended E-mail Notification的,发送测试结果到相关人员邮箱,这里就不展开了。
四、其他问题
1、pom配置
凡是需要上Jenkins的工程,都尽量显式的指定Maven插件的版本号,包括resource、compiler等。
并且最好显式的配置好字符集、JDK版本号等,不要使用环境默认配置,避免出现问题。
在本地IDE运行正常,但是到Jenkins报错,很多都是因为没有正确配置Maven插件引起的。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>