基于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接受一样的指令,然后各自调动自己的底层驱动调用被测物。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义