Android Studio上使用Appium创建测试用例基本步骤

  1. 用AS创建一个空activity的工程(比如project名叫MyBaiduTest)
  2. 在工程中new module一个java Library模块(比如新建的module名叫SearchAndClick)
  3. 在新建模块的libs目录下拷入 commons-lang3-3.1.jar 、java-client-7.3.0.jar、selenium-server-standalone-3.141.59.jar这三个jar库
  4. 模块的build.gradle中加入junit依赖,如下:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'junit:junit:4.12'
}
  1. 然后执行同步,如下


    image.png
  2. 在模块目录下创建一个文件夹用于存放待测试应用,如下:


    image.png
  3. 完善用例代码,import 必要的类并声明一个AndroidDriver变量,例如:

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;

public class SearchAndClick {
    private AndroidDriver<AndroidElement> driver;
...
  1. 完善用例代码,在@Before 函数中做初始化,例如:
    @Before
    public void init() {

        File classpathRoot = new File(System.getProperty("user.dir"));
        // 获取apps文件,前面测试应用所存放的目录
        File appDir = new File(classpathRoot, "/apps/");
        // 获取apk文件
        File app = new File(appDir, "baidu.apk");

        DesiredCapabilities capabilities = new DesiredCapabilities();
        // 设备名,这里是模拟器的设备名
        capabilities.setCapability("deviceName", "127.0.0.1:12");
        // 系统平台版本
        capabilities.setCapability("platformVersion", "7.1.2");

        capabilities.setCapability("app", app.getAbsolutePath());
        // 设置被测应用包名
        capabilities.setCapability("appPackage", "com.baidu.searchbox");
        // app的入口启动activity
        capabilities.setCapability("appActivity", ".SplashActivity");
        // 连接appium启动相应app
        try {
            driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        System.out.println("App is launched!");
    }
  1. 完善用例代码,在@After函数中善后
    @After
    public void end() throws InterruptedException{
        driver.quit();
    }
  1. 完善用例代码,在@Test函数中实现具体用例
@Test
    public void start() throws InterruptedException {
        Thread.sleep(2000);
        // 点击"同意并继续"
        WebElement el = driver.findElement(By.xpath(".//*[@text='\u540c\u610f\u5e76\u7ee7\u7eed']"));
        el.click();

        // 一直点击权限框"允许" 直到没有弹框
        boolean finished = false;
        do {
            try {
                el = driver.findElement(By.xpath(".//*[@text='\u5141\u8bb8']"));
                el.click();
            } catch (NoSuchElementException e) {
                finished = true;
            }
        }while(!finished);
        System.out.println("App is done!");
    }
  1. 用例代码完成后,选中这个模块并通过Make Module来编译这个模块,如下:


    image.png
  2. 然后对选中的模块或测试类文件就可以执行run测试了,如下:


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。