AWS Device Farm Appium 移动自动化初体验

一、AWS Device Farm 一些特点

1、支持网络场景选择,可以模拟各种网络环境。
AWS Device Farm Appium 移动自动化初体验_第1张图片
网络场景选择.png
AWS Device Farm Appium 移动自动化初体验_第2张图片
网络场景选择.png

2、支持任意地理位置设置。在使用到一些定位相关的功能时,有极大的帮助。
地理位置设置.png

3、测试报告包含性能指标,不过指标数据比较少,只有三项,CPU,Memroy,Threads
AWS Device Farm Appium 移动自动化初体验_第3张图片
性能情况

二、支持依赖应用版本:

AWS Device Farm Appium 移动自动化初体验_第4张图片
依赖应用版本.png

这里我们使用Appium Java TestNG,支持的版本信息:
目前,Device Farm 在 Device Farm 控制台中支持 Java 8 和 Appium 版本 1.7.2、1.7.1 和 1.6.5。

三、本地编写脚本

按官方文档说明开发脚本
https://docs.aws.amazon.com/zh_cn/devicefarm/latest/developerguide/test-types-android-appium-java-testng.html
注意:必须用maven构建项目,因为后续打包只支持maven。
这里使用的Appium Java TestNG 开发android的自动化脚本。

import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;

import java.net.URL;

public class AndroidUITest {

    public AndroidDriver driver;

    @Test
    public void appiumDemo() throws Exception {
        String app_dir = System.getProperty("user.dir")+"/apps/my.appname-1.2.2.0.apk";
        System.out.println("app_dir:"+app_dir);

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "9");
        capabilities.setCapability("deviceName", "Nexus_6_API_28");
        capabilities.setCapability("app", app_dir);
        capabilities.setCapability("appPackage", "com.my.appname");
        capabilities.setCapability("appActivity", "your.page.main.Activity");
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.findElementById("com.my.appname:id/id1").click();
        Thread.sleep(3000);
        driver.findElementById("com.my.appname:id/id2").sendKeys("username");
        driver.findElementById("com.my.appname:id/id3").sendKeys("password");
        driver.findElementById("com.my.appname:id/id4").click();
        Thread.sleep(2000);
        driver.closeApp();
    }
}

本地执行通过后,需要做一些适应AWS Device Farm的修改
1、修改被测包的地址,必须写死路径:/tmp/包名,例如:

app_dir="/tmp/my.appname-1.2.2.0.apk";

2、注释掉所有capabilities关于测试手机的设置
修改后得到脚本如下,

    public void appiumDemo() throws Exception {
        String  app_dir="/tmp/my.appname-1.2.2.0.apk";
        System.out.println("app_dir:"+app_dir);

        DesiredCapabilities capabilities = new DesiredCapabilities();
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.findElementById("com.my.appname:id/id1").click();
        Thread.sleep(3000);
        driver.findElementById("com.my.appname:id/id2").sendKeys("username");
        driver.findElementById("com.my.appname:id/id3").sendKeys("password");
        driver.findElementById("com.my.appname:id/id4").click();
        Thread.sleep(2000);
        driver.closeApp();
    }

最后根据官方文档,执行命令打包,

mvn clean package -DskipTests=true

我们会得到一个名为 zip-with-dependencies.zip 的包

四、AWS Device Farm操作

通过 https://console.aws.amazon.com/devicefarm 登录 Device Farm 控制台,创建测试,
1、上传被测试app包

AWS Device Farm Appium 移动自动化初体验_第5张图片
Choose your application.png

2、上传代码包
AWS Device Farm Appium 移动自动化初体验_第6张图片
Configure your test.png

3、选择被测试的机型,这里可以自由选择要测试的机型
AWS Device Farm Appium 移动自动化初体验_第7张图片
Select devices.png

4、配置设备的一些网络环境、地理位置
AWS Device Farm Appium 移动自动化初体验_第8张图片
设备配置.png

5、执行测试
AWS Device Farm Appium 移动自动化初体验_第9张图片
Review and start run

查看报告

执行成功后,我们可以看的测试结果


AWS Device Farm Appium 移动自动化初体验_第10张图片
测试报告

报告详情


AWS Device Farm Appium 移动自动化初体验_第11张图片
报告详情.png

可以看到每台测试机的测试报告,还有录像回放功能
AWS Device Farm Appium 移动自动化初体验_第12张图片
单台测试机的测试报告.png

性能情况


AWS Device Farm Appium 移动自动化初体验_第13张图片
性能情况

你可能感兴趣的:(AWS Device Farm Appium 移动自动化初体验)