Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Appium移动自动化框架功能概括?

Appium移动自动化框架功能概括?

提问于 2018-03-06 12:21:35
回答 1关注 0查看 518

小编说: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,我们就可以通过这个语言写自己的测试代码。

回答 1

MyLove

发布于 2018-03-07 06:54:00

是的,你理解很对,不过你的问题是什么?

和开发者交流更多问题细节吧,去 写回答
相关文章
Appium移动自动化框架功能概括
(1)支持iOS、Android,可在多台机器上并行App 自动化,测试机型适配。
博文视点Broadview
2020/06/12
2.1K0
Appium移动自动化框架功能概括
Appium自动化测试框架
自动化测试需要通过代码的形式告诉手机测试那个应用程序的哪一个界面,所以需要通过某种方式定位到某个应用程序的某个页面。
大忽悠爱学习
2022/07/12
2.1K0
Appium自动化测试框架
移动端自动化测试之Appium实战
之前咱们已经讲过了AppCrawler自动遍历技术,本次TesterHome社区为带来移动App自动化的Appium实战公开课,带大家了解如何借助Appium做移动端App的UI自动化测试,以及Appium的一些拓展和延伸。配合之前的AppCrawler自动遍历工具,可以让大家的测试效率大幅提升。
IT大咖说
2018/09/12
2.7K0
Appium移动端自动化测试--基础预热
近日开始了移动端自动化测试的学习之路,决定在学习的过程中进行笔记,总结学习,印象或许会深刻一些。
软测小生
2019/12/12
1.4K0
Appium自动化测试框架综合实践
注册一个新的账号(账户和密码可以随机生成),完善院校和专业信息 (如:院校:上海-同济大学 专业:经济学类-统计学-经济统计学)
清风穆云
2021/08/09
7340
Appium移动端自动化测试--控件定位方法
DOM:Document Object Model文档对象模型 DOM应用:最早应用于HTML和Javascript的交互。界面结构话描述,常见的格式为HTML、xml,核心元素为节点和属性。 Xpath:xml路径语言,用于XML中的节点定位。
软测小生
2019/12/26
1.4K0
Appium移动端自动化测试--搭建测试环境
推荐直接安装Android Studio,然后使用Android Studio安装SDK。 启动SDK Manager,安装自己所需要的版本,下载安装即可。
软测小生
2019/12/12
1.4K0
Appium自动化测试框架探索与实践
在目前效率为王的互联网时代,移动应用自动化测试逐渐替代原始的手工功能测试,越来越成为测试界的时尚宠儿,小编在这里也为大家介绍下现有的客户端自动化测试框架:Appium、Airtest,并简单比较下两者的区别,同时重点介绍Appium自动化测试框架,大家跟随小编的脚步一起来探索客户端自动化测试框架吧~
用户5521279
2020/08/21
3.1K0
Appium自动化测试框架探索与实践
基于Appium的移动端UI自动化测试
移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能。UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作负担,提高工作效率,需要引入可持续集成的自动化测试方案。
测试开发社区
2020/05/26
2.9K0
软件测试|Appium的二次开发与Appium的运行原理
Appium 是一个用于移动端自动化测试的工具,支持 Android 和 iOS 平台,并且具有很好的平台兼容性。用户可以使用 Appium 进行自动化测试,提高测试效率和质量。在 Appium 的基础上进行二次开发,可以针对具体需求进行定制化开发,深入了解 Appium 的运行原理,则可以更好地优化自动化测试脚本,提高测试效率和可靠性。
霍格沃兹测试开发Muller老师
2023/06/02
6630
Appium移动端自动化测试--测试用例改造
可见下面的两个框架的脚本,略有不同,setup和setUp,teardown和tearDown。
软测小生
2020/02/13
1K0
Appium移动端自动化测试--测试用例改造
Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)
今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现。由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录。
北京-宏哥
2019/11/20
1.4K0
Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
 前边一直在分享testng的相关文章,看了点赞量和阅读数不是很高,宏哥猜测估计是大家确实是用不到或者不喜欢吧!不过宏哥经过一段时间的准备,appium的自动化测试框架完善的差不多了,那么接下来宏哥继续给小伙伴和童鞋们分享有关Appium自动化测试框架综合实践。想必小伙伴们有点等不及了吧!
北京-宏哥
2019/11/14
1.9K0
自动化工具之Appium框架之数据驱动
自动化是为业务测试服务,如果数据与业务放在一起看起来不是很规整与整洁,是否可以把数据与业务分离,是完全可以的,这也是市场常见的数据驱动框架,今天咱们就聊一聊怎么搭建自己数据驱动框架;
高楼Zee
2019/11/27
7330
自动化工具之Appium框架之数据驱动
Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕
  今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现。到今天为止,大功即将告成;框架所需要的代码实现都基本完成。
北京-宏哥
2019/11/21
1.3K0
Appium移动测试入门指南(一)- Appium概述
Appium 是一个开源测试自动化框架,用于原生、 混合和移动 Web 应用程序。它使用 WebDriver 协议驱动 iOS、Android 和 Windows 应用程序。
泰坦HW
2021/10/20
5.8K0
Appium移动测试入门指南(一)- Appium概述
Appium移动端自动化测试--元素操作与触摸动作
1.click()点击操作 也可以用tab实现点击操作 driver.find_element_by_id("com.wuba.zhuanzhuan:id/ae8").click()
软测小生
2019/12/26
1.4K0
Appium自动化(六)Appium启动app
在之前文章有讲过环境搭建,appium 实现简易IOS app自动化测试demo和appium原理分析,那么我们这次去启动一个app,通过appium与设备app建立链接。
雷子
2021/03/15
2.4K0
移动测试Appium工作原理
移动测试Appium工作原理 介绍 Appium是一个开源工具,用于自动化iOS、Android设备和Windows桌面平台上的原生、移动Web和混合应用。 "原生应用"指那些用iOS、Android或者WindowsSDK编写的应用。 "移动web应用"是用移动端浏览器访问的应用(Appium支持iOS上的Safari、Chrome和Android上的内置浏览器)。 "混合应用"带有一个"webview"的包装器——用来和Web内容交互的原生控件。 重要的是:Appium是跨平台的:它允许你用同样的API
苦叶子
2018/04/09
3.1K0
移动测试Appium工作原理
集成AI的移动自动化测试
前一阵子小编看到了爱奇艺Android架构师的一篇文章《爱奇艺基于AI的移动自动化框架的设计与实践》。介绍了了一种基于AI算法的自动化测试框架Aion,该框架融合了传统图像处理和深度学习方案。虽然目前该框架还未开源,但是给了小编很多启发。
用户5521279
2020/02/24
1.4K0
集成AI的移动自动化测试

相似问题

appium+python app 自动化测试?

0568

python+appium自动化测试公众号,切换webview后,不是我需要的html?

2570

移动端是否有消息记录功能?

1105

移动直播有打赏功能吗?

2542

移动直播, 有实时通信功能, 需要集成移动直播SDK和IMSDK吗?

0262
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档