18大Appium面试问答(2021年更新)

1) 解释什么是Appium?

Appium是一个免费分发的开源移动应用UI测试框架。

2) 列出Appium的能力?

应用能力包括

  • 测试网站
  • 为原生和混合移动自动化提供跨平台
  • 支持JSON有线协议
  • 不需要重新编译App
  • 支持对物理设备和类似设备或仿真器进行自动化测试
  • 它不依赖于移动设备

3) 列出使用Appium的前提条件?

使用Appium的先决条件是

  • ANDROID SDK
  • JDK
  • TestNG
  • Eclipse
  • Selenium Server JAR
  • Webdriver Language Binding Library
  • APPIUM for Windows
  • js

4) 列出使用Appium的限制?

  • Appium不支持测试低于4.2的Android版本
  • 对混合应用程序测试的支持有限。例如,不可能测试应用程序从网络应用程序到本机应用程序的切换动作,反之亦然
  • 不支持在Microsoft Windows上运行Appium Inspector

5) 说明如何在移动应用中查找DOM元素或XPath?

要查找DOM元素,使用“UIAutomateviewer”查找Android应用程序的DOM元素。

6) 讲解Appium的设计理念。

  • Appium是一个使用Node.js平台编写的“HTTP服务器”,使用Webdriver JSON有线协议驱动iOS和Android会话。因此,在初始化Appium Server之前,必须在系统上预安装Node.js
  • 下载并安装Appium后,就会在我们的机器上设置一个服务器,该服务器公开一个睡觉应用编程接口
  • 它接收来自客户端的连接和命令求,并在移动设备(Android/iOS)上执行该命令
  • 它使用HTTP响应进行响应。再一次,为了执行这个求,它使用移动测试自动化框架来框架,比如

    • 适用于iOS的Apple Instruments(Instruments仅在装有OS X v10.5和更高版本的Xcode 3.0或更高版本中提供)
    • UIAutomator for Android API级别16或更高
    • 适用于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 for Android Automation,它只支持Android SDK平台,API 16或更高版本,为了支持较旧的API,他们使用了另一个名为Selendroid的开源库

9) 解释什么是APPIUM INSPECTOR?

与Selenium IDE记录和回放工具类似,Appium有一个“检查器”来记录和回放。它记录和播放本机应用程序,但是,Appium Inspector不支持Windows,并且在其选项中使用UIAutomator查看器。

10) 提到编写Appium测试的基本要求是什么?

为了编写需要的Appium测试,

  • 驱动客户端:Appium像驱动用户一样驱动移动应用程序。使用客户端库编写Appium测试,这些测试包装测试步骤并通过HTTP发送到Appium服务器。
  • Appium会话:必须首先初始化一个会话,因为这样的Appium测试是在会话中进行的。完成一个会话的自动化后,可以结束该会话并等待另一个会话
  • 所需功能:要初始化Appium会话,需要定义某些称为“所需功能”的参数,如PlatformName、PlatformVersion、DeviceName等。它指定了需要从Appium服务器实现的自动化类型。
  • 驱动程序命令:可以使用大量富于表现力的命令词汇表来编写测试步骤。

11) 提到使用Appium可能会遇到什么错误?

在Appium中可能面临的错误包括

  • 错误1:需要以下所需功能,但未提供:设备名称、平台名称 (The following desired capabilities are needed but not provided: Device Name, platformName)
  • 错误2:找不到ADB( Could not find adb. Please set the ANDROID_HOME environment variable with the Android SDK root directory path)。使用Android SDK根目录路径设置Android_HOME环境变量
  • 错误3:openqa.selenium.SessionNotCreatedException:无法创建新会话
  • 错误4:如何在移动应用程序中查找DOM元素或XPath?

12) 是否需要一台服务器计算机来在Appium上运行测试?

不需要,不需要服务器机器就可以在Appium上运行测试。Appium促进了两层架构,其中测试机器连接到测试,可以在运行测试的同一台机器上运行Appium。

13) 当我使用Appium测试时,是否可以使用Javascript与我的应用程序交互?

是的,可以在使用Javascript时与App交互。当命令在Appium上运行时,服务器会将脚本发送到应用程序,封装成匿名函数以供执行。

14) 提到使用Appium测试最困难的场景是什么?

用Appium测试最困难的场景是数据交换。

15) 使用Appium时,我可以在多线程环境中运行测试吗?

是的,可以在多线程环境中运行测试,但是必须确保在同一个Appium服务器上同时运行不超过一个测试。

16) 在Android中,是否需要应用程序的.apk来自动使用Appium,或者是否也需要在我的工作区中使用应用程序?

在Android中,只需要.apk文件就可以自动使用Appium。

17) 解释什么是Appium Package Master?如何创建包?

Appium Package Master是一套管理和创建Appium包的工具。例如,要创建包,可以使用以下代码

# using es7/babe1

Gulp create-package –n <package-name>

#regular es5

Gulp create-package —nobabe1 –n <package-name>

包将在out/ 中生成

18) 解释Appium如何支持测试框架?

Appium不支持测试框架,因此没有必要支持它们。Appium可以与想要的任何框架一起使用。

IT赶路人

专注IT知识分享