Appnium的工作原理

一.Appium框架组成 

Appium框架组成是自动化脚本即client端(通过Java编写的代码,也可以通过其他语言编写),Appium指令服务器,sdk通信环境(Android模拟器)或移动端设备(这里是测试Windows平台的设备,)。

如何简易了解Appium的工作原理

 

Client端:

一般来说就是运行代码的机器,即我们是用Java语言编写的代码,也可以用其他Selenium支持Python,ruby,C#等语言来编写,Appium提供的Appium-client API是Appium通过扩展Selenium的Webdriver协议而来的,我们编写代码的时只要实现Webdriver标准协议即可。

Appium Server:

Appium Server功能是监听接口,接收client端发送的command,然后将command转为移动端能够识别的command,然后发送给移动设备进行操作,再等待移动设备返回来的操作结果,将操作结果发送给client端。 Appium server是可以放在client端,也可以放在云端。 Appium server 默认的端口号是4723,用于Appium server监听client端的发送来的请求。appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上。Bootstrap监听端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。最后Bootstrap将执行的结果返回给appium server,appium server再将结果返回给 appium client。

Android设备

  Android端,Appium基于Webdriver协议,利用Bootstrap.jar,最后通过调用UIautomatior命令,实现APP的自动化测试(Android4.2以前的版本是用Instrumentation框架,通过绑定另外一个独立的selendroid项目来实现),Android4.2以后的版本是用UIautomator)。UIAutomator测试框架是Android SDK自带的APP UI自动化测试Java库,另外UIAutomator对H5支持有限,Appium引入了Chromedriver以及Safaridriver来实现H5的自动化。

  二.Appium通信原理:

任何应用程序在运行时候都是要遵循一套协议或者规则,而我们提到的appium则是基于WebDriver协议,利用Bootstrap.jar的java文件集成包,最后通过调用输入UiAutomator的命令,从而实现App的自动化测试。

脚本请求 ——> appium server ——> 解析参数给PC端——> 发送给设备中的bootstrap.jar ——> Bootstrap.jar把命令发给uiautomator------>实现操作手机设备

如下图,Android设备的appium自动化原理

如何简易了解Appium的工作原理

  1. 需要介绍的是,UiAutomator除了是条命令之外,其实也是一种测试框架。

    它是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

     

    如何简易了解Appium的工作原理

  2.  

    接下来详细介绍下appium 在android端的工作流程:

    client(客户端)端通常是指连接终端的机器或者设备,而在这里的客户端则是指的webdriver测试脚本。中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。

     

    如何简易了解Appium的工作原理

  3.  

    appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。最后Bootstrap将执行的结果返回给appium server,appium server再将结果返回给 appium client。

    如何简易了解Appium的工作原理

  4.  

    在而IOS端,appium同样使用WebDriver的一套协议,与Android端不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的自动化测试框架),然后在设备中注入bootstrap.js进行监听。

    如何简易了解Appium的工作原理

  5.  

    appium 在ios端的工作流流程与安卓的大体相似,区别在于:

    appium server调用instruments.js 启动一个socket server,同时分出一个子进程运行instruments.app,将bootstrap.js(一个UIAutomation脚本)注入到device和外界进行交互。

    如何简易了解Appium的工作原理

  6.  

    最后Bootstrap.js将执行的结果返回给appium server,appium server再将结果返回给 appium client。所以我们可以看到android与ios区别在于appium 将请求转发到bootstrap.js或者bootstrap.jar.然后由bootstrap 驱动UIAutomation和UiAutomator去devices上完成具体的动作。

    如何简易了解Appium的工作原理


 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值