Appium for iOS setup

 

 


 windows下appium設置

 

以前研究了一段時間的appium for native app 相應的總結以下:html

                                               appium測試環境搭建 :http://www.cnblogs.com/tobecrazy/p/4562199.htmljava

                    知乎Android客戶端登錄:http://www.cnblogs.com/tobecrazy/p/4579631.htmlnode

                                                  appium實現截圖和清空EditText:http://www.cnblogs.com/tobecrazy/p/4592405.htmlios

                                                  appium 滑動處理:http://www.cnblogs.com/tobecrazy/p/4612133.htmlgit

                   ChromeDriver:http://www.cnblogs.com/tobecrazy/p/4836995.htmlgithub

                                              appium 九宮格解鎖招商銀行手機客戶端app :http://www.cnblogs.com/tobecrazy/p/4881390.htmlweb

                                             Hybrid app webview :http://www.cnblogs.com/tobecrazy/p/4905917.htmlmacos

 


 

Mac準備環境

1. JDK安裝

  •  下載JDK for Mac 我這裏使用的是  jdk-7u79-macosx-x64.dmg
  •  驗證安裝open Terminal 
     java -version
    java version "1.7.0_79"
    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode 

2. xcode安裝

  •  下載xcode  須要 Apple 開發者帳號 
  • 注意 Mac的 OS的版本和對應Xcode要匹配 
  •  建立iOS simulater ,若是這樣說明iOS設備準備完畢
    Youngs-Mac:~ root# instruments -s devices
    Known Devices:
    Young’s Mac [564D792F-BB12-9F15-EF80-A723B921B505]
    Resizable iPad (8.4 Simulator) [B477C6F2-F8A9-4CE1-9889-C7BB1518D0B9]
    Resizable iPhone (8.4 Simulator) [56007C43-7BAB-4C7A-BA5B-E42DEE41C4B4]
    iPad 2 (8.4 Simulator) [D69DF503-8F09-47EB-AC67-385FFACC01D1]
    iPad Air (8.4 Simulator) [D9E1F7CE-A110-4167-B6C8-F50EA83B8CDC]
    iPad Retina (8.4 Simulator) [C704AFE0-BC72-4AAF-8B51-7CEE0D021355]
    iPhone 4s (8.4 Simulator) [D03258C7-8619-4BA2-8EAB-6D88EAFE641C]
    iPhone 5 (8.4 Simulator) [2C39AE81-2B7D-48FC-B6C9-52203A53A560]
    iPhone 5s (8.4 Simulator) [A66F0F82-AB4C-4BAC-B466-9BF44FC7B03C]
    iPhone 6 (8.4 Simulator) [C8395C58-5164-406B-9DF8-47BAE209EC25]
    iPhone 6 Plus (8.4 Simulator) [51C387A1-B77E-4BE4-99E0-BBA1F95E9789]

     

3. NodeJS安裝

4. Appium 安裝

 

5. 設置環境變量

vi ~/.bash_profile,將環境變量設置以下:windows

 

export PATH="/Applications/Appium.app/Contents/Resources/node/bin/":$PATH
export PATH="/Applications/Appium.app/Contents/Resources/node_modules/appium/bin/":$PATH
export ANDROID_HOME="/Users/young/Library/Android/sdk"
export PATH="/Users/young/Library/Android/sdk/platform-tools":$PATH
export PATH="/Users/young/Library/Android/sdk/tools":$PATH
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home"

 

  設置完畢保存,別忘了source該文件使其當即生效

 

6. 使用Appium example demo

 

7. 建立測試用例

  •  打開eclipse,添加以下代碼:

  

package com.dbyl.core;


import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import io.appium.java_client.ios.IOSDriver;

import java.io.File;

import java.net.URL;

import java.util.concurrent.TimeUnit;

public class iOSTest {
    private IOSDriver driver;
    private boolean isInstall = true;

     
    @BeforeClass(alwaysRun = true)
    public void setUp() throws Exception {
        // set up appium

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "iOS");
        capabilities.setCapability("platformName", "Mac");
        capabilities.setCapability("deviceName", "iPhone 6");
        capabilities.setCapability("platformVersion", "8.4");
        // if no need install don't add this
        if (isInstall) {
            File classpathRoot = new File(System.getProperty("user.dir"));
            File appDir = new File(classpathRoot, "apps");
            File app = new File(appDir, "TestApp.app");
            System.out.println("---->"+app.getAbsolutePath());
            capabilities.setCapability("app", app.getAbsolutePath());
        }

        // support Chinese
        capabilities.setCapability("unicodeKeyboard", "True");
        capabilities.setCapability("resetKeyboard", "True");
    
        driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"),
                capabilities);
         
    }

    @Test
    public void login() {

     
        // wait for 20s
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        // find login userName and password editText
        WebElement inputbox1 =driver.findElementByName("TextField1");
        inputbox1.sendKeys("12");
        
        WebElement inputbox2 =driver.findElementByName("TextField2");
        inputbox2.sendKeys("65");
        
        WebElement calcButton=driver.findElementByXPath("//UIAApplication[1]/UIAWindow[2]/UIAButton[1]");
        
        calcButton.click();
        WebElement result=driver.findElementByXPath("//UIAApplication[1]/UIAWindow[2]/UIAStaticText[1]");
        Assert.assertEquals(result.getAttribute("value"), "77");
    }
 

    @AfterClass(alwaysRun = true)
    public void tearDown() throws Exception {
        driver.quit();
    }
 
}

 

8. 相關資料

視頻教程:https://www.youtube.com/watch?v=BULjgsTpw2c

代碼:https://github.com/tobecrazy/appiumDemo

相關文章
相關標籤/搜索