Appium移动自动化框架

  • 时间:
  • 浏览:0

(1)支持iOS、Android,可在多台机器上并行App 自动化,测试机型适配。

(2)代码实现关键字驱动:

Session

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

从功能测试用例中抽取需重复执行的、主要的功能进行用例覆盖。

支持用例failed(失败)时自动截屏。

failed(失败)用例自动重复执行数遍。

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

测试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 137983595500 对应Excel 和代码中的操作土办法sendkeys(),控件元素赋值数据为137983595500。

都才能 就是我理解:首先找到这名文本框,接着给这名文本框输入数据。即通过ID属性值com.test.seller:id/phone_edit1,找到此用户名文本框的控件元素,因此通过sendkeys()土办法输入用户名数据137983595500 到此用户名文本。有些自动化测试步骤的定位土办法、控件元素以及操作土办法也都与此同类。实际上,自动化测试就是我通过应用程序池池代码来实现模拟手动测试去操作一遍的过程。

上端介绍了用户名文本框输入用sendkeys()土办法,可以了有些元素的操作土办法有那此呢?元素操作土办法大致有单击(click)、输入(sendkeys)、元素滑动 、页面滑动、长按、下拉、弹出、屏幕放大缩小等,最常用的就是我单击和输入。

数据校验。真是元素某种生活就是我数据校验,当应用程序池池找可以了元素时,用例就会失败。

另外,测试用例时都才能 加入有另有一个或多个断言进行验证数据,还可设置步骤守候延迟时间。

测试结果。测试用例中记录了运行后的测试结果,如pass、failed 或是skip。(此每段会在《软件自动化测试开发》第4章中进行完全讲解)

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 的核心是有另有一个遵守REST 设计风格的Web 服务器,它接收客户端的连接和命令,在手机设备上执行命令,因此通过HTTP 的响应整理命令执行的结果。这名架构给当人们提供了很好的开放型态:假若某种生活语言有HTTP 客户端的API,当人们就都才能 通过这名语言写另一方的测试代码。

[选自《软件自动化测试开发》,点此链接可在博文视点官网查看。

](http://www.broadview.com.cn/book/98?spm=5176.5000239.blogcont68377.8.3af1054a4xMPTw)

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

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

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

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 介绍(参考Appium 官方资料)

  Appium 是有另有一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本都才能 一块儿运行在iOS 和Android平台。

Appium 是跨平台的,即都才能 针对不同的平台用一套API 来编写测试用例。

Appium 是有另有一个C/S 架构,核心是有另有一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,因此在移动设备上执行那此命令,最后将执行结果贴到 HTTP 响应中返还给客户端。

测试集:关联Excel 测试用例和脚本配置。

测试数据:Excel 存储输入数据、控件元素、测试结果。

测试脚本:由Java 和TestNG 编写,分层型态有case、log、config、report 以及data 等。

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

Appium 框架的功能