maven+selenium+jenkins+git实现自动化持续集成

以前项目中编写的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打包插件
\color{Red}{注意:}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>路径
\color{Red}{注意:}<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
\color{Red}{注意:}①测试类一定要放在/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 安装包名称
\color{Red}{注意:}执行安装命令后,可能会报错,因为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路径


image.png

4.新增Jenkins任务


image.png

5.配置Jenkins任务
①进入Jenkins任务,点击配置


image.png

②源码管理选择git,输入git仓库地址、添加并选择git用户、输入分支


image.png

③选择构建步骤
image.png

④选择maven版本,输入maven命令
image.png

⑤保存配置

6.开始构建


image.png

7.查看控制台输出,如果成功,日志和下图类似


image.png

四 总结

以上就是我的Jenkins持续集成的过程,踩过的坑和注意事项也都重点标记出来了,大家也要注意哦!
补充:我用xshell连接的服务器,在Jenkins构建时,xshell老是会弹出弹窗


image.png

解决办法:1.把xshell远程连接关掉 2.在创建连接时,关闭X11转发选项

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。