• MacOS10.9平台配置Appium+Java环境


    1) 安装JDK

      下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html  

      安装:JDK安装很简单,按默认安装即可。

      配置环境变量:

      打开终端新建.bash_profile文件:touch .bash_profile

      打开bash_profile文件:vi .bash_profile

      配置JAVA_HOME

      export JAVA_HOME=$(/usr/libexec/java_home)

      保存退出后执行source .bash_profile

    2) 安装Xcode

      下载地址:

      安装:安装很简单,直接添加到Application下。

    3) 安装Command Line Tools

       安装:打开终端输入xcode-select –install

             弹出提示“…..您要现在安装该工具吗?”,点击安装。

             同意安装协议,静待安装完成。

    4) 安装Node.js

      下载地址:https://nodejs.org

      安装:一路next,按默认安装即可。

      安装完成以后,检查Node版本安装是否成功:进入终端,输入node -v, 可以看到版本号,说明成功了。

    5) 安装SDK和Android api

      下载地址:http://yunpan.cn/cV9RM3vzqySVP   访问密码:1cc9

      安装:压缩包直接解压到安装目录即可。

      配置环境变量:

      打开bash_profile文件:vi .bash_profile

      配置ANDROID_HOME

      export ANDROID_HOME="/Users/sun/adt-bundle-mac-x86_64-20140702/sdk"    (改成你SDK的实际路径)

      保存退出后执行source .bash_profile

    安装更新Android api,作如下操作:

    1. 打开终端进入你sdk的安装目录,运行下面的命令

      cd tools

      ./android

      2.  在弹出的SDK Manager窗口,点击菜单栏Android SDK Manage—preferences,做如下修改

      HTTP Proxy Server输入mirrors.neusoft.edu.cn

      HTTP Proxy Port 输入80

      并且选中Force https:sources to be fetched using http…….

      最后点击close关闭setting弹窗

      3.  回到主界面选中你要安装的Android api版本,点击Install N package。如下图:

       

      4.  然后出现下面这个DLG,选“accept lisense”,将所有的都打勾勾,点击Install。

       

      5.  进入安装阶段(可能略慢)

       

    6) 联网安装Appium

      安装:

      进入终端,做如下操作

      sudo chmod –R 777 /usr/local

      npm install –g appium

      多等几分钟,日志输出可以看到appium的版本及安装目录

    7) 检查环境

      检查并启动Appium:

      进入终端,输入appium & 

      出现以下提示:Welcome to Appium… 说明安装好了。

    检查依赖环境:

      进入终端,输入appium-doctor

      出现以下提示:All Checks were successful 说明所需环境全部安装成功。

    8) 安装Ecplise

      下载地址:http://www.eclipse.org/downloads/

      安装:解压缩到安装目录。

      异常问题:启动时会提示让重新安装java se 6 runtime…

      解决办法:进入终端,做如下操作

                  sudo chmod 777 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist

                  vi /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Info.plist 

          将

                       <key>JVMCapabilities</key>
                <array>
                   <string>CommandLine</string>
                </array>

          修改为

                <key>JVMCapabilities</key>
                <array>
                   <string>JNI</string>
                   <string>BundledApp</string>
                   <string>WebStart</string>
                   <string>Applets</string>
                   <string>CommandLine</string>
                </array>

      ok 保存重启电脑 就ok鸟

      配置workspace进入Eclipse安装目录,点击eclipse。第一次启动会要求设置工程存储目录。比如:User/sun/workspace

    9) 安装ADT Plugin

      在线安装:(速度较慢,也可用第二种离线安装方式。)

    1. 打开Eclipse,菜单栏Help->Install New Software
    2. 然后在弹出的窗口中,Work with的后面点击Add

      Name:Android

      Location:https://dl-ssl.google.com/android/eclipse/
      点击OK。

      3.  选中列表出现的ADT版本,按照提示安装。重启Eclipse生效。

      离线安装:

      下载地址:https://dl.google.com/android/ADT-23.0.6.zip

    1. 打开Eclipse,菜单栏Help->Install New Software
    2. 然后在弹出的窗口中,Work with的后面点击Add
    3. 然后点击Archive,添加刚才下载的ADT-23.0.6.zip
    4. OK后,再写上一个名字,比如Android
    5. 经过解析后,选中列表中出现的ADT版本,按照提示安装。重启Eclipse生效。

     

    10)     配置Appium client,Selenium

      下载地址:http://yunpan.cn/cVGaGYjF9mcgF   访问密码:2d90

    1. 在Eclipse新建项目appium(示例名)步骤:File—New—点击Java Project—输入project name—点击finish
    2. 进入前面设置的工程存储目录—appium文件夹下,比如:E:workspaceappium

      新建lib目录,并把java-client-2.2.0.jar,selenium-java-2.43.1.jar,selenium-server-standalone-2.41.0.jar三个jar包丢在lib目录下。

      3.  返回Eclipse界面,右键appium刷新,直到显示lib目录。右键lib目录下的java-client-2.2.0.jar—Build Path—点击Add to Build Path

      其他两个jar包重复此步骤。

    11)    配置Junit或者TestNG(自己选个喜欢的吧)

      Junit安装:高版本Eclipse自带,不需要安装。

      TestNG安装:

    1. 打开Eclipse,菜单栏Help->Install New Software
    2. 然后在弹出的窗口中,Work with的后面点击Add

      Name:TestNG

      Location:http://beust.com/eclipse
      点击OK。

      3.  选中列表出现的TestNG版本,按照提示安装。重启Eclipse生效。

    12)              Appium相关API文档

      Appium客户端部分方法http://appium.io/slate/cn/master/?java#appium-客户端库

      Appium服务关键字:http://appium.io/slate/cn/master/?java#appium-服务关键字

      Appium元素定位与交互:http://appium.io/slate/cn/master/?java#元素定位与交互

      Selenium 官方API:https://selenium.googlecode.com/svn/trunk/docs/api/java/index.html?overview-summary.html

    13)              最后贴个小例子

      Android真机:

     1 package com.allinmd.android;
     2 
     3 import org.junit.After;
     4 import org.junit.Before;
     5 import org.junit.Test;
     6 import org.openqa.selenium.*;
     7 import org.openqa.selenium.remote.CapabilityType;
     8 import org.openqa.selenium.remote.DesiredCapabilities;
     9 import io.appium.java_client.android.AndroidDriver;
    10 import java.net.URL;
    11 import java.util.concurrent.TimeUnit;
    12 
    13 public class AndroidBrowserTest {
    14     private WebDriver driver;
    15     
    16     @Before
    17     public void setUp() throws Exception {
    18         DesiredCapabilities capabilities = new DesiredCapabilities();       
    19         capabilities.setCapability("automationName","Selendroid");             //自动化引擎
    20         capabilities.setCapability("platformName","Android");                //手机os     
    21         capabilities.setCapability("platformVersion", "4.1.1");        //真机的Android版本     
    22         capabilities.setCapability("udid","94122ad8");                //物理机ID 
    23         capabilities.setCapability(CapabilityType.PLATFORM, "Mac");        //使用的是mac平台
    24         capabilities.setCapability("browserName", "Chrome");                //要启动的手机浏览器
    25         driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);    
    26         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);    
    27     }
    28     
    29     @After
    30     public void tearDown() throws Exception {
    31         driver.quit();
    32     }
    33     
    34     @Test
    35     public void allinLogin() throws InterruptedException {        //登陆
    36         driver.get("http://m.xxx.cn");
    37         driver.findElement(By.xpath("html/body/section/div[1]/div[2]/a/div")).click();
    38         driver.findElement(By.xpath(".//*[@id='allinLoginPage']/div[2]/div[1]/a[2]")).click();
    39         driver.findElement(By.id("email")).sendKeys("test@smc.com");
    40         driver.findElement(By.name("password")).sendKeys("111111");
    41         driver.findElement(By.xpath(".//*[@id='loginBtn']")).click();    
    42     } 
    43 }

      IOS模拟器:

     1 package com.allinmd.android;
     2 
     3 import org.junit.After;
     4 import org.junit.Before;
     5 import org.junit.Test;
     6 import org.openqa.selenium.*;
     7 import org.openqa.selenium.remote.CapabilityType;
     8 import org.openqa.selenium.remote.DesiredCapabilities;
     9 
    10 import io.appium.java_client.AppiumDriver;
    11 import io.appium.java_client.ios.IOSDriver;
    12 
    13 import java.io.File;
    14 import java.net.URL;
    15 
    16 public class IOSDemo {
    17     private AppiumDriver driver;
    18     
    19     @Before
    20     public void setUp() throws Exception {
    21         File appDir = new File(System.getProperty("user.dir"));
    22         final File app = new File(appDir, "apps/TestApp/build/Release-iphonesimulator/TestApp.app");
    23         DesiredCapabilities capabilities = new DesiredCapabilities();  
    24         capabilities.setCapability("platformName","IOS");                //手机os 
    25         capabilities.setCapability("platformVersion", "8.0");            //要启动的手机OS版本
    26         capabilities.setCapability("deviceName", "iPhone Simulator");    //手机类型或模拟器类型,比如MI_2A/Android Emulator/iPhone Simulator
    27 //        capabilities.setCapability("udid","94122ad8");                //物理机ID 
    28         capabilities.setCapability(CapabilityType.PLATFORM, "Mac");        //使用的是Mac平台
    29         capabilities.setCapability("app", app.getAbsolutePath());        //得到app绝对路径
    30         driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);    
    31     }
    32     
    33     @After
    34     public void tearDown() throws Exception {
    35 //        driver.quit();
    36     }
    37     
    38     @Test
    39     public void allinLogin() throws InterruptedException {        //登陆
    40         final WebElement text = driver.findElement(By.xpath("//UIATextField[1]"));
    41     } 
    42 }
  • 相关阅读:
    分解质因数
    大素数测试和分解质因数
    快速幂
    欧拉函数
    素数
    gcd,lcm,ext_gcd,inv
    凸包问题 poj 2187
    map的 简单用法
    判断线段是否在园内
    2-sat 问题
  • 原文地址:https://www.cnblogs.com/xiaoluosun/p/4458240.html
Copyright © 2020-2023  润新知