在Android端,appium基于WebDriver,并利?用Bootstrap.js,最后通过调?用UiAutomator的命
令,实现App的自动化测试。UiAutomator测试框架是Android SDK?自带的App UI自动化测
试Java库。
另外由于UiAutomator对H5的?支持有限,appium引入了chromedriver来实现基于H5的自动
化。
2.主要原理:
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)的测试。
二. Appium 在IOS端的工作模式
1.架构图:
简易图:
在IOS端,appium同样使?用WebDriver的?一套协议。与Android端测试框架不同的是,
appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple
的?自动化测试框架),然后在设备中注?入bootstrap.js进?行监听。
2.主要原理
1.左边的WebDriver script是selenium测试脚本
2.中间是起的Appium的服务,Appium在这边起了?一个Server(4723端口),跟selenium
Webdriver测试框架类似,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来实现
http://appium.io/slate/en/v1.0.0/?java#ios-support
https://github.com/google/ios-webkit-debug-proxy
三. 自动化测试脚本例?子
1)安装配置appium运行环境
参考:
http://appium.io/slate/en/master/?java#running-appium-on-mac-os-x
http://appium.io/slate/en/master/?java#running-appium-on-windows
2)Android & IOS例子
http://blog.sina.com.cn/s/blog_60c53af50102v3sc.html