#1 背景
最近学了利用Appium+Maven+TestNG(ReportNG)搭建全自动化测试环境,使用https://saucelabs.com/ 网站提供的虚拟设备(可以手动测试与自动化测试,并且可以多线程多设备并行测试Web,Android与IOS),通过Jenkins从Git下载测试代码并触发运行,实现真正意义上的完全自动化测试。
#2 环境搭建流程与运行
下面我们从零开始以搭建环境到运行一个Demo为例来说明整个流程,具体如下步骤即可。
一、jdk 安装与Java环境变量与adb配置
这个没啥说的,网上一堆,自行搜索配置吧。
二、IDE安装
下载安装eclipse用来进行测试代码编写,推荐下载Eclipse Luna java EE版本,自带maven插件,比较稳定。Eclipse Luna java EE版64位下载地址:http://ftp.yz.yamagata-u.ac.jp/pub/eclipse//technology/epp/downloads/release/luna/SR2/eclipse-jee-luna-SR2-win32-x86_64.zip,解压即可。
下载安装Win下的Appium(Appium Server)安装并配置环境变量:
在这里http://appium.io/ 下载Appium压缩包,解压后配置appium环境变量 Path D:\developer\appium\Appium\node_modules.bin;
测试:CMD中输入appium-doctor,能看到All Checks were successful ,说明安装成功!
三、Maven安装配置环境变量
下载Maven并配置环境变量;从maven官网下载maven程序包:http://apache.opencas.org/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip,下载后解压,例如我的目录结构是:
配置环境变量MAVEN_HOME,变量值为maven的根目录:D:\developer\apache-maven-3.3.9,在PATH中添加bin的路径:D:\developer\apache-maven-3.3.9\bin。
四、自定义Maven的Setting.xml
打开maven conf目录下的settings.xml文件,配置maven本地仓库地址,我配置的是E:/maven/repo,如下图修改:
五、关联Eclipse与Maven设置
打开Eclipse,在菜单择:windows->Preference->Maven->User Settings,在右侧User Settings选择刚才的settings.xml文件:
配置后,下面步骤在pom.xml配置的依赖包就会从远程仓库下载到本地配置的仓库:E:/maven/repo。
六、TestNG插件安装
安装Eclipse testNG插件,在菜单栏选择help->Eclipse Maketplace,搜索testng,安装,重启Eclipse
七、创建Maven自动化TestCase工程
Eclipse中选择Archetype,输入Group Id、Artifact Id,finish创建完成,如下图:
创建完成后工程目录如下:
八、配置自动化测试依赖的java jar库
配置依赖包:selenium-java(selenium client)、java-client(appium client)、selenium-server(selenium server)、testng(单元测试)、{sauce_testng,commons-lang(saucelabs 上显示测试结果所用)}如果我们不用maven构建工程,那么我们需要去下载这三个包,然后添加到我们的工程中,而maven不需要了,只需要配置依赖关系就可以了,我们可以在maven仓库中搜索我们需要的包,把他们的依赖关系写到pom.xml文件中。
maven仓库地址:http://mvnrepository.com/,例如搜索appium,就可以搜索到appium java client的包,选择最新的包,把依赖关系粘贴打pom.xml中,只需要配置一个selenium依赖就行了,配置后的pom.xml文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mobile.ui</groupId>
<artifactId>MobileTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MobileTest</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
<scope>test</scope>