万物有源_Appium框架原理浅析

2019/03/17 12:50
阅读数 622

其实我觉得Appium的Log已经格外人性化了,直接看debugLog,就可以了解流程和原理了。

一、安卓平台图解

Appium原理

二、原理

Appium是由Nodejs编写的,集成了现有优秀框架,以Selenium WebDriver的协议统一起来,遵循RESTful设计风格web服务器,它接受客户端的连接,接收客户端的命令,在手机设备上执行命令,然后通过HTTP的响应收集命令执行的结果。

(1)最上面的Client端可以是多种语言编写,它类似于selenium webdriver,封装了selenium的API,并添加了部分的新的API,我们可以依据这些API编辑自动化脚本。

(2)Json Wire Protocol是一种协议,遵循REST风格,以JSON方法进行传输,是一系列的键值对,遵循W3C WebDriver Spec设计风格。

(3)中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),在这里提供了一套web服务,Appium Server接收web driver标准请求,解析请求内容,调⽤用对应的uiautomator响应操作。

(4)Appium server可以把请求接收并转义转发给中间件Bootstrap.jar,它是用java写的,安装在手机上。Bootstrap 接收appium 的命令(4724端口),最终通过调⽤用UiAutomator的命令来实现对手机的操作。

(5)Bootstrap可以理解为它是一个uiautomator的测试脚本,它的入口类Bootstrap继承于UiAutomatorTestCase,所以UiAututomator可以正常运行它,它也可以正常的使用uiautomator的方法,这个就是appium的命令可以转换成uiautomator的命令的关键;其次,它是一个socket服务器,它专门监听4724端口过来的appium的连接和命令数据,并把appium的命令转换成uiautomator的命令来让uiautomator进行处理;最后,它处理的是appium从pc端过来的命令,是一系列的请求。

(6)最后执⾏行的结果以Json Wire Protocol,由Bootstrap返回给appium server,再返回给Client端,Client会汇总操作结果。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部