Appium 面试问答精选 18 题(2025 年)
以下是 Appium 面试问答,供应届毕业生和有经验的候选人参考,以获得他们梦想的工作。
Appium 面试问答(应届毕业生)
1) 解释什么是 Appium?
Appium 是一个免费分发的开源移动应用程序 UI 测试框架。
2) 列出 Appium 的能力?
Appium 的能力包括:
- 测试网络
- 提供用于原生和混合移动自动化的跨平台
- 支持 JSON wire 协议
- 它不需要重新编译应用程序
- 支持在物理设备以及模拟器上进行自动化测试
- 它不依赖于移动设备
3) 列出使用 APPIUM 的先决条件?
使用 APPIUM 的先决条件是:
- ANDROID SDK
- JDK
- TestNG
- Eclipse
- Selenium Server JAR
- Webdriver 语言绑定库
- 适用于 Windows 的 APPIUM
- Google Play 上的 APK 应用程序信息
- js
4) 列出使用 Appium 的局限性?
- Appium 不支持测试低于 4.2 版本的 Android
- 对混合应用测试的支持有限。例如,无法测试应用程序从 Web 应用切换到原生应用以及反向切换的操作
- 不支持在 Microsoft Windows 上运行 Appium Inspector
5) 解释如何在移动应用程序中查找 DOM 元素或 xPath?
要查找 DOM 元素,请使用“UIAutomateviewer”来查找 Android 应用程序的 DOM 元素。
6) 解释 Appium 的设计理念?
- Appium 是一个使用 Node.js 平台编写的“HTTP 服务器”,并使用 Webdriver JSON wire 协议驱动 iOS 和 Android 会话。因此,在初始化 Appium 服务器之前,必须在系统上预先安装 Node.js
- 当Appium 下载并安装后,机器上会设置一个服务器,该服务器公开 REST API
- 它接收来自客户端的连接和命令请求,并在移动设备(Android / iOS)上执行该命令
- 它返回 HTTP 响应。同样,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。框架如:
- 适用于 iOS 的 Apple Instruments(Instruments 仅在 Xcode 3.0 或更高版本以及 OS X v10.5 或更高版本中可用)
- 适用于 Android API 级别 16 或更高版本的 Google UIAutomator
- 适用于 Android API 级别 15 或更低版本的 Selendroid
7) Appium 支持哪些语言?
Appium 支持任何支持 HTTP 请求的语言,例如 Java、带有 Node.js 的 JavaScript、Python、Ruby、PHP、Perl 等。
8) 解释 Appium 的优点和缺点?
优点:
- 对于程序员来说,无论他正在自动化哪个平台(Android 或 iOS),所有的复杂性都将保持在单个 Appium 服务器下
- 它开启了跨平台移动测试的大门,这意味着相同的测试可以在多个平台上运行
- Appium 不需要您的应用程序中包含额外的组件来使其支持自动化
- 它可以自动化混合、Web 和原生移动应用程序
缺点:
- 使用 Appium 可以同时在多个 iOS 模拟器上运行脚本
- 它使用 UIAutomator 进行 Android 自动化,该工具仅支持 Android SDK 平台,API 16 或更高版本,为了支持旧版 API,他们使用了另一个名为 Selendroid 的开源库
9) 解释什么是 APPIUM INSPECTOR?
与 Selenium IDE 录制和回放工具类似,Appium 也有一个“Inspector”用于录制和回放。它通过检查 DOM 来录制和回放原生应用程序行为,并以任何所需的语言生成测试脚本。但是,Appium Inspector 不支持 Windows,并在其选项中使用 UIAutomator 查看器。
Appium 面试问答(有经验的候选人)
10) 提一下编写 Appium 测试的基本要求是什么?
为了编写 Appium 测试,您需要:
- 驱动客户端:Appium 像用户一样驱动移动应用程序。使用客户端库,您可以编写 Appium 测试,该测试包装您的测试步骤并将其通过 HTTP 发送到 Appium 服务器。
- Appium 会话:您必须首先初始化一个会话,因为 Appium 测试是在会话中进行的。一旦一个会话的自动化完成,它就可以结束并等待另一个会话
- 所需能力:要初始化 Appium 会话,您需要定义某些参数,称为“所需能力”,例如 PlatformName、PlatformVersion、Device Name 等。它指定了从 Appium 服务器所需的自动化类型。
- 驱动命令:您可以使用大量富有表现力的命令词汇来编写测试步骤。
11) 提一下使用 Appium 可能会遇到哪些错误?
在使用 Appium 时可能会遇到的错误包括:
- 错误 1: 需要以下所需能力但未提供:设备名称、平台名称
- 错误 2: 找不到 adb。请设置指向 Android SDK 根目录路径的 ANDROID_HOME 环境变量
- 错误 3: openqa.selenium.SessionNotCreatedException:无法创建新会话
- 错误 4: 如何在移动应用程序中查找 DOM 元素或 XPath?
12) 您需要一台服务器机器来运行 Appium 上的测试吗?
不,您不需要服务器机器来运行 Appium 上的测试。Appium 提供了一个两层架构,其中测试机器连接到运行 Appium 的测试服务器并自动化整个过程。您可以让 Appium 在您的测试运行的同一台机器上运行。
13) 我在使用 Appium 进行测试时,是否可以使用 Javascript 与我的应用程序交互?
是的,在使用 Javascript 时可以与应用程序交互。当命令在 Appium 上运行时,服务器会将脚本包装到一个匿名函数中,发送到您的应用程序中执行。
14) 提一下使用 Appium 测试最困难的场景是什么?
使用 Appium 进行测试最困难的场景是数据交换。
15) 在使用 Appium 时,我可以在多线程环境中运行测试吗?
是的,您可以在多线程环境中运行测试,但您必须确保在同一 Appium 服务器上同时运行的测试不超过一个。
16) 在 Android 中,您需要应用程序的 .apk 文件来使用 Appium 进行自动化吗,还是也需要工作区中的应用程序?
在 Android 中,您只需要 .apk 文件即可使用 Appium 进行自动化。
17) 解释什么是 Appium 包管理器?如何创建包?
Appium 包管理器是一组用于管理和创建 Appium 包的工具。例如,要创建包,可以使用以下代码:
# 使用 es7/babe1
Gulp create-package –n <包名>
# 常规 es5
Gulp create-package ---nobabe1 –n <包名>
包将生成在 out/<包名>
中
18) 解释 Appium 如何支持测试框架?
Appium 不支持测试框架,因此无需支持它们。Appium 可以与您想要的任何框架一起使用。
这些面试问题也将有助于您的口试