本文将一步步指导你如何集成Selenium WebDriver和Jenkins:
1、Jenkins的简单使用以及集成selenium
2、创建一个批处理命令,并用于Jenkins
3、定期设置Jenkins任务,并加入邮件通知功能
4、命令行运行selenium脚本
Jenkins是业界非常流行的开源持续集成和持续交付工具(Java编写)。它能帮我们实现代码部署的自动化,从开发阶段的代码部署、自动化测试、测试环境部署测试、直到发布上线。Jenkins还提供了非常多的插件,能集成Git、SVN、流水线编译(pipeline)等。
跨平台能力,支持windows、Linux、MacOS和Solaris环境
免费开源工具
广泛使用,并有良好配套文档
集成了非常多的工具技术
类似的持续集成工具还包括:Anthill、Bamboo、Cruise Control、Team City等等
Jenkins最基本的功能是基于预先定义的时间和事件规则触发预先定义的一系列任务,从而完成你想要的自动化工作。比如你可以设定每20分钟定期执行某个任务或基于每次Git的代码提交触发某个任务。
本文将一步步指导你如何集成Selenium WebDriver和Jenkins:
1、Jenkins的简单使用以及集成selenium
2、创建一个批处理命令,并用于Jenkins
3、定期设置Jenkins任务,并加入邮件通知功能
4、命令行运行selenium脚本
下面我们一步步讲解Jenkins的基本使用以及如何集成Selenium.
Step#1
首先从Jenkins的官方网站下载Jenkins(https://jenkins.io/download/),可以直接下载最新的.war文件。
Jenkins可以直接通过命令行启动或部署到某个web应用服务器,比如tomcat。下面演示命令行方式。
1)打开windows命令行窗口,进到Jenkins所在目录,输入java -jar jenkins.war
2)回车,然后检查jenkins是否启动ok。若窗口输出Jenkins is fully up and running,则说明Jenkins成功启动了。
3)浏览器中输入http://localhost:8080 (默认端口为8080),若启动正常,Jenkins UI界面就会出现。
首次进去Jenkins dashboard页面应该为空,提示你新建任务。因我已提前创建本文例子,所以界面不是空的。
Step#2
在Jenkins使用selenium前,我们需要按照如下步骤配置一下。
1、进入Jenkins dashboard(也就是首页)
2、点击 系统管理
3、管理Jenkins页面上点击Global Tool Configuration
4、点击JDK安装按钮,如下图输入JDK别名:Java_Home;JAVA_HOME:你自己JDK所在目录
记住一定取消自动安装的勾选,因为默认情况下自动安装是勾选的,这意味着每当检测到新的JDK版本都会自下载更新,很可能出现Selenium版本不匹配情况,因此最好不要选择自动安装。
配置好JDK后,Jenkins就具备执行Selenium脚本的能力,因为Jenkins和Selenium的代码都是java编写,只要我们正确设置了JDK,Jenkins就具备启动Selenium脚本运行的能力。
Step#3
配置好Jenkins后,下面我们来创建Selenium脚本和TestNG XML文件。配置TestNG XML文件实现基于testNG批量执行测试脚本。
后面将通过Jenkins调用命令行.bat文件,.bat文件运行testNG就可批量执行selenium测试脚本了。
基于testNG的Selenium测试脚本如下,简单执行:打开啄木鸟之家网站首页,验证网页标题符合预期。
package birdieAuto;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class jenkins_demoTest {
@Test
public void testbaidu() {
//WebDriver driver = new FirefoxDriver();
WebDriver driver = new ChromeDriver();
// it will open the 啄木鸟之家 官网首页
driver.get("http://www.alltotest.com");
// we expect the title “Google “ should be present
String Expectedtitle = "啄木鸟之家-测试客栈";
// it will fetch the actual title
String Actualtitle = driver.getTitle();
System.out.println("Before Assetion " + Expectedtitle + Actualtitle);
// it will compare actual title and expected title
Assert.assertEquals(Actualtitle, Expectedtitle);
// print out the result
System.out.println("After Assertion " + Expectedtitle + Actualtitle + " Title matched ");
}
}
TestNG xml文件内容如下:
备注:建议通过Eclipse创建基于TestNG的Selenium测试脚本,方便调试运行。
Step#4
进入测试代码所在项目目录,创建lib目录,将Selenium测试脚本依赖的Jar包全部copy进来。
类似如下图所示。
注意其中需要selenium jar包以及testNG Jar包,建议参考Eclipse运行成功所需的类库。
Step#5
接下来创建批处理文件,并在下一步让jenkins调用它。
1)打开notepad,输入Java -cp bin;lib/* org.testng.TestNG testng.xml
Java -cp将编译和执行位于bin目录下的.class文件和所有lib目录下jar包文件。因我们基于TestNG框架,所以指定org.testng.TestNG作为java主程序入口。testNG.xml则告诉
testNG要执行的测试脚本。
2)保存该文件为.bat,也就是windows batch file。若创建ok,双击它将会执行文件的
java命令。批处理文件内容如下:
Step#6
现在该设置jenkins调用run.bat文件了。
1)进入Jenkins dashboard页面,新建一个任务
2)在如下页面上输入新任务的名字,并选择“构建一个自由风格的软件项目”(freestyle),点击页面下方ok按钮
3)在General页面,点击高级按钮,选择“使用自定义的工作空间”,然后目录中输入run.bat所在目录
4)在该页面的构建区域,点击“增加构建步奏”,在弹出列表中选择“Execute Windows batch command”
5) 然后在命令输入框中添加 run.bat
7)在dashboard页面,点击立即构建,应该看到浏览器弹出,执行selenium测试脚本
8)测试脚本执行完成后,点击最近的构建历史,进入该构建历史页后,点击左侧的
Console Output,就可以看到类似命令行执行run.bat的输出结果。
截止目前,我们已完成:
1、如何启动Jenkins
2、如何配置Jenkins并集成Selenium
3、创建一个批处理文件,并通过jenkins调用执行
我们都知道Jenkins是非常强大的工具,可用于夜间的自动化持续集成。因此,我们还需要设置定时任务和邮件通知,以便方便夜间定期执行编译和测试任务,并通过邮件通知相关的同学结果。
设置Jenkins定时任务
1、进入dashboard,点击某个具体Jenkins任务
2、点击左侧的配置菜单进入配置页
3、找到General页的构建触发器区域,勾选Build periodically,在日程表输入框中设置定期计划,比如H/5 * * * *,表示每5分钟跑一次,具体如何设置可点击输入框边上的?按钮阅读说明。
4、点击apply和save按钮
现在Jenkins就会根据你设定的定时规则自动执行了。
添加邮件通知
下面,我们来设置邮件通知功能
1、回到Jenkins dashboard,点击系统管理,在管理Jenkins页点击系统设置
2、进入Jenkins-》配置页后,找到邮件通知区域,设置SMTP服务器,勾选使用SMTP认证,
设置你邮箱的用户名和密码,根据实际情况是否勾选使用SSL协议以及相应的SMTP端口,一般SSL协议下端口为465,非SSL协议下端口为25。
你可通过勾选通过发送测试邮件测试配置来验证邮件发送功能
注意:在该页面一定要设置系统管理员邮件地址,这是你要发送邮件的地址,否则上面邮
件测试会报错。
在命令行中运行Selenium脚本
最后我们讲解一下如何在命令行中运行selenium测试脚本,这部分跟Jenkins没有关系。
1、打开命令行,进入测试脚本项目所在目录
2、设置好测试脚本所在的目录和依赖类库,比如set classpath = xxx/bin;xxx/lib/*
3、输入java org.testng.TestNG testng.xml执行testng.xml文件
4、回车后,一般可看到浏览器上Selenium操作
在此过程中,若碰到报错,可检查一下testng.xml中测试脚本的设置的正确性以及bin和
lib目录中文件是否都ok。若碰到每次都报0个test执行,而eclipse中run as testng却是
正确的,很可能你没有将selenium jar包copy到lib目录中。
本文一步步介绍了jenkins的简单使用以及如何集成selenium测试脚本的运行。你可以调整jenkins设置,比如每次代码check in时触发,增加代码编译成功后部署到测试环境等操作,并在jenkins完成自动化测试后产生测试报告等。
一旦你具备一定自动化测试覆盖,结合Jenkins自动化化调度能力,你将很容易实现个性化的持续集成和持续交付能力。