用于 Android 仿真器的 Appium Desired Capabilities [示例]

本教程将帮助您了解 APPIUM 自动化工具。它将涵盖所需功能以及 APPIUM 与 Maven 的使用。

在本教程中,您将学习-

什么是所需功能

“所需功能”帮助我们在自动化过程中修改服务器的行为。在 Appium 中,它是一种哈希映射或键值对,用于向 APPIUM 服务器发送命令。在 APPIUM 中,所有客户端命令都在会话的上下文中运行。

例如,客户端向 APPIUM 服务器发送包含 JSON 对象的 POST/session 请求。

因此,为了向服务器发送任何所需请求或维护任何所需会话,使用了一组键值对。这被称为“所需功能”

import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
{
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName","Android Emulator");
        capabilities.setCapability("platformVersion", "4.4");
}

所需功能的重要作用:

  • “所需功能”帮助用户控制与服务器的会话请求。例如,如果我们需要 iOS 会话,我们可以将 Capability 设置为 PlatformName = iOS。或者如果我们需要 Android 会话,我们可以将 Capability 设置为 PlatformName = Android。
  • “所需功能”用于设置 Webdriver 实例,例如:FirefoxDriver、ChromeDriver、InternetExplorerDriver 等。
  • DesiredCapability 对于 Selenium Grid 非常有用。例如:它用于在不同的浏览器和不同的操作系统上访问不同的测试用例。根据所述的 DesiredCapability Grid,hub 将指向相应的节点。在这里,这些节点是使用“set”属性方法定义的,例如:-
    DesiredCapabilities obj = new DesiredCapabilities(); 
    obj.setBrowserName("firefox"); 
    obj.setVersion("18.0.1"); 
    obj.setPlatform(org.openqa.selenium.Platform.WINDOWS);					
    
  • 所需功能是库定义的包。在使用“DesiredCapabilities”之前,应从以下库中导入它:
    Org.openqa.selenium.remote.DesiredCapabilities

APPIUM 支持 Android 和 iOS。因此,有单独的 Appium 服务器功能集。

下表描述了一些常用的 Android 功能及其要使用的值:-

能力 描述 值/用途
appPackage 调用用户想要在 Android 中运行的所需Java 值= com.example.myapp/

Obj.setCapability(“appPackage”, “com.whatsapp”);

appActivity 用户想要从包中启动的应用程序活动。 值= MainActivity, .Settings

Obj.setCapability(“appActivity”, “com.whatsapp.Main”);

appWaitPackage 应用程序需要等待的包 值=com.example.android.myapp
appWaitActivity 用户需要等待时间的任何 Android 活动 值= SplashActivity

capabilities.setCapability(“appWaitActivity”, “com.example.game.SplashActivity”)

注意 – 请参阅此链接“https://appium.node.org.cn/docs/en/2.0/”以查看更多 Android 功能

下表描述了一些常用的 iOS 功能及其要使用的值:-

能力 描述
LaunchTimeout 等待检测的总时间(毫秒)。 2000
UDID 识别连接物理设备的唯一设备号 166aestu4

注意 - 请参阅此链接“https://appium.node.org.cn/docs/en/2.0/guides/caps/”以查看更多 iOS 功能

提取包和活动信息

包与捆绑文件或类相关。它为模块化编程提供了有组织的结构。在 Java 中,不同的包存储在单个 Jar 文件中。用户可以轻松调用 jar 文件进行完整执行。移动应用程序开发领域也遵循类似的概念。

在 Android 操作系统中,所有应用程序都以 JAVA 包的形式安装。因此,要提取包路径信息,使用 Android PackageManager 类。

它检索预安装和后安装应用程序的包和活动信息。它安装在 Android 设备中。

您可以通过调用 getPackageManager() 获取 PackageManager 类的实例。

此方法可以访问和操作已安装应用程序的包和相关权限。

例如 –

PackageManager pManager = getPackageManager();
List<ApplicationInfo> list = pManager.getInstalledApplications(PackageManager.GET_META_DATA)

摘要

  • Desired Capability 始终以键值对的形式运行,以向 APPIUM Server 发送命令。
  • 使用“PackageManager”类在 Android 中提取应用程序信息。