Appium移动自动化框架

  • 时间:
  • 浏览:1
  • 来源:大发快3官方网址—大发快3APP下载

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

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

上图中,Node Detail 下面的resource-id com.test.seller:id/phone_edit1 对应Excel 和代码中的定位办法By.id,控件元素数据text 1379835951000 对应Excel 和代码中的操作办法sendkeys(),控件元素赋值数据为1379835951000。

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

中间介绍了用户名文本框输入用sendkeys()办法,这麼 类似于 元素的操作办法有什么呢?元素操作办法大致有单击(click)、输入(sendkeys)、元素滑动 、页面滑动、长按、下拉、弹出、屏幕放大缩小等,最常用的统统我单击和输入。

数据校验。我我觉得元素有一种统统我数据校验,当多多程序 找不能元素时,用例就会失败。

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

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

Appium 的核心是一一个多遵守REST 设计风格的Web 服务器,它接收客户端的连接和命令,在手机设备上执行命令,统统我通过HTTP 的响应挂接命令执行的结果。类似于 架构给亲戚亲戚亲戚亲戚朋友提供了很好的开放形态:假若有一种语言有HTTP 客户端的API,亲戚亲戚亲戚亲戚朋友就都都能能 通过类似于 语言写另一方的测试代码。

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

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

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

测试App 的基本过程

  基于Appium 自动化测试框架,亲戚亲戚亲戚亲戚朋友要进行的是连接电脑、连接手机、解锁、安装App、卸载App、启动App、元素定位、元素的操作、屏幕的操作、页面等待图片、异常解决截图、数据校验、日志、报告等一系列自动化测试执行的全版过程。

Appium 自动化框架元素控件的捕获,根据捕获到的元素控件进行相应的操作。

Appium 元素控件有多种定位办法,最常用的是元素的ID(即By.id)和元素的值(即By.name)。还都都能能 通过元素类型TagName、元素的位置XPath、手机设备的坐标等进行定位操作。安卓的元素控件都都能能 通过SDK 中的uiautomatorviewer.bat 文件进行录制和捕获定位,如下图所示。

Desired Capabilities

  Desired Capabilities 是类似于 键值对的集合(比如一一个多 map 肯能 hash)。客户端将什么键值对发送给服务端,告诉服务端亲戚亲戚亲戚亲戚朋友愿意如何测试。比如,亲戚亲戚亲戚亲戚朋友都都能能 把platformName capability 设置为 iOS,告诉Appium 服务端,亲戚亲戚亲戚亲戚朋友愿意一一个多iOS 的session,而前会 一一个多 Android 的session。

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

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

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

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

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 Clients 客户端

  此客户端的概念前会 亲戚亲戚亲戚亲戚朋友传统意义上的客户端,更好的理解办法是一一个多扩展的WebDriver 协议库,当你用另一方喜欢的语言写case 时,会将该语言扩展的WebDrvier库换成到另一方的环境中,这时愿意把它理解为这统统我个客户端。

Appium Clients 客户端的安装包如下

Mac 机器上直接运行Appium.dmg;Windows 机器上运行Appium.exe。

Appium 框架的功能

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

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

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

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

Session

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

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

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

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

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

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

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

Appium Server 服务端

  Appium Server 是用 Node.js 写的,亲戚亲戚亲戚亲戚朋友既都都能能 用源码编译,也都都能能 从 NPM 直接安装。

Appium 服务端有统统语言库,如 Java、Ruby、Python、PHP、JavaScript 以及C#等,什么库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的完后 ,你只需使用什么库代替常规的 WebDriver 库就都都能能 了。