首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >APP自动化测试系列之Appium介绍及运行原理

APP自动化测试系列之Appium介绍及运行原理

作者头像
可可的测试小栈
发布于 2020-09-29 03:05:13
发布于 2020-09-29 03:05:13
3.5K0
举报
文章被收录于专栏:全栈测试全栈测试

本文3055字,阅读约需7分钟

在上一篇APP自动化系列文章:APP自动化测试系列之adb连接真机和模拟器,主要介绍adb连接真机的两种方式及如何连接夜神模拟器。

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。

Appium介绍

1

Appium概念

Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS,Android和Windows应用程序。

2

Appium特点

  • Appium是开源的移动端自动化测试框架;
  • Appium可以测试原生的、混合的、以及移动端的web项目;
  • Appium可以测试IOS,Android应用;
  • Appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
  • Appium支持Ruby、PythonJava、JavaScript、Objective C、php等多种语言。

3

Appium理念

Appium 旨在满足移动端自动化需求的理念,概述为以下四个原则:

  1. 你不应该为了自动化而重新编译你的应用或以任何方式修改它。
  2. 你不应该被限制在特定的语言或框架上来编写运行测试。
  3. 移动端自动化框架不应该在自动化接口方面重造轮子。
  4. 移动端自动化框架应该开源,在精神、实践以及名义上都该如此。

4

Appium组件

  • Appium Server Appium是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现。
  • Appium Desktop Appium Server的图像界面,可设置启动or停止服务器、查看日志,可使用inspect查看应用程序的元素。
  • Appium GUI 是Appium Desktop的前身,也是把Appium Server封装成一个图像界面。该产品的Windows版本在2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的Appium版本,而是1.4.16版本。如果要使用最新的桌面版需要使用Appium Desktop。
  • Appium Client Appium Client作为客户端,会给服务端Appium Server端发送请求会话来执行自动化任务。类似使用浏览器访问网页,可使用不同的客户端浏览器(IE/Firefox/Chrome...)访问同一个网站,通过操作发送请求到服务器来获取数据。

Appium运行原理

Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:

  • Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具
  • Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
  • iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。

运行原理如下:

①客户端运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求,请求内容就是根据webdriver wire protocol协议规定的一条JSON格式的数据;

②当开启appium服务器的同时就开启了监听端口,Appium Server端接收到请求后,解析出JSON数据并发送到手机端;

③手机端上已经由BootStrap.jar(iOS为BootStrip.js)开启的socket服务器监听相应的端口,BootStrap.jar在appium每个session第一次访问手机端的时候会自动安装;

④手机端接收到对应的请求后,通过BootStrap.jar翻译成UIAutomator能执行的命令,然后通过UIAutomator处理并操作APP完成测试。

Appium中的几个重要概念

client其实就是发起 command 的一端,狭义的可以理解为python、java等编写的代码。

appium server: 专门用来监听并接收来自client端的请求,转发请求并控制移动设备执行测试,默认开启并监听4723接口.。

Sessionsession就是一个会话,在appium中,所有工作永远都是在session start后才可以进行的。而要启动一个 session 需要传入 Desired Capabilities 获取一个全局唯一的 session id,这个id指定了你的浏览器或者移动设备。

Desired Capabilities是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。

它告诉 appium server 这样一些事情:

  • 本次测试是启动浏览器还是启动移动设备?
  • 是启动 Andorid 还是启动 iOS ?
  • 启动 Android 时,App 的 package 是什么?
  • 启动 Android 时,App 的 Activity 是什么?

Desired Capabilitie后续文章会详细介绍。

Bootstrap:

首先,bootstrap是uiautomator的测试脚本,它的入口类bootstrap继承于UiautomatorTestCase,所以Uiautomator可以正常运行它,它也可以正常使用uiautomator的方法,这是就是appium的命令可以转换成uiautomator的关键;

其次,bootstrap是一个socket服务器,专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理;

最后,bootstrap处理的是从PC端传过来的命令。

appium的架构原理如图所示,由客户端和服务端组成,客户端与服务端通过JSON进行通信。

以上

That‘s all

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ITester软件测试小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
App自动化测试|Appium工作原理及Desired Capbilities配置
脚本请求——>4723端口appium server——>解析参数给PC端4724端口——>发送给设备4724端口——>通过设备4724端口发给bootstrap.jar——>Bootstrap.jar把命令发给uiautomator
霍格沃兹测试开发Muller老师
2023/01/13
2.7K0
Appium运行原理与机制
做测试开发的童鞋都知道,UI自动化你绕不开selenium, webdrvier, appium框架,那么这三者之间有什么关联,它们的原理是什么呢?
赵云龙龙
2019/07/11
2.7K0
Appium运行原理与机制
带你了解 Appium 测试工具
Appium 是一个开源的、跨平台的自动化测试工具,可用于 APP 的自动化测试。
程序媛淼淼
2022/07/01
1.4K0
带你了解 Appium 测试工具
安卓自动化测试工具appium的使用案例
上篇文章以一个简单的案例-抖音“喜欢”视频列表的抓包过程为例,简单介绍了使用mitmproxy结合python代码实现抓包的过程。更近一步,另一个简单案例-但是当“喜欢”列表很长,想要抓到所有视频的信息,则需要不断的上滑屏幕。因此本文结合这个案例常见,使用appium实现模拟滑动,结合上文的mitmproxy抓包,抓取某用户“喜欢”的全量视频信息。下文均以安卓端为例展开,介绍下appium实现自动化测试的过程。
singleli
2020/10/26
4.5K0
安卓自动化测试工具appium的使用案例
Appium:轻松玩转app+webview混合应用自动化测试
腾讯移动品质中心TMQ
2017/12/15
10K1
软件测试|Appium的二次开发与Appium的运行原理
Appium 是一个用于移动端自动化测试的工具,支持 Android 和 iOS 平台,并且具有很好的平台兼容性。用户可以使用 Appium 进行自动化测试,提高测试效率和质量。在 Appium 的基础上进行二次开发,可以针对具体需求进行定制化开发,深入了解 Appium 的运行原理,则可以更好地优化自动化测试脚本,提高测试效率和可靠性。
霍格沃兹测试开发Muller老师
2023/06/02
7170
Python+Appium运行简单的demo,你需要理解Appium运行原理!
通过 Http 通信,没有改变浏览器访问系统的属性,只要访问就可以了。 Appium 做自动化也是如此。
清菡
2020/09/20
2.7K0
软件测试|App自动化之Appium工作原理
并且是一个灵活的跨平台的测试自动化工具,可以在iOS、Android 或 Windows、Mac 设备上进行移动应用的自动化测试运行,并且能够使用相同的 API 编写多个平台的测试脚本;
霍格沃兹测试开发Muller老师
2023/01/06
1.7K0
App自动化测试方案
(1)测试用例覆盖率(覆盖率决定测试效率,选择合适用例,应约占功能用例集的20%~50%)
测试开发社区
2019/09/20
3.8K0
App自动化测试方案
微信小程序自动化方案之准备
Appium加载的过程图解 Appium加载过程 调用Android adb完成基本的系统操作 向Android上部署Bootstrap.jar Bootstrap.jar Forward Andr
用户5521279
2019/07/30
1.4K0
Appium移动自动化框架功能概括
(1)支持iOS、Android,可在多台机器上并行App 自动化,测试机型适配。
博文视点Broadview
2020/06/12
2.2K0
Appium移动自动化框架功能概括
appium原理分析
Appium是 c/s模式的 appium是基于 webdriver 协议添加对移动设备自化api扩展而成的 webdriver 是基于 http协议的,第一连接会建立个 session 会话,并通过 post发送一个 json 告知服务端相关测试信息
雷子
2021/03/10
1.5K0
appium原理分析
App自动化测试|Appium介绍
Appium是一个开源工具,用于自动化iOS手机、Android手机和Windows桌面平台上的原生、移动Web和混合应用。
霍格沃兹测试开发Muller老师
2023/01/13
1.4K0
基于Appium的移动端UI自动化测试
移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能。UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作负担,提高工作效率,需要引入可持续集成的自动化测试方案。
测试开发社区
2020/05/26
3.1K0
更新“Appium运行原理”讲解!
上篇文章中,讲解 Appium 运行原理、Web-Selenium 的运行原理的时候,图片放重复了,导致讲解不是很清晰。本篇文章更新一下此处的讲解,多有疏忽,请见谅!
清菡
2020/12/02
1.2K0
更新“Appium运行原理”讲解!
『App自动化测试之Appium基础篇』| 从定义、原理、环境搭建、安装问题排查等深入了解Appium
虫无涯
2023/12/06
13K6
Appium自动化测试框架
自动化测试需要通过代码的形式告诉手机测试那个应用程序的哪一个界面,所以需要通过某种方式定位到某个应用程序的某个页面。
大忽悠爱学习
2022/07/12
2.3K0
Appium自动化测试框架
自动化-Appium-简介
Appium是一个开源自动化测试工具,用于在IOS移动平台、Android移动平台和Windows桌面平台上自动化本地、移动Web和混合应用程序。本机应用程序是那些使用IOS、Android或Windows SDK编写的应用程序。移动网络应用是使用移动浏览器访问的web应用程序(Appium支持IOS上的Safari,支持Android上的Chrome或内置的“浏览器”应用程序)。混合应用程序在“WebDriver”上有一个包装器,支持与web内容交互的本机控件。
wangmcn
2022/07/22
2.1K0
自动化-Appium-简介
App自动化测试之Appium环境搭建
Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。支持多种语言。
小博测试成长之路
2021/03/08
2.1K0
App自动化测试之Appium环境搭建
APP自动化:Appium极简上手
Appium是一个开源的自动化测试框架,用于原生,混合和移动Web应用程序。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。关于它的运作流程,用图来介绍会更加生动形象一些:
happyJared
2018/12/06
2.1K0
相关推荐
App自动化测试|Appium工作原理及Desired Capbilities配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档