zoukankan      html  css  js  c++  java
  • 三 APPIUM Android自动化 测试初体验(转)

    1.创建一个maven项目

    clipboard

    clipboard[1]

    clipboard[2]

    clipboard[3]

    clipboard[4]

    成功新建工程:

    clipboard[5]

    编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖:

    复制代码
    <dependency>
    
    <groupId>org.testng</groupId>
    
    <artifactId>testng</artifactId>
    
    <version>6.9.10</version>
    
    <scope>test</scope>
    
    </dependency>
    
    <dependency>
    
    <groupId>io.appium</groupId>
    
    <artifactId>java-client</artifactId>
    
    <version>LATEST</version>
    
    <exclusions>
    
    <exclusion>
    
    <groupId>org.seleniumhq.selenium</groupId>
    
    <artifactId>selenium-java</artifactId>
    
    </exclusion>
    
    </exclusions>
    
    </dependency>
    
    <dependency>
    
    <groupId>com.saucelabs</groupId>
    
    <artifactId>sauce_junit</artifactId>
    
    <version>LATEST</version>
    
    <scope>test</scope>
    
    </dependency>
    
    <dependency>
    
    <groupId>org.seleniumhq.selenium</groupId>
    
    <artifactId>selenium-java</artifactId>
    
    <version>2.53.0</version>
    
    </dependency>
    
    <dependency>
    
    <groupId>org.seleniumhq.selenium</groupId>
    
    <artifactId>selenium-remote-driver</artifactId>
    
    <version>2.53.0</version>
    
    </dependency>
    复制代码

    然后在<dependencies></dependencies>后面加上appium专用库:

    复制代码
    <repositories>
    
    <repository>
    
    <id>saucelabs-repository</id>
    
    <url>https://repository-saucelabs.forge.cloudbees.com/release</url>
    
    <releases>
    
    <enabled>true</enabled>
    
    </releases>
    
    <snapshots>
    
    <enabled>true</enabled>
    
    </snapshots>
    
    </repository>
    
    </repositories>
    复制代码

    保存之后会自动下载Maven Dependencies相关jar包

    clipboard[6]

    2.新建一个TestNG class

    右键选择com.sun.appiumdemo

    TestNG->Create TestNG class

    clipboard[7]

    clipboard[8]

    具体代码如下:

    复制代码
    package com.sun.appiumdemo;
    
    import java.io.File;
    
    import java.net.MalformedURLException;
    
    import java.net.URL;
    
    import java.util.List;
    
    import org.openqa.selenium.By;
    
    import org.openqa.selenium.WebElement;
    
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    import org.testng.annotations.AfterClass;
    
    import org.testng.annotations.BeforeClass;
    
    import org.testng.annotations.Test;
    
    import io.appium.java_client.AppiumDriver;
    
    import io.appium.java_client.android.AndroidDriver;
    
    public class AppiumTest {
    
        public AppiumDriver<WebElement> driver;
    
          @BeforeClass
    
          public void startTest() throws MalformedURLException {
    
                 File classpathRoot = new File(System.getProperty("user.dir"));
    
                    File appDir = new File(classpathRoot, "res/app");
    
                    File app = new File(appDir, "ContactManager.apk");
    
                    DesiredCapabilities capabilities = new DesiredCapabilities();
    
                    capabilities.setCapability("automationName", "Appium");
    
                    capabilities.setCapability("platformName","Android");
    
                    capabilities.setCapability("deviceName","Android Emulator");
    
                    capabilities.setCapability("platformVersion", "4.4.2");
    
                    capabilities.setCapability("app", app.getAbsolutePath());
    
                    capabilities.setCapability("appPackage", "com.example.android.contactmanager");
    
                    capabilities.setCapability("appActivity", ".ContactManager");
    
                    driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    
          }
    
      @Test
    
      public void addContact() {
    
          WebElement el = driver.findElement(By.xpath(".//*[@text='Add Contact']"));
    
          el.click();
    
          List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
    
          textFieldsList.get(0).sendKeys("Some Name");
    
          textFieldsList.get(2).sendKeys("Some@example.com");
    
          driver.swipe(100, 500, 100, 100, 2);
    
          driver.findElementByXPath(".//*[@text='Save']").click();
    
      }
    
      @AfterClass
    
      public void afterClass() {
    
          driver.quit();
    
      }
    
    }
    复制代码

    在maven项目的根目录下新建res/app目录,将安卓测试APP放在此目录。

    测试应用下载地址 :

    链接: http://pan.baidu.com/s/1skPrdVJ 密码: bkvh

    3.新建虚拟机或者真机运行

    模拟器推荐使用Genymotion,直接下载 .exe,双击安装。

    官网地址:https://www.genymotion.com/download/

    下载地址:

    链接: http://pan.baidu.com/s/1nv3YXZz 密码: 3u93

    如果想要用真机测试,那么需要打开真机的USB调试模式,打开CMD输入adb devices命令,返回一下设备信息表明设备开启调试模式成功。

    clipboard[9]

    4.启动Appium Server

    启动Appium Server,用于接收和处理来自client的请求。双击已经安装好的Appium

    clipboard[10]

    如图所示表示启动成功

    5.执行测试用例

    执行测试用用例前,确保你的安卓模拟器已经打开或者真机已经打开USB调试并连接到电脑并且Appium Server启动成功。打开eclipse并打开AppiumTest.java,鼠标右键执行run as TestNG test,用例就开始执行了

    clipboard[11]

    Appium服务端就会输出相关信息

    clipboard[12]

    用例执行完毕。

  • 相关阅读:
    Flume案例:目录文件到HDFS
    Flume案例:本地文件到HDFS
    12c多租户架构下部署GoldenGate12c
    ogg_sqlserver_oracle_winerver2008
    ogg异构oracle-mysql
    搜索引擎 反向索引,为什么称之为反向索引?
    ORACLE 11G 之DATAGUARD搭建逻辑standby
    Java并发锁控制API详解
    Java中的锁分类与使用
    Spring Cloud入门(含案例介绍及源码)
  • 原文地址:https://www.cnblogs.com/xuegonghou/p/7364054.html
Copyright © 2011-2022 走看看