用于移动应用测试的 Appium 架构

已发表: 2020-06-26

目录

Appium 概述

Appium 是一个免费的移动应用程序测试工具/框架,为 iOS 和 Android 移动应用程序提供自动化。 Appium 是一种客户端-服务器架构,可以接受用 Java、Python、Ruby、JavaScript 等编写的测试代码。

Appium 的核心是一个用 Node.js 编程语言编写的 Web 服务器,它使用 JSON 有线协议创建 iOS 和 Android 会话。

Appium 服务器执行以下操作

  • 通过 HTTP 以 JSON 对象的形式从客户端接收连接
  • 启动会话,然后返回会话 ID
  • 监听发出的命令
  • 在移动设备上执行这些命令
  • 使用 HTTP 响应进行响应

资源

Appium 关键概念

在深入研究Appium 架构之前,让我们首先了解与Appium 架构相关的关键概念

Appium客户端

Appium 客户端是一个自动化的脚本代码,可以用您熟悉的任何语言(如 PHP、 Java 、Phyton 等)编写。 Appium 客户端保存移动设备和应用程序的配置细节以及运行测试用例的逻辑/代码。

Appium 服务器

Appium 服务器是一个用 Node.js 编程语言编写的 HTTP 服务器,它以 JSON 格式接收来自 Appium 客户端的连接和命令请求,并在移动设备上执行这些命令。 Appium Server 在调用自动​​化代码之前启动。

服务器与 iOS 和 Android 平台交互并创建会话以与移动应用程序的终端设备交互。

阅读:面向初学者的 20 大热门 Android 项目创意和主题

终端设备

终端设备大多是实时移动设备或模拟器。 Appium 服务器通过客户端的命令在终端设备中执行自动化脚本。

JSON 有线协议

在 Appium 架构中,JSON 有线协议是一种传输机制,用于在 Appium 客户端和 Appium 服务器之间建立通信。 该协议控制不同移动设备在会话中的行为。 它是一组通过 RESTful API 公开的预定义端点。 例如,如果客户端要向服务器发送数据,则客户端将其转换为 JSON 对象并将其推送到服务器。 然后服务器解析接收到的 JSON 对象并将其转换回数据以供使用。

Appium架构

现在让我们了解Appium 架构

如上所述,Appium 服务器是一个 HTTP 服务器,它以 JSON 格式从客户端库中读取 HTTP 请求,并将这些请求发送到相应的平台。 Appium 服务器识别这些请求并创建与相应终端设备的自动化会话。 创建会话后,Appium 服务器开始在终端设备中执行测试用例。

Appium 服务器对 iOS 和 Android 的请求处理方式不同,具体取决于它运行的平台。 以下部分将解释 Appium 如何在这些平台上以不同的方式运行命令。

Appium 在 iOS 设备上工作

在 iOS 设备上,Appium 使用 UIAutomation API(Apple 公司提供的 JavaScript 库)连接应用程序的用户界面元素。

上面的 Appium iOS 架构图描述了iOS 自动化的Appium 架构 让我们一步步解码 iOS Appium 架构图:

  • Appium 客户端使用 JSON 有线协议与 Appium 服务器通信,并将 JSON 格式的命令发送到服务器。
  • 然后服务器与客户端建立连接并将请求转发到 ICS(仪器命令服务器)。 Appium 服务器还将 bootstrap.js 文件推送到 iOS 设备。 ICC(仪器命令客户端)然后获取命令并在 iOS 设备环境中的 bootstrap.js 文件中运行它。
  • 一旦完成上述操作,客户端将执行命令的日志详细信息发送回服务器。

Appium 在 Android 设备中运行

在 Android 设备上,Appium 将使用 Android 开发人员开发的 UIAutomator 框架与应用程序的用户界面元素进行交互。 UI Automator 是一个用于测试用户界面的框架。

上面的 Appium Android 架构图描述了用于 Android 自动化的 Appium 架构。 上图将 bootstrap.js 替换为 bootstarp.jar。

学习: Android SDK:初学者详细教程

让我们一步步解码Android Appium架构图

  • Appium 客户端使用 JSON 有线协议与 Appium 服务器通信,并将 JSON 格式的命令发送到服务器。
  • Appium 服务器然后与客户端建立连接并将请求转发到 ICS UiAutomator 控制器。 Appium 服务器还将 bootstrap.jar 文件推送到 Android 设备。 UiAutomator 命令客户端然后拾取命令并在 Android 设备环境中的 bootstrap.jar 文件中运行它。
  • 一旦完成上述操作,客户端将执行命令的日志详细信息发送回 Appium 服务器。

另请阅读:全栈与 Android 开发人员:您应该选择哪个

结论

Appium 无疑是最流行的移动应用测试平台之一。 到目前为止,您已经了解了Appium架构、工作流程以及 Appium 在 iOS 和 Android 平台上的工作的概述。

如果您有兴趣了解有关全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目,以及任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

为未来的职业做准备

升级和 IIIT-BANGALORE 的 PG 文凭在全栈软件开发中
现在申请