1.1 安装运行Appium初体验

一、适用操作系统
  Win7 旗舰版Sp1 64位操作系统 或 32位操作系统

二、所需软件
  jdk-7u45-windows-i586.exe
  node-v0.10.28-x86.msi (32位)下载地址:http://nodejs.org/download/
  adt-bundle-windows-x86-20140321.zip
  SDK下载地址:http://developer.android.com/sdk/index.html
  apache-ant-1.9.4-bin.zip ( 非必装) http://ant.apache.org/bindownload.cgi
  apache-maven-3.1.1-bin.zip (非必装) http://maven.apache.org/download.cgi
  ActivePython-2.7.5.6-win32-x86.msi
       appium下载地址:http://download.csdn.net/detail/f20052604/7992053#comment  

三、安装步骤:
1)安装JDK,并进行环境变量配置
  JDK安装很简单,按默认安装即可。
  环境变量配置:
  添加JAVA_HOME变量, 值:Jdk的安装路径,如:D:\Java\jdk1.7.0_45
  添加CLASSPATH变量,值 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
  修改path变量,加上这句 %JAVA_HOME%\bin;
  检查JAVA环境是否配置好,进入CMD命令行,输入java或javac,可以看到好多的命令提示,说明成功了。
2)安装Node.js,按默认安装即可,可以改变安装的路径。
  安装完成以后,检查Node版本安装是否成功:进入CMD,输入node -v, 可以看到版本号,说明成功了。
3)安装ADT,配置环境变量
  下载地址:http://developer.android.com/sdk/index.html?hl=sk
  下载 adt-bundle-windows-x86-20140321.zip,直接解压即可。
  配置环境变量,设置ANDROID_HOME 系统变量为你的 Android SDK 路径,并把tools和platform-tools两个目录加入到系统的 Path路径里。
  变量名:ANDROID_HOME 值: D:\AutoTest\adt\sdk
  设置Path值: %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
4)下载Appium for windows,现在是0.12.3版本
  解压后,双击Appium.exe就能启动Appium界面,点击Launch开启服务。
技术分享
或者联网安装Appium
  进入cmd命令行,输入:
  npm install –g appium 或者
  npm --registry http://registry.cnpmjs.org install -g appium (推荐这种,npm的国内镜像)
  注:-g全局参数
  多等几分钟,可以看到appium的版本1.1.0及安装目录
5)检查一下appium是否安装成功。
  进入cmd命令行,输入appium
  提示:socket.io started 说明安装好了。
6)检查appium所需的环境是否OK(这步很重要)
  进入Cmd命令行,输入appium-doctor ,出现以下提示,All Checks were successful ,说明环境成功。
7)下载Android SDK
  (1)解压后,然后配置系统。
技术分享
    (2)配置系统环境变量
  ANDROID_HOME: C:\adt-bundle-windows-x86_64-20131030\sdk
技术分享
  Path添加: %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
8)安装Apache Ant (这一步可省)
  安装Apache Ant(http://ant.apache.org/bindownload.cgi)。解压缩文件夹,并把路径加入环境变量。
  变量: ANT_HOME 值: D:\AutoTest\ant-1.9.4
  设置Path: %ANT_HOME%\bin;
  测试Ant是否安装成功,进入cmd命令行:输入ANT,如果没有指定build.xml就会输出:Buildfile: build.xml does notexist! Build failed
9) 启动AVD,耗资源啊,这时候我T400的CPU已经100%了
技术分享
技术分享
10)编写Test,使用ADT安装好Maven插件,创建一个Maven项目,添加一个文件夹apps用来存放被测的app,这里测试的是ContactManager.apk
技术分享
  pom.xml添加如下依赖
1   <dependencies>
2     <dependency>
3             <groupId>junit</groupId>
4             <artifactId>junit</artifactId>
5             <version>4.11</version>
6             <scope>test</scope>
7         </dependency>
8         <dependency>
9             <groupId>org.seleniumhq.selenium</groupId>
10             <artifactId>selenium-java</artifactId>
11             <version>LATEST</version>
12             <scope>test</scope>
13         </dependency>
14   </dependencies>
 编写AndroidContactsTest
1 package com.guowen.appiumdemo;
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.interactions.HasTouchScreen;
8 import org.openqa.selenium.interactions.TouchScreen;
9 import org.openqa.selenium.remote.CapabilityType;
10 import org.openqa.selenium.remote.DesiredCapabilities;
11 import org.openqa.selenium.remote.RemoteTouchScreen;
12 import org.openqa.selenium.remote.RemoteWebDriver;
13 import java.io.File;
14 import java.net.URL;
15 import java.util.List;
16
17 public class AndroidContactsTest {
18     private WebDriver driver;
19
20     @Before
21     public void setUp() throws Exception {
22         // set up appium
23         File classpathRoot = new File(System.getProperty("user.dir"));
24         File appDir = new File(classpathRoot, "apps/ContactManager");
25         File app = new File(appDir, "ContactManager.apk");
26         DesiredCapabilities capabilities = new DesiredCapabilities();
27         capabilities.setCapability("device","Android");
28         capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
29         capabilities.setCapability(CapabilityType.VERSION, "4.4");
30         capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
31         capabilities.setCapability("app", app.getAbsolutePath());
32         capabilities.setCapability("app-package", "com.example.android.contactmanager");
33         capabilities.setCapability("app-activity", ".ContactManager");
34         driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
35     }
36
37     @After
38     public void tearDown() throws Exception {
39         driver.quit();
40     }
41
42     @Test
43     public void addContact(){
44         WebElement el = driver.findElement(By.name("Add Contact"));
45         el.click();
46         List<WebElement> textFieldsList = driver.findElements(By.tagName("textfield"));
47         textFieldsList.get(0).sendKeys("Some Name");
48         textFieldsList.get(2).sendKeys("[email protected]");
49         driver.findElement(By.name("Save")).click();
50     }
51
52     public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen {
53         private RemoteTouchScreen touch;
54
55         public SwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) {
56             super(remoteAddress, desiredCapabilities);
57             touch = new RemoteTouchScreen(getExecuteMethod());
58         }
59
60         public TouchScreen getTouch() {
61             return touch;
62         }
63     }
64 }
11) 运行Test,注意AVD里的Android如果没有解锁需要先解锁
  这时候我们可以看到AVD在运行了,
技术分享
  同时Appium的命令行有对应的输出
技术分享
 7. 更多信息请参考Appium的Github

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。