首先需要准備:
1、jdk(步驟不再啰嗦)
2、android SDK,下載地址:http://developer.android.com/sdk/index.html,下載sdk tools,可能需要翻牆,提供一個國內下載地址: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("test@163.com"); driver.swipe(100, 500, 100, 100, 2); driver.findElementByName("Save").click(); } }
6、打開cmd,輸入appium,或者打開appium.exe,點擊啟動
7、運行測試代碼即可