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

优势

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

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

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的结构模式,给大家展示一下在命令行中展示出来的结构模式When /^ 输入用户名\"([^\\\"]*)\" 输入密码\"([^\\\"]*)\"  $/ do |username,password|performAction('enter_text_into_numbered_field',username,1)performAction('enter_text_into_numbered_field',password,2)end

现在应该能明白为什么你需要写汉字的脚本就可以了吧。在这里解释一下为什么如果业务存在功能修改这种情况,自动化脚本的修改量会小,还是以这个登录脚本为例,加入现在输入用户名和密码的输入框顺序变了,在你的页面显示上,可能是从左下角移到中间了,这种变化,那么feature文件你不用改,只需要改step_definition脚本就好了。

运行报告

calabash-android支持很多报告生成模式,支持html,json,junit等等报告模式,只需要你在run的时候添加-f参数-o参数就可以了。

例如 calabash-android run xxxx.apk -f html -o report.html,上图展示一下强大html报告

posted on 2013-07-31 10:31 顺其自然EVO 阅读(516) 评论(0)  编辑  收藏 所属分类: android

bdd java 界面测试_BDD自动化测试利器-calabash(Android)篇(一)相关推荐

  1. bdd java 界面测试_基于Cucumber的BDD自动化测试

    编辑推荐: 文章主要介绍了cucumber的相关概念.工作原理,以及cucumber可以通过多少种开发语言来实现与底层驱动的映射等. 本文来自于testerhome,由火龙果软件Luca编辑.推荐. ...

  2. bdd java 界面测试_行为驱动:第一个BDD测试用例

    行为驱动:第一个BDD测试用例 这篇文章我们就赶紧开始编写我们的第一个BDD测试用例. 一:创建features 我们在新建的java项目中,新建一个文件夹名为features.然后右键点击该文件夹, ...

  3. AutomatorX自动化测试工具介绍(Android篇)

    准备环境 先准备一台安卓手机,电脑上配置好Python环境. 根据 ATX官方主页上的说明,把环境配置好. https://github.com/NetEaseGame/AutomatorX 需要用到 ...

  4. 软件测试—— 界面测试(三 )

    有软件的地方就有界面,就会有界面测试.界面测试是软件测试中,最多,最繁琐,最简单的测试.尤其在本地化测试(多国语言测试)中,有很多的界面测试. 界面测试,也叫UI测试(User interface t ...

  5. 软件测试 (三) 界面测试

    有软件的地方就有界面,就会有界面测试.界面测试是软件测试中,最多,最繁琐,最简单的测试.尤其在本地化测试(多国语言测试)中,有很多的界面测试. 界面测试,也叫UI测试(User interface t ...

  6. VIPER,更清晰的架构,解决复用和测试问题的利器系列1:VIPER架构演进史

    VIPER: 更清晰的结构,解决复用和测试问题的利器架构系列1:VIPER架构演进史 洋葱模型 洋葱模型,是从冰山模型上演变而来的,用来进行层次分析的模型,这是Redux的洋葱模型. action从最 ...

  7. 爬虫、网页测试 及 java servlet 测试框架等介绍

    scrapy 抓取网页并存入 mongodb的完整示例: https://github.com/rmax/scrapy-redis https://github.com/geekan/scrapy-e ...

  8. 压力测试-Jmeter自动化测试教程

    目录 Jmeter目录 1.Jmeter的安装与部署 1.1 环境要求 1.2 安装Jmeter 1.3 配置Jmeter环境变量 1.4 Jmeter的使用 手写自动化测试脚本(不建议用) 通过录制 ...

  9. java+testng+selenium的自动化测试代码

    java+testng+selenium的自动化测试代码 前言 这是用testng框架加selenium做的一个UI自动化测试的项目 Java代码 package com.justin;/*** @a ...

最新文章

  1. 草根版创业网站学巴菲特售时间 获天使投资
  2. Codeforces 1322D Reality Show (DP)
  3. 学Java后未来发展方向和前景怎么样?
  4. JAVA中byte为负数处理
  5. 信息学奥赛一本通(1009:带余除法)
  6. 2010——满地遍是网页防篡改和WAF
  7. 【Java从0到架构师】Redis 进阶 - pipline、发布订阅、Bitmap、HyperLogLog、GEO
  8. android6.0/7.0禁掉Selinux
  9. 如何在Excel中提取身份证号码中的信息
  10. 4、Hive数据仓库——加载数据
  11. 最小生成树MST详解
  12. 【开发教程6】疯壳·ARM功能手机-中断实验教程
  13. html5 表单 重置,css修改input表单默认样式重置与自定义大全
  14. 利用huffman编码对文本文件进行压缩与解压(java实现)
  15. 人工智能.黑白棋规则
  16. [安装fastfds中的nginx执行make命令报错]src/core/ngx_murmurhash.c:37:11: error
  17. Android 获取ROOT权限原理介绍和签名验证原理及反编译学习
  18. 蓝桥杯python组——平行四边形面积
  19. 数据结构 数组的困惑 int *p=a 到底什么意思
  20. 分享几个特别特别强的网站

热门文章

  1. 【北邮国院大二下】产品开发与营销知识点整理 Topic8
  2. 支付宝自动代付,代付系统开发(搭建) 【搭建环境】
  3. 倦怠和枯燥_避免倦怠的13种方法
  4. 换电脑 NoteExpress 数据备份迁移
  5. ASP.netCore 笔记整理(自用)
  6. Websocket跨域访问
  7. C语言函数无返回值 参数
  8. JVM系列之垃圾回收器(下篇)——Shenandoah垃圾回收器
  9. 中国代步平衡车市场销售态势与消费趋势预测报告(2022-2027年)
  10. 臀大肌(01):俯卧直腿上摆