Appium是 c/s模式的
appium是基于 webdriver 协议添加对移动设备自化api扩展而成的
webdriver 是基于 http协议的,第一连接会建立个 session 会话,并通过 post发送一个 json 告知服务端相关测试信息

IOS 原理图( 来源于:百度 )

appium ios封装了 封装了 封装了 apple 的 Instruments I框架,主要用了 框架,主要用了 Instrument里的 UIAutomation(Apple  的自动化测试框架),然后在设备中注 自动化测试框架),然后在设备中注 入  bootstrap.js 进 行监 听。
Client ent是我们编写的 webdriver脚本 ,中间是 appium启动 server (默认监听 4723 端口 ),
appium server  调用 instruments.js启动 ⼀一个 socket server ,同时分出一个 ,子进程运⾏instruments.app 将 bootstrap.js(一个 UIAutomation 脚本)注 ⼊入到 devices⽤于和外界进行交 。
最后 Bootstrap.js将执行的结果返回给 将执行的结果返回给 appium server  ,appium server再将结果返 回给 appium client 。

Android原理图(  来源于:百度)

4.2 以后是基于 uiautomator框架实现查找注入事件的, 框架实现查找注入事件的,框架实现查找注入事件的, 4.2 以前则是 instrumentation i框架的,并封装成一个叫 框架的, Selendroid 这玩意提供服务
Client ent是我们编写的 webdriver 脚本。中间是 appium启动 server  (默认监听  4723 端口 ),
appium server  会把请求转发给中间件 会把请求转发给中间件 Bootstrap.jar  ,它是用java写的,安装在 手机上 .Bootstrap监听 4723端口并接收appium  的命令,最终通过调 的命令过调 用 UiAutomator U 的命令来实现。
Bootstrap将执行的结果返回给 将执行的结果返回给 appium server 。
Appiumserver再将结果返回给 client端。

转载于:https://www.cnblogs.com/leiziv5/p/6427609.html

appium 原理解析相关推荐

  1. Python自动化-APPium原理解析与实际测试案例分享

    目录结构 一.Appium概述 Appium架构原理 运行原理 1)Appium服务器 2)Bootstrap.jar 3)Appium客户端 二.Appium组件 三.Appium环境搭建 Node ...

  2. appium底层实现原理解析

    appium原理 转自  木木L玲 一.什么是Appium Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持IOS.Android及FirefoxOS平台 ...

  3. 干货|app自动化测试之Appium 原理 与 JsonWP 协议分析

    想要使用 Appium 进行测试,那么就一定要先了解Appium的原理.Appium 不仅能够实现移动端的 JSONWP,并且延伸到了 Selenium 的 JSONWP,它能够控制不同移动设备的行为 ...

  4. Appium原理-20190831

    Appium介绍 Appium是由nodejs的express框架写的Http Server.Appium不是它自己创建一套新的测试框架,是将现有的优秀的框架进行了集成,以Selenium WebDr ...

  5. Spark Shuffle原理解析

    Spark Shuffle原理解析 一:到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节 ...

  6. 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

    2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六)  中, 介绍了 ...

  7. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  8. 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  9. CSS实现元素居中原理解析

    原文:CSS实现元素居中原理解析 在 CSS 中要设置元素水平垂直居中是一个非常常见的需求了.但就是这样一个从理论上来看似乎实现起来极其简单的,在实践中,它往往难住了很多人. 让元素水平居中相对比较简 ...

最新文章

  1. PHP遍历用blade标签表示,php-Laravel Blade {{$variable或’Default Text’}}无法使用网址
  2. redis(3)redis的基础入门(java)
  3. RHEL和Centos系统的区别?
  4. 想聊天?自己搭建个聊天机器人吧!
  5. php删除数据库中数据表的数据,php中删除数据库数据例子
  6. 解析邮件归档技术 保护企业邮件安全(三)
  7. VS集成Qt开发入门(简易时间显示)
  8. css两张图片怎么合在一起_web前端入门到实战:纯CSS实现两个球相交的粘粘效果...
  9. 关于我对于写博客写文章的理解
  10. 微视内测新功能:可发30秒视频到朋友圈
  11. php是属于什么软件,.php是什么软件?
  12. 计算机ping使用的端口,Win7系统中如何Ping端口?Ping端口命令的用法
  13. 这4款浏览器必装插件,让浏览器使用体验上升100%
  14. web结课作业的源码 HTML5+CSS大作业——个人博客-功能齐全(48页) html大学生网站开发实践作业
  15. 2021江苏高考成绩查询:声讯台,2021年江苏高考成绩几点钟可以查询,附具体查询时间安排...
  16. 解决报错:Source does not fit in dest 异常
  17. java数字货币转化_将数字货币金额转换为大写格式
  18. pdf如何做到批量格式转换?
  19. xmind打不开的问题
  20. 3天(从策划到上线传播)获客10w+| 小程序拉新活动范例

热门文章

  1. 最简单的基于FFmpeg的内存读写的例子:内存播放器
  2. mojolicious mysql_CentOS 下玩 Mojolicious 第一课
  3. jquery 把元素移动到另外一个元素里面
  4. Error starting ApplicationContext. To display the auto-configuration report re-run your application
  5. java读取配置文件和获得项目根目录
  6. idea 使用神坑之索引篇(自定义不创建索引文件夹)
  7. 关掉云存储后噪声 海康摄像头_万物互联 海量数据如何实现更好的存储和应用...
  8. NYOJ77 - 开灯问题
  9. 调取方法_最新微信调取转账证据新方法公布
  10. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍