Appium 集成

与 Appium 的集成使您能够利用 Digital Lab 的功能运行 Appium 脚本。

准备环境

要准备运行自动化 Appium 测试的环境,需要配置工作环境 (如 Visual Studio 或 Eclipse) 以识别 Appium 项目。

后退到顶部

准备 Appium 测试

准备要在 Digital Lab 上运行的 Appium 测试:

  • 在启动会话的代码中,使用以下格式将 Appium 服务器 URL 和端口替换为 URL 和端口 Digital Lab (有关示例,请参阅下文):

    driver = new AndroidDriver (new URL ("http://<my Digital Lab Server>:<port>/wd/hub") , capabilities) ;

    driver = new IOSDriver (newURL (" http: //< my Digital Lab 服务器 >:<port>/wd/hub") ,capabilities) ;

  • 通过将应用程序上载到 Digital Lab,使其可用于测试。有关详细信息,请参阅管理应用程序

注: 在 iOS 设备上安装应用程序不需要 Mac 计算机。

后退到顶部

Appium 脚本执行

运行 Appium 测试时应考虑以下准则:

  • 匿名运行 Appium 测试时,会将用户分配到默认工作区。有关详细信息,请参阅实验室和工作区管理。Appium 匿名访问不能与 LDAP 一起使用。
    UFT Digital Lab 版本 24.2 和 ValueEdge Digital Lab: Appium 匿名访问不受支持。

  • Linux 和 Windows 不支持 Safari 驱动程序。

  • 通过 Digital Lab 运行 Appium 测试时,可以指示在脚本执行期间使用的自动化方法。

    OS 详细信息
    iOS Digital Lab 使您可以在 iOS 设备上运行测试,而无需使用 Mac 计算机。用于 iOS 的自动化方法是 XCUITest。
    Android 8 及更高版本 UiAutomator2 是默认的自动化引擎。uiAutomator2 驱动程序使用 Google 的 UiAutomator2 技术在设备或仿真器上实现自动化。要覆盖默认值并使用 UiAutomator1,请将 automationName Appium 功能设置为 " android"。

后退到顶部

将 Appium 与 SSL 配合使用

要使用采用 SSL 的 Appium 和 Digital Lab, Appium 客户端需要信任 UFT Digital Lab 证书。

如果 SSL 证书不由已知的认证机构签署 , 请执行以下操作:

Appium 客戶 程序
Appium 检察官
  1. 在 Windows Trusted Root 认证机构中安装认证。

  2. 在 Appium Inspector 中 , 选择允许未经授权的证书先进设置中。

其他人

出口 Digital Lab 证书 , 并设置 Appium 客户端以信任它 (推荐)。否则 , 设置客户端忽略 SSL 警告。有关导出证书的详细信息,请参阅 SSL 和证书

后退到顶部

Appium 设置代码段

以下代码段显示了 Android 本机个应用程序、 Chrome、iOS 本机个应用程序和 iOS Safari 的示例设置。必须填写粗体行。

有关 Digital Lab 中的常用功能及其支持的列表,请参阅 Digital Lab Appium 功能

重要信息: 这些代码段使用 Java 客户端 v7.x。如果您想使用 v8 或更高版本,请参阅关于 github 的官方 Java 客户端迁移指南。有关其他代码示例,请参阅 UFTM github 存储库

有关其他代码示例,请参阅 Appium 代码示例 - JavaAppium 模拟

后退到顶部

常见 Appium API 调用

使用以下 Appium API 调用管理应用程序。

终止应用程序

Kill API 调用将停止应用程序。它不只是最小化应用程序,而是终止进程。脚本名称为 mc: application: kill,必须使用以下参数之一:

功能 详细信息
appPackage Androidonly
标识应用程序的软件包名称,在应用程序详细信息卡中显示为包 ID。例如 com.Advantage.aShopping
bundle ID 仅 iOS
唯一标识符,应用程序的 BundleID,在应用程序详细信息卡中显示为包 ID。例如 com.mf.iShopping
ID 应用程序标识符 (字符串) 。例如: com.mf.iShopping。
uuid 通用唯一标识符 (UUID) 。这是 Digital Lab 分配的唯一应用程序特定 ID。例如,“ bf441f2b - 3f16- 4bb5- 950d-4e3eaf2efffb ”。


以下示例代码终止 AndroidAdvantage 应用程序:

Copy code
Map<String, Object> params = new HashMap<String, Object>();
params.put("appPackage", "com.Advantage.aShopping");
appiumDriver.executeScript("mc:application:kill", params);

 

以“ params.put ”开头的行可以替换为以下任一选项:

  • params.put (" bundle Id" ," com.mf.iShopping") ;

  • params.put (" uuid" ," bf441f2b-3f16- 4bb5- 950- 4e3eaf2efffb") ;

  • params.put (" id" ," com.Advantage.aShopping") ;

有关其他代码示例,请参阅 Appium 代码示例 - JavaAppium 模拟

Network virtualization 功能

请参见 Network Virtualization 帮助中心为如何在 Digital Lab 中添加网络虚拟化功能的示例。

后退到顶部

检索 Appium 日志

在执行 Appium 测试期间会生成一个日志文件。

要检索日志,请使用 mc-wd: downloadLogs 脚本并指定编码。

当连接器收到此命令时,将检索当前 Appium 进程中所有会话的日志。将字符串附加到响应正文。

Appium 用户的测试代码使用响应正文中的字符串并相应地对其进行处理。

例如:

HashMap < String ,String > encoding = new HashMap < String ,String > () ;

encoding.put (" encoding" ," UTF-8") ;

String logFileContents = (String) wd.executeScript (" mc-wd: downloadLogs" ,encoding) ;

有关其他代码示例,请参阅 Appium 代码示例 - JavaAppium 模拟

后退到顶部

并行测试

可以在 Digital Lab 上运行并行 Appium 和 Selenium 测试。

您可以通过编码或使用配置项 (持续集成) 工具 (如 Jenkins) 来实现此目的。关于在 Jenkins 中运行并行测试的示例,请参阅 Jenkins Wiki 中的 Parallel Test Executor 插件。

后退到顶部

另请参阅: