自动化工具之Selendroid&Robotium
1、Selendroid的原理是什么?Selendroid是基于Instrumentation封装后的一个自动化测试框架,它的所有自动化指令采用的是通过Http协议传输过来的。图解:从右侧开始看,首先由虚线框起来内容,下面有一个“Android Device”标识意思是虚线内部所有的东西都在Android Device的手机里,在Android手机里面从图的下部往上看,黄色背景部分写着“App u
1、Selendroid的原理是什么?
Selendroid是基于Instrumentation封装后的一个自动化测试框架,它的所有自动化指令采用的是通过Http协议传输过来的。

图解:从右侧开始看,首先由虚线框起来内容,下面有一个“Android Device”标识意思是虚线内部所有的东西都在Android Device的手机里,在Android手机里面从图的下部往上看,黄色背景部分写着“App under Test”就是被测试的应用程序,红色背景部分写着“Android Instrumentation Framework”说明被测试的程序被测到其实是使用Instrumentation测试框架,上层“Selendroid Server” Selendroid其实就是基于Instrumentation做的一次封装,封装之后这个服务叫做“Selendroid Server”,“Selendroid Server”在接收到各种自动化指令之后它会转换成Instrumentation对应的一些方法,然后再调用被测试App进行测试。“Selendroid Server”和外面的控制端是通过HTTP协议来进行控制。
接着看中间部分,红色背景部分标识的是“Android SDK”,上面部分绿色框里面底部写着“Selendroid-standalone”这个就是一个大的控制程序,里面有两部分内容“Selendroid Standalone Driver”和“Http Server”,所有的自动化指令都会由“Selendroid Standalone Driver”转发到手机里面的“Selendroid Server”,然后由“Selendroid Server”控制Instrumentation框架,Instrumentation框架进而去控制被测试的App,实现这样一个自动化测试过程。“Http Server”主要负责接受各种自动化脚本的指令,各种自动化脚本的指令是通过“JSON wire protocol” JSON的无线协议与“Http Server”进行通信传到“Selendroid Standalone Driver”。
最外层写自动化脚本的时候用到的是WebDriverClient,这个就是脚本实现过程中所依赖的类库。
Selendroid四大组件:
Selendroid Client:Webdriver + 移动特性的实现
Selendroid Server:一个Instrumentation APK
AndroidDriver-App:一个WebViewActivity,即浏览器
Selendroid-Standalone:大总管,负责准备环境
2、Robotium的原理是什么?
基于Instrumentation进行封装,实现的Android测试框架
封装了一个Solo类库,提供自动化测试API
由于是基于Instrumentation,测试时需要源码
更多推荐


所有评论(0)