在前面已经简单的介绍了 calabash-ios 的原理,这里将继续分析 calabash-Android 端的原理

calabash-ios 原理分析

calabash-android 架构其实与 IOS 是相同的,
1、内部使用核心为 cucumber 的 calabash 的脚本在运行测试的时候会在虚拟机/真机上预装一个 web 服务器,这个 web 服务器就是解释 calabash 的脚本,

2、因为 calabash-Android 是基于 robotium 框架的,所以在机器上预装的 web-server 会将下发下来的 calabash 脚本解释为 robotium 的脚本,然后向测试 app 发送 robotium 的脚本,

3、因为 robotium 框架就是封装的 google 测试框架 instumentation,所以 app 拿到 robotium 脚本后,将其解释为 instumentation 命令向被测试的 app 发送这些命令,被测试的 app 执行这些命令,然后将结果返回。

calabash-Android 整个框架采用 C/S 的运行模式,系统架构如下图所示:

框架图解释如下:

1、Runner 负责接受用户指令,并对其进行数据校验、指令转换等操作,之后将其交由客户端处理(这里的客户端是指运行在 pc 上的用户自己编写的代码),

2、instrumentation test server 就是预装在设备上的 web-server,客户端在接收到指令之后,将指令发送给它,请求其执行对应操作,

3、web-server 在接收到指令之后,解释该命令并与 app 进行交互,

4、所有执行结果最终会被收集到 Results 中。


↙↙↙阅读原文可查看相关链接,并与作者交流