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的工作原理相关推荐

  1. 【Appium】Appium工作原理

    参考:http://www.cnblogs.com/zhjsll/p/5698878.html 原作者写的很好,所以直接放在这里. 一.什么是Appium Appium是一个开源.跨平台的测试框架,可 ...

  2. Appium学习日记(一)——Appium工作原理及其主要组件

    Appium工作原理及其主要组件 Appium的工作原理(how Appium works)   Appium的核心是一个服务器,它侦听符合API规范WebDriver的传入HTTP请求.对于那些过去 ...

  3. appium底层实现原理解析

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

  4. 了解appium自动化的工作原理(uiautomator)

    一.Appium加载的过程图解 Appium的原理 WebDriver script:我们的测试脚本(java or python) Appium: 会首先开启一个监听4723端口的server,接收 ...

  5. Appium - 自动化测试框架 - 工作原理、环境搭建

    前言 Appium是移动端的UI自动化测试框架,基于C/S模式,特点是支持跨平台(安卓,ios),支持多语言(对java,python都有支持的API).本文系博主对于该框架的部分学习记录. 一.什么 ...

  6. appium自动化的工作原理

    appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client.Appium Server是Appium的服务端,作为一 ...

  7. Appium 介绍以及工作原理

    目录 1.什么是Appium: 2.Appium各类组件: 3.Appium理念: 4.三张图了解 Appium工作原理: 1.什么是Appium: appium是一个移动端的自动化测试框架,可用于测 ...

  8. Appium工作原理简介

    Appium工作原理 一.Appium简介 Appium是一个开源.跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台.Appium驱动苹 ...

  9. 分布式系统熔断机制的工作原理

    目录 前言 1. 问题产生 2. 形成过程 2. 服务熔断和服务降级区别 2.1 服务降级:系统有限的资源的合理协调 2.2 服务熔断:应对雪崩效应的链路自我保护机制.可看作降级的特殊情况 2.3 服 ...

  10. IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/中后台/体验管理等)之详细攻略

    IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/Node/IDE/中后台/体验管理/ ...

最新文章

  1. 一个狠招|如何高效学习3D视觉
  2. lj245a引脚功能图_如何快速读懂时序图?
  3. java抽象类 抽象方法_Java基础 -- Java 抽象类 抽象方法
  4. Jenkins 插件管理与系统设置
  5. iOS数据存储——沙盒。
  6. SAP CRM Service Order(服务订单)的状态字段设计原理介绍
  7. 一步步编写操作系统 50 加载内核3
  8. 吴恩达深度学习1.3笔记_Neural Networks and Deep Learning_浅层神经网络
  9. Linux 2 unit1 虚拟机,自动安装
  10. VMware 虚拟机
  11. python 分词器比较
  12. 《圣经》放射光明,金钱散发温暖
  13. echarts 柱形图数据位置显示
  14. 直播用的计算机配置,直播吃鸡需要什么配置才行?
  15. iOS开发之Tom猫
  16. C语言 memcpy和memcpy_s
  17. 开发工程师的人生是这样的
  18. 青云 KubeSphere 与 OpenCloudOS 完成技术兼容互认证
  19. python中获得字符串s长度的方法是什么_获得字符串s长度的方法是什么?【 】(8.0分)_学小易找答案...
  20. H265编码 SPS分析

热门文章

  1. 移动App测试中Android测试和IOS测试有啥区别
  2. ios查看帧率的软件_【iOS测试】【随笔】帧率FPS评测
  3. 集成电路可测性设计DFT技术入门概论--MBIST技术报告
  4. 5个最佳的Android测试框架(带示例)
  5. MATLAB数字图像处理实验题目要求
  6. esp8266教程:开发方式和SDK选择
  7. QPSK、16QAM、64QAM
  8. 原生ajax调用,JavaScript进阶之原生AJAX接口请求的方式
  9. 完美数c语言程序_C中的完美数
  10. 在linux下使用IDE运行C语言