Appium教程:知道如何设置Appium

时间:2020-02-23 14:37:39  来源:igfitidea点击:

什么是Appium?

Appium是一个开源的,跨平台的自动化测试工具。
它用于自动执行本机,混合和Web应用程序的测试用例。
该工具主要针对Android和iOS应用,并且仅限于移动应用测试领域。
最近,又有一些更新,Appium也声明将支持Windows桌面应用程序的测试。

Appium由酱汁实验室开发和维护。
当前,正在分发Appium版本1.10.
Appium首先以基于命令行的测试服务开始,可以使用node.js进行安装。
在名为" Appium桌面"的最新版本中,他们发布了具有直观图形用户界面的强大且完善的工具。
Appium桌面带有一个应用程序元素检查器,我们将在本Appium教程的后面部分进行介绍。

Appium哲学

Appium是移动测试自动化领域的后起之秀。
当涉及到移动测试自动化时,业界仍在许多方面寻找最佳方法。
借助Appium,他们受益于从早期自动化解决方案中学到的经验教训,这些经验教训并没有达到他们期望的效果。
Appium的四点哲学很好地总结了其中的一些教训:

  • 我们无需重新编译或者以任何方式对其进行修改即可使其自动化。

  • 我们不应该被锁定在特定的语言或者框架中来编写和运行测试。

  • 当涉及到自动化API时,移动自动化框架不应该浪费时间。

  • 移动自动化框架应该在精神,实践和名称上都是开源的!

移动应用程序的类型

如第一段所述,我们必须已经意识到Appium具有处理各种应用程序的能力。
让我们了解不同类型的应用程序。

本机应用

牢记某个平台的情况下开发的应用程序称为本机应用程序。
本机应用程序是使用特定的软件开发工具包开发的,并且往往以性能为重点。
如果开发预算不成问题,通常应采用本机应用程序。
本机应用程序的一些优点如下

  • 完美的表现

  • 他们通常倾向于看起来精致和抛光

  • 本机应用程序与设备硬件无缝集成

  • 大多数本机应用程序都具有直观的UI/UX

本机应用程序的一些示例包括Spotify,Snapchat,Pinterest,Skype。

网络应用

在本机应用程序的概念出现之前,这类应用程序曾经非常出名。
顾名思义,Web应用程序在浏览器上运行。
由于它们在浏览器上运行,因此通常不需要任何复杂的安装,并且从预算的角度来看,开发过程也很便宜。
由于该应用程序不是为特定平台开发的,因此使用基于Web的开发语言(例如HTML/CSS/JavaScript)进行开发。

以下是Web应用程序的优势列表

  • 降低开发成本

  • 易于维护

  • 网络应用程序无需获得应用程序市场的批准

  • 没有安装或者用户更新

成功的Web应用程序示例包括Ali Express,Flipkart Lite和Washington Post。

混合应用

混合应用程序融合了本机和Web应用程序的优点。
这些应用程序可以从Play商店下载,也可以访问设备的所有函数;实际上,它们是内部的Web应用程序。
它们是使用简单的Web开发语言(例如HTML和CSS)开发的。
这使它们可以在任何平台上运行。

以下是混合应用程序的优点列表

  • 他们只有一个代码库可以管理

  • 应用开发不会花费太长时间

  • 易于扩展到另一个平台

  • 可以像本机应用程序一样访问完整的设备函数

混合应用程序的一些示例是OLA,Basecamp,Instagram,Yelp等

Appium与Selendroid与Robotium

||||
| --- - | --- | - - |
| Appium | Selendroid | Robotium |
|免费和开源|免费和开源|免费和开源|
|支持iOS和Android |仅支持Android |仅支持Android |
|不需要应用程序源代码或者库|需要应用程序源代码|需要应用程序源代码/库|
|不重新安装申请|申请重新安装Robotium代码的小变化导致完全重建|
|支持多个框架和编程语言|与硒和詹金相容仅支持Java。根本不兼容硒|
|强与活跃社区|社区不如Appium那么强大不是这样一个积极的社区|

现在,让我们在此Appium教程中讨论Appium的体系结构和设计。

Appium架构

Appium是用node.js编写的HTTP服务器,可为iOS和Android等不同平台创建并处理多个WebDriver会话。
Appium在生成服务器的设备上启动"测试用例",并侦听来自主Appium服务器的代理命令。
测试人员通过将其作为请求发送到Appium服务器来编写其在设备或者仿真器上执行的测试脚本。
每个供应商(如iOS和Android)都有在设备上运行测试用例的不同方式和机制。
因此,在侦听来自Appium服务器的命令之后,Appium会侵入其中并运行此测试用例。

Appium在iOS中的工作方式:

在iOS上,Appium proxies命令可命令在Mac Instruments环境中运行的UIAutomation脚本。
Apple提供了一个名为" instruments"的应用程序,该应用程序用于执行很多活动,例如分析,控制和构建iOS应用程序,但它也具有自动化组件,我们可以其中编写一些命令,这些脚本使用JavaScript进行,该命令使用UIAutomation API与App UI进行交互。
Appium利用这些相同的库来自动化iOS Apps。

在上图中,我们可以在iOS自动化的背景下看到Appium的体系结构。
如果我们谈论命令生命周期,就像Selenium Web驱动程序从代码中选择一条命令,然后通过HTTP请求以JSON形式将其发送到Appium服务器。
Appium服务器知道iOS和Android之类的自动化上下文,并将此命令发送到Instruments命令服务器,该服务器将等待Instruments命令客户端(用node.js编写)来拾取它并在iOS工具内的bootstrap.js中执行它。
环境。
执行命令后,命令客户端会将消息发送回Appium服务器,该服务器将与该命令相关的所有信息记录在其控制台中。
这个周期一直持续到所有命令执行完毕为止。

Appium如何在Android中工作:

在Android情况下,情况几乎类似,其中Appium代理命令运行在设备上运行的UIAutomator测试用例。
UIAutomator是Android的本机UI自动化框架,它支持从命令行直接在设备中运行JUnit测试用例。
它使用Java作为编程语言,但是Appium将使其从任何WebDriver支持的语言中运行。

在上图中,我们可以看到,这里有bootstrap.jar代替bootstrap.js,它代表了用Java编译时的测试用例。

一旦启动,它将产生一个TCP服务器。
TCP服务器位于设备内部,客户端处于Appium进程中,这与iOS中的过程恰好相反。

使用Android Studio进行Appium安装

没有安装教程,任何Appium教程都不完整。
因此,这是使用android studio安装Appium的方法。

  • 下载以下内容

  • Android Studio

  • Java的Appium Jar文件

  • 最新的Appium客户端库

  • Appium服务器

  • Java

  • 在系统上安装Java。不要忘记设置环境变量!

  • 通过运行安装程序在系统上安装Android Studio,然后创建一个新项目。

  • 提取客户端库。将它们与Appium jar文件分开保存在一个文件中。

  • 切换到Android Studio中的项目视图。

  • 现在,选择我们在步骤4中提取的文件,并将其放在app目录下的lib文件夹中。然后将它们全部选中,并将它们添加为库。

  • 将文件添加为库后,我们应该在app文件夹中看到一个build.gradle文件。双击它,然后去重建项目。成功重建项目后,这意味着我们已在Android Studio的系统上安装了Appium。