以前项目中编写的selenium自动化测试代码没有使用Jenkins持续集成,在项目中造成各种不便,因此决定花点时间学习使用Jenkins以解决实际中的种种不便,途中踩了很多坑,于是把过程和踩过的坑一一记录下来。
一 代码部分
1.在idea中新建maven项目autoTest
2.在pom.xml中添加依赖
①selenium依赖(我使用的是2.44版本,selenium版本、driver版本、浏览器版本这三个版本需要对应,对应关系网上有很多,自行搜索)
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java </artifactId>
<version>2.44.0 </version>
</dependency>
②testng依赖
<dependency>
<groupId>org.testng </groupId>
<artifactId>testng </artifactId>
<version>6.14.3 </version>
</dependency>
③maven打包插件
suiteXmlFile是需要运行的testsuite的xml文件所在位置,一定记得修改
<build>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/logintest.xml</suiteXmlFile>
<!--suiteXmlFile是需要执行的testsuite的xml文件所在位置-->
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
④新建testsuite的xml文件,一定记得在pom.xml中修改 <suiteXmlFile>路径
<class name=xxx/>修改为测试类的相对路径(copy reference)
<suite name="Suite" parallel="false">
<test name="Test">
<classes>
<class name="TestLogin"/>
</classes>
</test>
</suite>
3.在/src/test/java下新建测试类TestLogin
①测试类一定要放在/src/test/java下,否则maven打包运行时找不到测试类 ②测试类需以Test开头,否则maven打包运行时找不到测试类
4.将浏览器设置为无界面模式
//设置浏览器驱动的路径
System.setProperty("webdriver.chrome.driver","/home/jenkins/chromedriver/chromedriver");
ChromeOptions options=new ChromeOptions();
//设置无界面模式
options.addArguments("--headless");
//为了运行顺畅,添加以下浏览器配置
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("blink-settings=imagesEnabled=false");
options.addArguments("--disable-setuid-sandbox");
driver=new ChromeDriver(options);
5.代码编写完成后,使用maven打包,测试能否正确打包,打包时会运行测试用例
6.完成后将代码提交到git
二 linux配置
1.安装Chrome浏览器
①下载Chrome for Linux(https://www.chromedownloads.net/chrome64linux/),我安装的版本是Google Chrome 71.0.3578.98,先安装的版本是70,但是与Chromedriver不兼容
②解压下载的压缩文件
③上传Linux,运行命令安装:rpm -ivh 安装包名称
执行安装命令后,可能会报错,因为Linux缺少一些插件,使用yum install 插件名称安装插件,所有插件安装完成后谷歌浏览器就能顺利安装了
④安装成功后查看Chrome的版本,执行命令:google-chrome --version
2.下载Chromedriver
①.下载Chromedriver for Linux(https://npm.taobao.org/mirrors/chromedriver?spm=a2c6h.14029880.0.0.735975d7P8udIF),我安装的版本是Chromedriver2.44。再次提醒selenium版本、Chrome版本、Chromedriver版本三者一定要对应
②将测试代码中的Chromedriver的路径替换成Linux上Chromedriver的路径
三 Jenkins配置
1.安装Jenkins,这里不详细介绍了,网上很多教程
2.打开Jenkins网页
3.打开Jenkins的全局配置页面,配置maven,maven_home是Jenkins服务器上的maven路径
4.新增Jenkins任务
5.配置Jenkins任务
①进入Jenkins任务,点击配置
②源码管理选择git,输入git仓库地址、添加并选择git用户、输入分支
③选择构建步骤
④选择maven版本,输入maven命令
⑤保存配置
6.开始构建
7.查看控制台输出,如果成功,日志和下图类似
四 总结
以上就是我的Jenkins持续集成的过程,踩过的坑和注意事项也都重点标记出来了,大家也要注意哦!
补充:我用xshell连接的服务器,在Jenkins构建时,xshell老是会弹出弹窗
解决办法:1.把xshell远程连接关掉 2.在创建连接时,关闭X11转发选项