`

Appium移动自动化框架

阅读更多

引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例。本文对Appium自动化测试框架的功能进行了概括。 本文选自《软件自动化测试开发》。

Appium 框架的功能

(1)支持iOS、Android,可在多台机器上并行App 自动化,测试机型适配。 
(2)代码实现关键字驱动:

  • 测试集:关联Excel 测试用例和脚本配置。
  • 测试数据:Excel 存储输入数据、控件元素、测试结果。
  • 测试脚本:由Java 和TestNG 编写,分层结构有case、log、config、report 以及data 等。

(3)自动测试用例执行:

  • 从功能测试用例中抽取需重复执行的、主要的功能进行用例覆盖。
  • 支持用例failed(失败)时自动截屏。
  • failed(失败)用例自动重复执行数遍。

(4)持续集成环境Jenkins,定时自动构建和执行测试任务。

  • 测试结果报告展示,自动邮件展示。

Appium 自动化测试一个App 的基本过程如下:

测试App 的基本过程

  基于Appium 自动化测试框架,我们要进行的是连接电脑、连接手机、解锁、安装App、卸载App、启动App、元素定位、元素的操作、屏幕的操作、页面等待、异常处理截图、数据校验、日志、报告等一系列自动化测试执行的详细过程。 
Appium 自动化框架元素控件的捕获,根据捕获到的元素控件进行相应的操作。 
  Appium 元素控件有多种定位方法,最常用的是元素的ID(即By.id)和元素的值(即By.name)。还可以通过元素类型TagName、元素的位置XPath、手机设备的坐标等进行定位操作。安卓的元素控件可以通过SDK 中的uiautomatorviewer.bat 文件进行录制和捕获定位,如下图所示。 
图片描述
图片描述
图片描述
  上图中,Node Detail 下面的resource-id com.test.seller:id/phone_edit1 对应Excel 和代码中的定位方法By.id,控件元素数据text 13798359580 对应Excel 和代码中的操作方法sendkeys(),控件元素赋值数据为13798359580。 
  可以这样理解:首先找到这个文本框,接着给这个文本框输入数据。即通过ID属性值com.test.seller:id/phone_edit1,找到此用户名文本框的控件元素,然后通过sendkeys()方法输入用户名数据13798359580 到此用户名文本。其他自动化测试步骤的定位方法、控件元素以及操作方法也都与此类似。实际上,自动化测试就是通过程序代码来实现模拟手动测试去操作一遍的过程。 
  上面介绍了用户名文本框输入用sendkeys()方法,那么其他元素的操作方法有哪些呢?元素操作方法大致有单击(click)、输入(sendkeys)、元素滑动 、页面滑动、长按、下拉、弹出、屏幕放大缩小等,最常用的就是单击和输入。 
  数据校验。其实元素本身就是数据校验,当程序找不到元素时,用例就会失败。 
  另外,测试用例时可以加入一个或多个断言进行验证数据,还可设置步骤等待延迟时间。 
  测试结果。测试用例中记录了运行后的测试结果,如pass、failed 或是skip。(此部分会在《软件自动化测试开发》第4章中进行详细讲解)

Appium 介绍(参考Appium 官方资料)

  Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台。 
  Appium 是跨平台的,即可以针对不同的平台用一套API 来编写测试用例。 
  Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。

Session

  自动化始终围绕一个Session(会话)进行。客户端初始化一个Session 来与服务端交互,不同的语言有不同的实现方式,但是它们最终都是发送一个POST 请求给服务端,请求中包含一个JSON 对象,其被称作“Desired Capabilities”。此时,服务端就会开启一个自动化的 Session,然后返回一个Session ID,Session ID 将会被用户发送后续的命令。

Desired Capabilities

  Desired Capabilities 是一些键值对的集合(比如一个 map 或者 hash)。客户端将这些键值对发送给服务端,告诉服务端我们想要怎样测试。比如,我们可以把platformName capability 设置为 iOS,告诉Appium 服务端,我们想要一个iOS 的session,而不是一个 Android 的session。

Appium Server 服务端

  Appium Server 是用 Node.js 写的,我们既可以用源码编译,也可以从 NPM 直接安装。 
  Appium 服务端有很多语言库,如 Java、Ruby、Python、PHP、JavaScript 以及C#等,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。

Appium Clients 客户端

  此客户端的概念不是我们传统意义上的客户端,更好的理解方式是一个扩展的WebDriver 协议库,当你用自己喜欢的语言写case 时,会将该语言扩展的WebDrvier库添加到自己的环境中,这时你可以把它理解为这就是个客户端。 
  Appium Clients 客户端的安装包如下。 
  Mac 机器上直接运行Appium.dmg;Windows 机器上运行Appium.exe。

Appium Android/iOS 工作原理

  API 接口调用Selenium 的接口,Appium Server 接收WebDriver 标准请求,解析请求内容,调用对应的框架响应操作。代码将DesiredCapability 中的键值对组合成一个JSON,然后通过HTTP 协议发送到Appium服务器创建一个session。代码与Appium的所有交互都是围绕着这个session 进行的。session 创建成功后,Appium 再通过USB接口与手机之间创建TCP 连接,先安装一些服务端App,比如Android API 4.2+是uiautomator,Android 2.3+是Instrumentation;如果是iOS,则是UiAutomation。手机的操作都是由Appium 发送指令到uiautomator,然后再由uiautomator 进行控制的。 
  Appium 原理图如下。 
图片描述
  Appium 的核心是一个遵守REST 设计风格的Web 服务器,它接收客户端的连接和命令,在手机设备上执行命令,然后通过HTTP 的响应收集命令执行的结果。这种架构给我们提供了很好的开放特性:只要某种语言有HTTP 客户端的API,我们就可以通过这个语言写自己的测试代码。 
  本文选自《软件自动化测试开发》,点此链接可在博文视点官网查看。 
  图片描述

分享到:
评论

相关推荐

    APPIUM自动化框架

    Appium自动化框架是一款广泛应用于移动应用测试的工具,它支持iOS和Android平台,允许开发者使用多种编程语言(如Java、Python、Ruby等)编写测试脚本。Appium的核心理念是“Write Once, Run Anywhere”,这意味着你...

    python+appium+Android 自动化测试框架

    Python结合Appium与Android自动化测试框架的构建是一个高效且强大的测试解决方案,尤其在移动应用测试领域。本框架的核心是利用Python作为编程语言,Appium作为跨平台的自动化测试工具,以及Android SDK为运行环境,...

    Appium+Python自动化框架介绍.pdf

    Appium是一个开源工具,用于自动化iOS、Android以及Firefox OS平台上的移动应用测试。它支持移动原生应用(Native App)、移动Web应用(Mobile Web App)和混合应用(Hybrid App)的自动化测试。移动原生应用是指...

    《appium手机自动化测试-黄延胜》PDF

    总之,《Appium手机自动化测试》是一本全面覆盖Appium技术的指南,无论你是测试工程师、开发人员还是对移动自动化测试感兴趣的从业者,都能从中获得宝贵的实践经验和理论知识,提升你的自动化测试能力。通过学习这...

    Appium自动化测试PO框架实例(Eclipse版)

    Appium自动化测试PO框架实例(Eclipse版)是针对移动应用自动化测试的一种高效解决方案,尤其适用于Android和iOS平台。在本文中,我们将深入探讨Appium、PO(Page Object)框架以及如何在Eclipse环境中实现这一框架...

    Appium 移动自动化测试

    Appium是一个开源的自动化测试框架,用于原生、移动web和混合应用的自动化...通过本文档的介绍,我们可以了解到Appium的安装、使用以及其在移动自动化测试中的应用方式,为开展移动端测试工作提供了必要的工具和知识。

    appium手机自动化测试

    整体而言,Appium凭借其支持多平台、多语言、多框架的特点,成为了移动自动化测试领域中不可或缺的工具。它极大地提高了测试的效率和覆盖率,是测试人员在进行移动端自动化测试时的首选工具之一。不过,要熟练掌握...

    Android 自动化框架 appium

    **Android自动化框架Appium** Appium是一款开源的自动化测试框架,专为移动应用(iOS和Android)设计,它允许开发者使用多种编程语言(如Java、Python、Ruby等)编写测试脚本,实现跨平台的自动化测试。Appium的...

    Appium自动化测试完整案例

    随着移动应用的发展,Appium 自动化测试的需求也在增加,Appium 的发展趋势也在不断变化,包括移动自动化测试的发展、混合自动化测试的发展等。 Appium 自动化测试的挑战 在使用 Appium 进行自动化测试时,我们...

    appium手机自动化测试.pdf

    Appium是一款非常流行的开源工具,用于对移动应用程序进行自动化测试。...随着移动设备的普及和移动应用的广泛使用,Appium在自动化测试领域的重要性日益凸显,成为移动自动化测试的首选框架之一。

    appium自动化框架

    **Appium自动化框架详解** Appium是一个开源的自动化...总之,Appium自动化框架为移动应用测试提供了一种高效、灵活的解决方案。通过理解其工作原理、构建自己的框架并不断优化,我们可以提升测试效率,确保产品质量。

    appium手机自动化测试-黄延胜

    Appium是一个开源的、跨平台的自动化测试工具,主要目的是为移动应用提供像桌面应用一样的自动化测试能力。它由SauceLabs支持,SauceLabs是一家提供云测试服务的公司,为Appium提供了成熟的企业级测试解决方案。 ##...

    appium自动化测试框架

    ### Appium自动化测试框架知识点详解 #### 一、Appium架构及环境安装 **1.1 Appium架构介绍** Appium作为一个开源的自动化测试工具,主要用于原生应用、移动网页应用以及混合应用的自动化测试。这里对这三种类型...

    基于Python的Appium自动化测试框架搬运GitHub项目设计源码

    本项目是一个基于Python的Appium自动化测试框架,从GitHub成功搬运。项目源码包含131个文件,涵盖44个pyc字节码文件、40个Python源代码文件、31个YAML配置文件、3个pickle序列化文件、2个XML配置文件、2个日志文件、...

    Python-基于Appium的App自动化测试框架

    Appium,作为一款强大的自动化测试框架,允许我们使用Python来实现对移动应用的自动化测试,无论这些应用是原生的、移动网页的还是混合型的。它具有跨平台特性,支持iOS和Android操作系统,甚至包括Firefox OS。 1....

    appium做移动端自动化测试

    **Appium**是一款开源的自动化测试框架,广泛应用于移动端应用的测试工作,支持对原生应用、混合应用以及移动Web应用进行自动化测试。其核心特点如下: 1. **无需重新编译或修改应用**:使用Appium进行测试时,不...

    Appium App UI自动化测试

    Appium App UI自动化测试是指使用Appium框架对移动应用程序的用户界面进行自动化测试。Appium是一款开源的自动化测试工具,支持多种移动平台,包括iOS和Android。 一、Appium App UI自动化测试背景 随着移动应用...

    自动化框架环境搭建appium.zip

    【自动化框架环境搭建appium.zip】是一个针对Android平台的自动化测试环境构建资源包,其中包含了必要的工具和文档,帮助用户顺利地安装并配置Appium。Appium是一个开源自动化测试框架,支持iOS和Android应用程序的...

Global site tag (gtag.js) - Google Analytics