Appium Grid工作原理

来源:互联网 发布:安卓看电视软件 编辑:程序博客网 时间:2024/06/08 20:11

Appium Grid工作原理

1、Appium Android

在Android端,appium基于WebDriver,并利用Bootstrap.js,最后通过调用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。
另外由于UiAutomator对H5的支持有限,appium引入了chromedriver来实现基于H5的自动化。
主要原理:
1.左边的WebDriver script是我们的selenium测试脚本
2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium支持标准的WebDriver JSONWireProtocol 。在这里提供了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调用对应的框架响应操作。
如:脚本发送一个点击按钮的请求给appium server
3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap 接收appium 的命令(4724端口),最终通过调用UiAutomator的命令来实现。
4.最后执行的结果由Bootstrap返回给appium server
5.另外,appium还用到了chromedriver来支持基于H5(webview)的测试。

2、Appium IOS
在IOS端,appium同样使用WebDriver的一套协议。与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的自动化测试框架),然后在设备中注入bootstrap.js进行监听。
主要原理
1.左边的WebDriver script是selenium测试脚本。
2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟seleniumWebdriver测试框架类似,Appium支持标准的WebDriver JSONWireProtocol 。在这里提供了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调用对应的框架响应操作。
如:脚本发送一个点击按钮的请求给appium server
3. appium server调用instruments.js 启动一个socket server,同时分出一个子进程运行instruments.app,将bootstrap.js(一个UIAutomation脚本)注入到device用于和外界进行交互。
4.对于H5的操作,运用了 iOS webkit debug proxy来实现
3、Appium Grid 框架
采用selenium grid框架形式。
在一个server上搭建一台Selenium Hub,多台Appium Server连接到Selenium Hub,测试真机(或者模拟器)和Appium Server连接。
测试脚本通过WebDriver JSONWireProtocol发送到Selenium Hub上,然后由Selenium Hub自动分发到对应的空闲Appium Server上进行执行。

0 0
原创粉丝点击