用于 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 中提取应用程序信息。