我接触了当前市场上大多数的android端的自动化测试架构,也研究了一些偏门左道的一些测试工具,而当我见到calabash这套框架时,内心还是小小的开心了一下。

  优势

  先说一下calabash的优点,这样大家可能更有兴趣看下去:

  1.calabash是BDD驱动开发,编写自动化测试脚本比Robotium提高

  2.calabash是脚本与TC分离设计,在业务变化的情况下,只要功能存在基本只需要修改TC,在业务不变,功能变化的情况下,基本只需要修改脚本

  3.calabash既支持android也支持ios,真正实现了套脚本跨平台设备运行,小试了一把很酷

  4.calabash是支持扩展的,而且非常容易扩,当前也支持webview的脚本编写

  运行原理

  calabash-android架构其实与IOS是相同的,不过本篇只讲android,编写calabash架构的脚本,其实内部使用的是cucumber(cucumber是一种BDD测试框架,有兴趣的可以看看)这种核心为cucumber的calabash的脚本在运行测试的时候会在虚拟机/真机上预装一个web服务器,这个web服务器是解释calabash的脚本,将其解释为robotium的脚本,然后这个web服务器会想测试app发送robotium的脚本,测试app拿到robotium脚本后,将其解释为instumentation命令向被测试的app发送这些命令,被测试的app执行这些命令,然后将结果返回给测试app,然后一级一级返得到后的测试结果。

  结构框架

  calabash完全采用了cucumber的结构模式,给大家展示一下在命令行中展示出来的结构模式