• Appium小试


    Appium小试

    最近有空玩了一下Appium,记录一下

    1.下载Appium for windows,现在是0.12.3版本

    https://bitbucket.org/appium/appium.app/downloads/

    解压后如下图

    双击Appium.exe就能启动Appium界面

    点击Launch开启服务

    2. 下载Android SDK

    https://developer.android.com/sdk/index.html

    解压后

    3. 配置系统环境变量

    ANDROID_HOME: C:adt-bundle-windows-x86_64-20131030sdk

    Path添加: %ANDROID_HOME% ools;%ANDROID_HOME%platform-tools

    4. 启动AVD,耗资源啊,这时候我T400的CPU已经100%了

    5. 编写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("Some@example.com");
    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 }
    复制代码

    6. 运行Test,注意AVD里的Android如果没有解锁需要先解锁

    这时候我们可以看到AVD在运行了,

    同时Appium的命令行有对应的输出

    7. 更多信息请参考Appium的Github

    https://github.com/appium/appium

    建议可以Clone下这个项目,在Sample-code文件夹下有示例

    https://github.com/appium/appium/tree/master/sample-code

    同时Testerhome发起翻译活动的中文文档也提交进去了

    https://github.com/appium/appium/tree/master/docs/cn

    OscarXie.net

    关注质量与体验——电子商务与自动化测试
    http://www.cnblogs.com/oscarxie/

  • 相关阅读:
    RabbitMQ的应用场景以及基本原理介绍
    spring 读取配置文件,将值注入到静态字段
    单元测试不依赖于容器,任何依赖容器的测试在单元测试中都行不通(切记,切记)
    在 KVM 上安装 Win7 虚拟机
    识别 Linux上的设备(磁盘)类型
    云与备份之(1):VMware虚机备份和恢复
    理解 OpenStack + Ceph (9): Ceph 的size/min_size/choose/chooseleaf/scrubbing/repair 等概念
    OpenStack 企业私有云的若干需求(10):OpenStack 的前景和钱景
    OpenStack 企业私有云的若干需求(9): 云管理平台 CMP
    理解 OpenStack + Ceph (8): 基本的 Ceph 性能测试工具和方法
  • 原文地址:https://www.cnblogs.com/timssd/p/5101526.html
Copyright © 2020-2023  润新知