Appium的工作原理

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上的控件。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值