zoukankan      html  css  js  c++  java
  • 基于Calabash-andriod的UI自动化测试(1)-环境和原理

     有时候,一些覆盖happy path的UI自动化还是很有用的。它的一些作用如下:

    1.可以迅速实现端到端的功能回归,能够覆盖接口测试覆盖不到的一些地方,如GUI层和接口层的交互产生的问题。

    2.非码农也能很直观的读懂测试结果。对于干系人较多的项目,有时候很重要。

    3.验收测试。环境不允许测试人员直接获取接口测试。

    。。。

    ----------废话完毕分割线------------

    作为一个移动测试的新兵,今天在同事的帮助下搞定了calabash-android做UI测试的技术栈。为了不遗忘,赶紧记录下来:

    环境准备:

    1.你需要一个模拟器来跑android的apk,同事推荐了genymotion。https://www.genymotion.com/#!/

    2.genymotion依赖虚拟机virtubox,你也必须安装它。

    安装1和2的一种方式如下:你可以先安装brew的一个插件homebrew cask

    brew install caskroom/cask/brew-cask 

    成功安装后:

    brew cask install genymotion

    这样genymotion和它依赖的virtubox就被安装好了。这是最简便的安装

    3.安装calabash-android

    可以使用gem来安装calabash:

    gem install calabash-android

    这里有一个坑:国内好像把gem的源给墙了(无语),还好淘宝提供了一个gem源

    gem sources --remove http://rubygems.org/
    gem sources -a http://ruby.taobao.org/

    替换掉gem的源以后,就可以简单的安装calabash-android了。

    gem install calabash-android。

    4.当然你机子上还要有android的sdk。除了依赖,你还会直接用到其中的一个工具uiautomatorviewer 它在sdk的tools目录里,是一个UI组件路径拾取器。

    完成安装后。你就可以愉快的开始测试了。

    Calabash-android的工作原理:

    首页:https://github.com/calabash/calabash-android

    1.calabash借用了cucumber的BBD测试框架骨架,因此基于calabash的用例跟cucumber没什么两样。

    2.calabash驱动anroid程序的部分是基于Robotium的。为了能驱动android和ios。calabash在驱动层做了协议层拆解。android和ios分别有一个http server接受一样的指令,然后各自调动自己的底层驱动调用被测物。

  • 相关阅读:
    cs231n --- 3 : Convolutional Neural Networks (CNNs / ConvNets)
    cs231n --- 1:线性svm与softmax
    Python的下划线_
    Python的类(class)
    python self
    MFC中应用对象的成员:窗口指针m_pMainWnd说明
    MSTP+VRRP组合组网
    VRRP组网下同网段内配置基于全局地址池的DHCP服务器
    路由器/交换机Console口登录密码丢失后如何恢复
    交换机处于同一网络作为DHCP中继与服务器
  • 原文地址:https://www.cnblogs.com/skytraveler/p/4700716.html
Copyright © 2011-2022 走看看