用户登录
用户注册

分享至

Appium原理精讲

  • 作者: 丿画忆
  • 来源: 51数据库
  • 2021-08-23

目前使用Appium新版本和旧版本的企业数目都很多,而两个版本的安装过程和api的使用又有较大的区别。但是无论表面上的东东如何变化,内部原理都是一样的。在这里我给大家介绍一下appium的核心,增进大家对它的理解,相信这会对大家后期的使用有很大的帮助。

Appium概念

Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium

驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同时绑定了Selendroid 用于老的 Android 平台测试(SDK < 16)。

官网:http://appium.io/

Github:https://github.com/appium/appium

特性

1. 跨平台, native/ hybrid/ webview(H5)

2. 跨设备, android/iOS

3. 跨app,可以在多个app之间交互

4. 不依赖APP开源代码

5. 支持Selenium WebDriver / Selenium Grid

6. 跨语言, java/python/ruby

7. Open Source

?


框架介绍

Appium是由nodejs的express框架写的HttpServer。Appium不是它??创建?套新的测试框架,是将现有的优秀的框架进行了集成,以Selenium

WebDriver的协议(JsonWireProtocol/Restful web service)统?起来.使得这个框架满?多??的需求。Appium启动自动化测试后,在被测设备上启动?个server,监听来? Appium server的指令。不同的平台(如IOS,Android)采?不同的运?和交换?式。Appium将某个桩程序“侵入”平台,用于接受指令,来完成测试脚本的运行。在Android端,appium基于WebDriver,并利用Bootstrap.js,最后通过调?用UiAutomator的命令,实现App的自动化测试。另外由于UiAutomator对H5的支持有限,appium引入了chromedriver来实现基于H5的自动化。

原理图(Android)

分析:

1.左边的Code(WebDriver script)是我们的appium测试脚本。

2.中间是开起的Appium的服务(不同的系统需要安装与之对应的Appium server,这也就是appium可以同时支持android、ios以及windows应用进行自动化测试的原因。在这里以android为例进行说明)Appium在这边起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium支持标准的WebDriver JSONWireProtocol。在这里提供了一套web服务,Appium Server接收webdriver标准请求,解析请求内容,调?用对应的框架响应操作。如:脚本发送一个点击按钮的请求给appium server。

3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上。Bootstrap接收 appium 的命令(4724端口),最终通过调?用UiAutomator的命令来实现。

4.最后执? 的结果由Bootstrap返回给appium server。

5.另外,appium还用到了chromedriver来支持基于H5(webview)的测试。

软件
前端设计
程序设计
Java相关