【Appium】安卓自动化测试之标准流程案例

目录

  • 一、虚拟设备设置
  • 二、Appium服务设置
  • 三、测试脚本设置
  • 四、步骤总结

一、虚拟设备设置

使用Visual Studio 2019自带的Android Devices Manager设备管理器来管理模拟设备,由于x86的处理器在Windows上的速度更快,所以建议虚拟设备使用x86处理器,内存的话一般大于6GB就比较流畅。Android Devices Manager可以脱离VS单独启动(前提是已在VSz中安装移动开发一系列组件),启动路径类似如下,直接运行即可

D:\Program Files\VS2019Pro\Common7\IDE\Extensions\Xamarin\AndroidDeviceManager\AndroidDevices.exe

  • CPU - x86
  • 内存 - 大于6GB

启动虚拟设备,保持运行
【Appium】安卓自动化测试之标准流程案例_第1张图片

由于上一步的App的处理器架构是x86,所以相应的App处理器也必须是x86,这里使用VS Xamarin自带的adb.exe进行安装,类似如下路径

C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe

这里可以把adb.exe的目录加入环境变量Path中,使用Install命令安装App

adb install D:\Work\Android\ArcGIS_Earth.apk

安装成功效果
【Appium】安卓自动化测试之标准流程案例_第2张图片
【Appium】安卓自动化测试之标准流程案例_第3张图片

二、Appium服务设置

需要启动Appium服务,保持该服务运行
【Appium】安卓自动化测试之标准流程案例_第4张图片

三、测试脚本设置

启动Session前需要设置Desired Capabilities,关于Desired Capabilities属性含义以及获取方式请参考我之前的博文,这里不多赘述

【Appium学习笔记】从零搭建Android自动化测试环境

设置待测试App的Desired Capabilities

public class ArcGISEarthAndroidSession
{
    protected static AndroidDriver<AndroidElement> _androidSession;
    private const string ANDROID_APP_DRIVER_URL = "http://localhost:4723/wd/hub";

    public static void Setup(TestContext context = null)
    {
        Uri remoteUrl = new Uri(ANDROID_APP_DRIVER_URL);
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.SetCapability("platformName", "Android");
        desiredCapabilities.SetCapability("platformVersion", "9.0");
        desiredCapabilities.SetCapability("deviceName", "emulator-5554");
        desiredCapabilities.SetCapability("appPackage", "com.esri.earth.phone");
        desiredCapabilities.SetCapability("appActivity", "com.esri.arcgisearth.app.activity.SplashActivity");
        desiredCapabilities.SetCapability("automationName", "UiAutomator1");
        _androidSession = new AndroidDriver<AndroidElement>(remoteUrl, desiredCapabilities);
    }

    public static void TearDown()
    {
        if (_androidSession != null)
        {
            _androidSession.Quit();
            _androidSession = null;
        }
    }
}

然后写测试类,这里的测试是跳过启动提示画面

[TestClass]
public class Samples : ArcGISEarthAndroidSession
{
    [ClassInitialize]
    public static void Initialize(TestContext context)
    {
        Setup();
    }

    [TestMethod]
    public void SkipStartupTest()
    {
        // Allow element
        var allowButton = _androidSession.FindElementById("com.android.packageinstaller:id/permission_allow_button");
        allowButton.Click();
        allowButton.Click();
        allowButton.Click();
        // Wait for startup page to appear
        Thread.Sleep(TimeSpan.FromSeconds(3));
        // Click to next page                                   
        var pageButton = _androidSession.FindElementById("com.esri.earth.phone:id/new_feature_dot3");
        pageButton.Click();
        pageButton.Click();
        pageButton.Click();
        // Exit startup page
        pageButton.Click();
        // Click dismiss
        var dismissButton = _androidSession.FindElementById("com.esri.earth.phone:id/tv_info_title");
        dismissButton.Click();
        // Click skip
        (new TouchAction(_androidSession)).Tap(521, 1603).Perform();          
    }

    [ClassCleanup]
    public static void Clearup()
    {
        TearDown();
    }
}

测试效果

四、步骤总结

要完成一个完整的测试案例,应该做如下工作

  • 启动虚拟设备,安装测试程序,保持虚拟设备运行
  • 启动Appium服务,保持Appium服务运行
  • 编写测试脚本代码,运行测试

你可能感兴趣的:(Automated,Testing,Mobile)