Appium的工作原理
Appium
- 1、简介
- 2、工作原理
- 2.1 Android
- 2.2 ios
- 3、查看启动日志分析
1、简介
appium是c/s模式的,基于webdriver协议添加对移动设备自动化api扩展而成的,所以具有和webdriver一样的特性,比如多语言支持,webdriver是基于http协议的,第一连接会建立一个session会话,并通过post发送一个json告知服务端相关测试信息.对于Android来说,4.2以后是基于uiautomator框架实现查找注入事件的,4.2以前则是instrumentation框架的,并封装成,个叫Selendroid这玩意提供服务,客户端只需要发送http请求实现通讯,意味着客户端就是多语言支持。appium服务端是node.js写的,所以你安装的时候无论哪个平台都是先装node。
2、工作原理
2.1 Android
在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。
appium 在android端工作流
client端也就是我们 test script是我们的webdriver测试脚本。
中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。
最后Bootstrap将执行的结果返回给appium server。
appium server再将结果返回给 appium client。
2.2 ios
在IOS端,appium同样使⽤WebDriver的一套协议。
与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的自动化测试框架),然后在设备中注入bootstrap.js进行监听。
appium 在ios端工作流
client端 依然是 test script是我们的webdriver测试脚本。
中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。
appium server调用instruments.js 启动一个socket server,同时分出一个子进程运instruments.app,将bootstrap.js(一个UIAutomation脚本)注入到device于和外界进行交互
最后Bootstrap.js将执行的结果返回给appium server
appium server再将结果返回给 appium client。
所以我们可以看到android与ios区别在于appium 将请求转发到bootstrap.js或者bootstrap.jar.然后由bootstrap 驱动UIAutomation和UiAutomator去devices上完成具体的动作。
3、查看启动日志分析
Appium运行原理
appium可以理解为一个c/s架构软件,在pc端安装的appium server端,通过appium client发送操作命令到app端
;在启动时,appium会将bootstrap推送到app上,通过并在app端建立端口为4724的socket端口,接受来自Appium的
json命令,通过UIautomaticer操控app上的控件。
Appium的工作原理相关推荐
- 【Appium】Appium工作原理
参考:http://www.cnblogs.com/zhjsll/p/5698878.html 原作者写的很好,所以直接放在这里. 一.什么是Appium Appium是一个开源.跨平台的测试框架,可 ...
- Appium学习日记(一)——Appium工作原理及其主要组件
Appium工作原理及其主要组件 Appium的工作原理(how Appium works) Appium的核心是一个服务器,它侦听符合API规范WebDriver的传入HTTP请求.对于那些过去 ...
- appium底层实现原理解析
appium原理 转自 木木L玲 一.什么是Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台 ...
- 了解appium自动化的工作原理(uiautomator)
一.Appium加载的过程图解 Appium的原理 WebDriver script:我们的测试脚本(java or python) Appium: 会首先开启一个监听4723端口的server,接收 ...
- Appium - 自动化测试框架 - 工作原理、环境搭建
前言 Appium是移动端的UI自动化测试框架,基于C/S模式,特点是支持跨平台(安卓,ios),支持多语言(对java,python都有支持的API).本文系博主对于该框架的部分学习记录. 一.什么 ...
- appium自动化的工作原理
appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client.Appium Server是Appium的服务端,作为一 ...
- Appium 介绍以及工作原理
目录 1.什么是Appium: 2.Appium各类组件: 3.Appium理念: 4.三张图了解 Appium工作原理: 1.什么是Appium: appium是一个移动端的自动化测试框架,可用于测 ...
- Appium工作原理简介
Appium工作原理 一.Appium简介 Appium是一个开源.跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台.Appium驱动苹 ...
- 分布式系统熔断机制的工作原理
目录 前言 1. 问题产生 2. 形成过程 2. 服务熔断和服务降级区别 2.1 服务降级:系统有限的资源的合理协调 2.2 服务熔断:应对雪崩效应的链路自我保护机制.可看作降级的特殊情况 2.3 服 ...
- IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/中后台/体验管理等)之详细攻略
IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/Node/IDE/中后台/体验管理/ ...
最新文章
- 一个狠招|如何高效学习3D视觉
- lj245a引脚功能图_如何快速读懂时序图?
- java抽象类 抽象方法_Java基础 -- Java 抽象类 抽象方法
- Jenkins 插件管理与系统设置
- iOS数据存储——沙盒。
- SAP CRM Service Order(服务订单)的状态字段设计原理介绍
- 一步步编写操作系统 50 加载内核3
- 吴恩达深度学习1.3笔记_Neural Networks and Deep Learning_浅层神经网络
- Linux 2 unit1 虚拟机,自动安装
- VMware 虚拟机
- python 分词器比较
- 《圣经》放射光明,金钱散发温暖
- echarts 柱形图数据位置显示
- 直播用的计算机配置,直播吃鸡需要什么配置才行?
- iOS开发之Tom猫
- C语言 memcpy和memcpy_s
- 开发工程师的人生是这样的
- 青云 KubeSphere 与 OpenCloudOS 完成技术兼容互认证
- python中获得字符串s长度的方法是什么_获得字符串s长度的方法是什么?【 】(8.0分)_学小易找答案...
- H265编码 SPS分析