appium工作原理

        前段时间在做appium自动化的工作,也进行了一些实践,现在实践告一段落,是时候了解一下工作原理了,好为以后的进阶做铺垫。众所周知,appium即可以用作android也可以用于iOS做自动化测试,这篇文章先总结一下安卓,下一篇来总结iOS,然后再深入总结每个环节,由浅入深......

Appium工作原理- Android:

整体流程图

1、 Appium Client:

在这client其实就是发起command的设备,一般就是执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。

2、 Client与Server交互:

webdriver是基于http协议的,第一连接会建立一个session会话,并通过post发送一个json告知server相关测试信息。server接收web driver client标准rest请求。

(1)  session会话:

session就是一个会话,在webdriver/appium,你的所有工作永远都是在session start后才可以进行的。通过POST /session这个URL,然后传入Desired Capabilities就可以开启session了。

开启session后,会返回一个全局唯一的session id,以后几乎所有的请求都必须带上这个session id,因为这个seesion id代表了你所打开的移动设备。

(2)  Desired Capabilities:

webdriver标准协议,以json格式发送测试设备信息给server端,而这些信息被携带在Desired Capabilities中,这个东西实质上是一个key-value形式的对象:

Desired Capabilities最重要的作用是告诉server本次测试的上下文。这次是要进行浏览器测试还是移动端测试?如果是移动端测试的话是android还是ios?如果android的话我们要测试哪个app?server的这些疑问Desired Capabilities都必须给予解答,否则server不买账。

针对我们现在所说的安卓,它带来的影响就是无法完成app的启动。

3、Appium Server:

Appium server就是在命令行用appium命令打开的东西,默认监听4723端口。Appium server可以把请求接收并转义转发给中间件Bootstrap.jar(它是用java写的,安装在手机上)。

Bootstrap 接收appium的命令最终通过调用UiAutomator的命令来实现对手机的操作,最后执行的结果以Json Wire Protocol,由Bootstrap返回给appium server,再返回给Client端,Client会汇总操作结果。

3、 Bootstrap.jar

 Bootstrap可以理解为它是一个uiautomator的测试脚本,它的入口类Bootstrap继承于UiAutomatorTestCase,所以UiAututomator可以正常运行它,它也可以正常的使用uiautomator的方法,这个就是appium的命令可以转换成uiautomator的命令的关键。

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

最后,它处理的是appium从pc端过来的命令,是一系列的请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • appium由appium客户端、appium服务器和bootstrap.jar组成的。appium客户端就是我...
    vvvillian阅读 3,335评论 0 0
  • 前言 要想深入地掌握任何一门测试工具,对工具本身的架构、原理、使用的协议及相关知识点都必须要有相关的了解和认识,才...
    0xAI阅读 10,241评论 3 55
  • 1.架构原理 Appium架构由客户端(Appium client)和服务器(Appium server)两部分组...
    冬季恋歌1218阅读 5,478评论 0 1
  • Appium是一个开源、跨平台的框架,它适用于Native应用、移动应用、Hybird(混合)应用。Native应...
    乘风破浪的姐姐阅读 5,552评论 0 0
  • 1. Appium框架概况 Appium是一个开源的、跨平台的自动化测试框架,该框架适用于Native Appli...
    给你一颗小瓜子阅读 9,737评论 3 8

友情链接更多精彩内容