首先需要准备:
1、jdk(步骤不再啰嗦)
2、android SDK,下载地址:http://developer.android.com/sdk/index.html,下载sdk tools,可能需要FQ,提供一个国内下载地址:http://www.androiddevtools.cn/
3、appium,下载地址:http://appium.io/
4、nodejs,下载地址:https://nodejs.org/en/
5、Genymotion,下载地址:https://www.genymotion.com/#!/download(android模拟器,需要先注册帐号)
6、appium lib,下载地址:http://appium.io/downloads.html
上述软件都准备好后,则进入搭建步骤。
一、安装、配置
将上述软件依次安装。
1. android sdk安装完毕后,需要配置环境变量
新建ANDROID_HOME D:\Program Files (x86)\Android\android-sdk
在PATH中添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
2. nodejs安装完毕后,需要配置环境变量
在PATH中添加:D:\Program Files\nodejs;
3.appium安装完毕后,需要配置环境变量
D:\Program Files (x86)\Appium\node_modules\.bin;
4.配置好后,启动cmd,
输入node -v,查看node安装版本
输入appium-doctor检查appium的安装环境是否成功,如下图:
二、使用eclipse
1、启动eclipse分别导入selenium-server-standalone-2.48.2.jar和java-client-3.3.0.jar(即appium jar)
2、就可以编写程序啦。
三、准备Androidsdk所需要工具,下载地址在http://www.androiddevtools.cn/
platform-tools
这是 adb, fastboot 等工具包。把解压出来的 platform-tools 文件夹放在 android sdk 根目录下,并把 adb所在的目录添加到系统 PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具
android-5.1
这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/build-tools 文件夹即可
android-21
这是Android开发所需的sdk,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/platforms文件夹,然后打开SDK Manager,打开 Tools(工具)菜单选择 Options(选项)菜单项打开Android SDK Manager Setting对话框,点击 Clear Cache(清除缓存)按钮,然后重启Eclipse(或Android Studio)和SDK Manager。
system-images
这是在创建模拟器时需要的system image,也就是在创建模拟器时 CPU/ABI项需要选择的,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/system-images文件夹下即可, 如果没有 system-images目录就先创建此文件夹,然后打开SDK Manager,打开 Tools(工具)菜单选择 Options(选项)菜单项打开Android SDK Manager Setting对话框,点击 Clear Cache(清除缓存)按钮,然后重启Eclipse(或Android Studio)和SDK Manager。
四、利用工具识别待测apk的相关信息
1、启动appium安装目录下的appium.exe,按如下操作
2、启动genymotion,创建一个android模拟器,Android版本根据需要自己选择
3、启动Android模拟器,并启动待测app,如果安装app失败,则需要下载Genymotion-ARM-Translation_v1.1.zip,
4、打开android sdk安装目录下的Android\android-sdk\tools\uiautomatorviewer.bat。
5、编写测试代码
package com.test; import java.io.File; import java.net.URL; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; /** * @author QiaoJiafei * @version 创建时间:2016年1月11日 下午3:19:02 * 类说明 */ public class FirstTest { private AndroidDriver driver; @BeforeMethod(alwaysRun=true) public void setUp() throws Exception { // set up appium File app = new File("appsoft", "ContactManager.apk"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("deviceName","Android Emulator"); capabilities.setCapability("platformVersion", "5.0"); capabilities.setCapability("app", app.getAbsolutePath()); capabilities.setCapability("appPackage", "com.example.android.contactmanager"); capabilities.setCapability("appActivity", ".ContactManager"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); } @AfterMethod(alwaysRun=true) public void tearDown() throws Exception { driver.quit(); } @Test public void addContact(){ WebElement el = driver.findElement(By.name("Add Contact")); el.click(); List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText"); textFieldsList.get(0).sendKeys("testname"); textFieldsList.get(1).sendKeys("10010"); textFieldsList.get(2).sendKeys("[email protected]"); driver.swipe(100, 500, 100, 100, 2); driver.findElementByName("Save").click(); } }
6、打开cmd,输入appium,或者打开appium.exe,点击启动
7、运行测试代码即可