appium在android端的工作模式:
<u>appium的核心其实是一个暴露了一系列REST API的server。</u>
重点理解:
这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。
(在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。)</br>
架构图
架构图.png简易图:
简易图.png在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)的测试。
appium局限性
如果你在windows上安装appium,你没法使用预编译用于OS X的.app文件,你也将不能测试iOS apps,因为appium依赖OS X专用的库来支持iOS测试。这意味着你只能通过在mac上来运行iOS的app测试。这点限制挺大。
也就是说,在Windows下我们只能测试android,没法测试iOS系统。
appium运行组件
- Nodejs
- Java JDK
- Android SDK
- Eclipse
- Appium
接下来会更新,具体的环境搭建过程。
网友评论