万物有源_Appium框架原理浅析

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

1、安卓平台图解

Appium原理

2、原理

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

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

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

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

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

(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会汇总操做结果。ui

相关文章
相关标签/搜索