记录使用gradle构建selenium+testng自动化测试项目

最近入职一家新公司,主要负责做自动化测试,包括WEB Android和iOS

目前的工作能力主要集中在WEB这一块,使用的是通用的Selenium和Testng组合;

以上为背景。


我在以前的项目中没有使用过gradle,所以这个构建工具对我来说是全新的,临时在

网上看了一些基本的,通用的配置,主要是插件,mvn仓库,依赖等,说实话,没什么高深的理论;


然后就是在自己的电脑上安装gradle,配置,并在eclipse中安装gradle插件,完成以上步骤后就可以直接在

eclipse中创建一个gradle项目,首先需要熟悉一下gradle项目的解构,和以前的ant或者maven都有所不同,

不过简单熟悉一下后,会发现没什么特别的;在这个项目中最重要的就是build.gradle这个文件,前面提到的

对于插件,mvn仓库,依赖的配置全部是在这个文件中,后期的管理测试脚本的运行等任务也是在这个文件中;


上面大致的介绍了一下gradle项目的组建,其实这些信息网上到处都是,没什么价值,下面主要记录一下在这个

工程中遇到的问题;


1,编码问题


使用gradle build指令时出现    错误:编码 GBK 的不可映射字符


我在CSDN中查到了解决方法如下:


tasks.withType(JavaCompile) {options.encoding = "UTF-8"}



在这里吐槽一下自己,我是直接将自己的工程集成到jenkins了,在jenkins中build的时候Console Output中

输出上上述错误,我当时以为是jenkins的问题,一直在jenkins上打转,浪费了不少时间,我犯的这个错误说明自己的

思维不缜密,比较武断的做出了错误的判断;



2,第二个问题在于我对于selenium的理解不深入,在以前的项目中,我进入自动化测试小组的时候,框架已经搭建完成,

我主要是使用框架,并没有从零开始搭建一个测试框架,导致我对Selenium的组成,项目的各种依赖问题理解很浅;

这一次从零开始,发现selenium是依赖了很多的jar包的,在build.gradle中配置好maven 仓库以及依赖的包以后,如下:


repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    // mavenCentral() 
    // maven { url 'https://mvnrepository.com/artifact/' } 
    
}
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.47.2'
compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '2.47.2'
testCompile group: 'org.testng', name: 'testng', version: '6.11'


configurations.all {
    transitive = true
}



以上配置中有三个注意点:

1 ,注意maven仓库的地址的配置,这几天因为19大的原因,很多网站无法正常访问了;

2,注意selenium版本的选择问题,尤其要和测试中使用的firefox的版本一起考虑,不同的selenium版本对不同的firefox版本进行支持

selenium和firefox的兼容性问题也是一个自动化测试中需要小心解决的一个问题;

3,第三项配置是表示依赖的传递性,举个例子,selenium依赖selenium-support,而后者又依赖其他的jar包,将transitive = true添加到文件中会指示gradle

自动的去下载任何被依赖的jar包;


到目前为止,我用selenium最新版3.6,testng 6.11已经成功搭建了框架,目前脚本已经能够成功运行在chrome浏览器上;

只是还存在一个问题:我希望自己的脚本也能够完全运行在chrome,firefox和IE上,只是在配置

使用geckodriver.exe驱动firefox时总是失败,geckodriver.exe能够正常启动firefox,但是启动以后就没有任何其他的动作了,原因目前尚未查明















你可能感兴趣的:(自动化测试)