设置环境变量
1.安装Nodejs
下载nodejs安装包(http://nodejs.org/download/)
验证:运行cmd,输入node -v
安装理由:Appium是使用nodejs实现的,所以node是解释器,运行必不可少。
2.安装android的SDK(https://developer.android.com/sdk/installing/index.html?pkg=tools)
变量:ANDROID_HOME
值:D:\android-sdk
设置:Path
值:%ANT_HOME%\bin
验证:运行cmd,输入android -v
安装理由:系统运行依赖sdk中的工具
3.安装Apache Ant
安装Apache Ant 解压缩文件夹并添加环境变量
变量:ANT_HOME
值:D:\apache-ant-1.9.4
设置:Path
值:%ANT_HOME%\bin
验证:运行cmd,输入ant -v
4.安装jdk
变量:JAVA_HOME
值:C:\Program Files\Java\jdk1.8.0_25
变量:classpath
值:%JAVA_HOME%\lib;
设置:Path
值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
验证:运行cmd,输入java -version5.安装Maven(http://maven.apache.org/download.cgi)
下载解压并配置环境变量
变量:MAVEN_HOME
值:D:\apache-maven-3.1.1
设置:Path
值:%MAVEN_HOME%\bin
验证:mvn -v
6.安装APPIUM运行cmd,执行npm install -g appium命令安装
验证:运行cmd输入appium
配置运行环境
1.配置Maven环境
配置maven仓库存放位置:
maven目录conf下的settings.xml文件
完成localRepository对应内容设置,默认是本地用户的临时文件夹下面的 .m2 文件夹下的 repository 下
运行cmd,执行:mvn help:system
2.eclipse中maven插件安装
分在线安装与离线安装
将下载的插件包解压到eclipse\dropins下之后重启eclipse
window-Preference可以看到maven选项,配置installations:maven目录,UserSettings:maven目录\conf\settings.xml
APPIUM参数设置
1.Android Settings - Android设置按钮,所有和安卓设置的参数都在这个里面
1.1Application:你可以定义APP及APP的行为
ApplicationPath:apk路径
Package:填写android app的包名
Wait for Package:要等待的package
Launch Activity:输入要运行的activity
Use Browser:使用设备内置的浏览器
Full Reset:回话结束后卸载app
No Reset:不会重置设备中的应用
IntentAction:启动activity
IntentCategory:指定想启动的app
Intent Flags:通常用于启动app的activity
Intnet Arguments:传达额外的参数去启动app的activity
1.2LaunchDevice 在这里设置安卓模拟器
Launch AVD:设备名称
Device Ready Timeout:等待设备超过时间
Arguments:传递额外的参数去启动设备
1.3Capabilities
Platform Name:测试平台的名字,一般为Android
AutomationName:测试引擎的名字,默认是appium,api版本小鱼17时请使用selendroid
Platform Version:设备版本号
Device Name:设备名字
Language:模拟器使用的语言
Local:默认即可
1.4Advanced
SDK Path:android sdk路径,无需指定,配置好android sdk环境变量即可
Coverage Class:指定instrumentation class
Bootstrap Port:分布式测试时需要用到,用于和appium通信
Selendroid Port:分布式测试时需要用到,用于和selendroid通信
Chrome Drive Port:分布式测试时需要用到,用于和chromedriver通信
2.General Settings – 通用设置按钮
2.1server
Server Address:Appium server的ip地址,默认即可
Port:端口号,默认4723
Check For Updates:每次启动是否检查appium更新
Pre-Launch Application:勾选后启动server后会先启动app,需要在app path中定义app
Overriding Existing Session:覆盖之前的session,批量测试的时候需要勾选
Selenium Grid Configuration File:配置selenium grid文件,用于并行分布式测试
Developer Settings – 开发人员设置
About – 关于
Inspector – 元素侦测
Launch the Appium node server – 启动server
Clear – 清除日志
Android Capabilities
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "4.4.2");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.example.android.contactmanager");
capabilities.setCapability("appActivity", ".ContactManager");
Desired capability 是一个jason对象,包含一组key和value,由客户端发送给服务端,告诉服务端期望的Capabilities
有哪些,然后服务端根据这些capabilities创建自动化会话(session)
1.通用Capabilities
automationName
这个capability主要是定义测试引擎。当你在安卓平台上进行测试的时候,你需要确认你使用的android sdk版本,如果是小于17的话,你需要指定测试引擎为:Selendroid。如果大于等于17,你需要使用的引擎是:Appium
platformName
定义测试平台的名字,通常用于移动设备。值有:Android、iOS和FirefoxOS
deviceName
移动设备的名字,比如iPhone 5s、Google Nexus等
app
苹果app或者安卓app的路径,可以是本地的绝对路径,也可以是远程网络路径,只要有访问权限即可。根据这个app capabilities,Appium会在启动测试之前安装好app到设备
browserName
测试webapp时需要定义browserName,对于android来说一般是Chrome,IOS可能是safari
newCommandTimeout
为了结束appium会话(session),appium会设置一个等待从客户端发送命令超时的时间。默认时间是60秒
autoLaunch
设置设个capability,会自动安装app并且启动app
autoWebview
如果你测试的是混合应用并且想直接进入webview内容中,那么你需要设置设置这个capability的值为true
2.Android独有Capabilities
appPackage
设置安卓app的包名的capability,告诉appium你要运行哪个app
appActivity
设置你想要运行的app的activity(相当于一个界面或者理解成网页),比如:LoginActivity,登录的activity,可以理解为登录界面
appWaitActivity
设置你想要等待的android activity
appWaitPackage
需要等待的app的包
unicodeKeyboard
是否使用unicode键盘输入,如果设置为true,那么可以输入中文和特殊字符,这个很常用,一般设置为true
resetKeyboard