http://kongqingyun123.blog.163.com/blog/static/6377283520126294029822/

自从上次对Robotium和nativedriver这两个工具做对比已经过去将近一年的时间了(上次内容见http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/),一年时间对于一个开源的工具来说变化肯定是很多的。同时很多当初对于工具的看法也会有些不同,当初选择了NativeDriver来做一些手机上的自动化测试,但是在后续的使用过程中也发现了一些问题,现在主要是在用Robotium来写一些测试用例。

Robotium:
http://code.google.com/p/robotium/
当前已经发布了最新的3.3版本,robotium的社区还是挺活跃的,会有很多人提问题,以及帮助你解决问题。可以加入groups,http://groups.google.com/group/robotium-developers 
先简单说一下后面使用robotium的原因。
1、支持滑动操作,测试项目中很多地方只能通过滑动屏幕来实现,robotium支持,但是nativedriver不支持
2、robotium支持获取toast的,nativedriver不支持
3、关于robotium需要为应用重签名的问题,这个其实问题不大,实现的话也比较简单,完全可以实现自动化来实现,windows下自动化为应用重签名的bat脚本可以参考http://kongqingyun123.blog.163.com/blog/static/63772835201243143159515/
4、关于之前说的api中很多都使用index索引的问题,其实robotium也提供了通过R.java文件中的id来获取元素,不过前提是你能够获取到被测应用的R.java文件,我们测试自己公司的应用,可以方便的让开打打包时也保留一份和apk匹配的R.java文件即可
通过View button = solo.getView(R.id.button) ;  solo.clickOnView(button ); 来实现,只要开发不更改空间id的名称,每次只需要使用最新的R.java文件覆盖即可,对于后续的测试用例维护会方便一些。

当然每个工具你在使用的过程中也会发现一些不好用的地方:
关于下面的具体实习方式,后续写一篇文章介绍一些我们基于Robotium的用例,外围在PC端写了一套框架来解决这些问题,同时可以通过简单的配置来实现自动化的运行不同版本模拟器上的自动测试。
关于PC端的框架可以实现原理可以参考:http://kongqingyun123.blog.163.com/blog/static/63772835201262534056673/
1、robotium在运行测试用例的时候有时候会crash,直接导致测试停止,然后你的测试结果也收集不到了。
关于这个问题个人的解决方案是运行测试用例的时候通过cmd发送adb shell am instrument 命令, 每次只执行一个测试用例,然后通过获取cmd的返回值来判断是否是crash了,如果crash的话则重跑用例
2、测试用例运行不稳定的问题
有时候你用例写完了没有问题,但是在模拟器上跑的时候还是偶尔的会出现运行失败,当前的解决方案也是按照测试结果返回值获取检测到失败则继续重跑,当前定义的重跑三次。(这里使用了一个开源的android-junit-report工具)
3、不支持WebView控件。(Robotium不支持,Calabash支持)

NativeDriver:
http://code.google.com/p/nativedriver/
具体查看这里http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/
Nativedriver是google日本的团队开发的,但是团队人员已经去做其它项目,所以NativeDriver基本上已经是不更新了,社区的活跃度也已经是很低。nativedriver存在的一些bug估计也都还没有修复掉。


Calabash:

https://github.com/calabash
calabash-android是Robotium+cucumber实现的,最底层还是用的robotium,加入了对于WebView的支持
这个工具刚开源不久,社区还是挺活跃的,有问题提问的话开源的作者也会很积极的帮助你解决。
该工具的具体效果如果还没实践过,不过支持android和IOS,以及使用cucumber的方式来编写测试用例还是会比较感兴趣,另外还支持webview控件

转载于:https://www.cnblogs.com/ivan240/p/3186375.html

android UI自动化测试工具Robotium VS NativeDriver VS Calabash相关推荐

  1. android ui自动化测试工具,介绍Robotium+Orange实现androidUI自动化测试

    4.如何运行测试程序 orange框架会生成一个jar包,当你配置好这些选项后,并且拿到了orange.jar后,直接运行命令 java -jar Orange.jar D: \\config.pro ...

  2. Android 手机自动化测试工具有哪几种?

    Android 手机自动化测试工具有哪几种? 3 条评论 分享 按投票排序按时间排序 28 个回答 78赞同 反对,不会显示你的姓名 知乎用户,https://github.com/truebit 孙 ...

  3. UI自动化测试工具Airtest

    一.工具介绍 Airtest是网易出的基于图像识别和Poco控件识别的一款UI自动化测试工具. 两个关键点: 1.基于图像识别 Airtest可以通过屏幕截图的方式来获取我们想要操作的区域.例如对一些 ...

  4. UI自动化测试工具探索:Airtest

    Airtest 简介 Airtest Project是网易游戏内部工具团队开发并开源的一款UI自动化测试工具,据说曾经获得谷歌力挺. AirtestIDE 是一个跨平台.多端(Windows.web. ...

  5. 种草Cypress和TestCafe,QA同学一定想了解的Web UI自动化测试工具

    摘要:Cypress和TestCafe这两个工具相比于Selenium都更加的轻量级,且在不同的方面有了改进,比如安装更简单,增加了内置等待机制,调试更加方便等. Cypress.TestCafe.P ...

  6. 通过录屏自动测试web端查询功能_海豚 Web UI自动化测试工具

    http://div.io/topic/1339 海豚是什么? 没错,它是一个 Web UI自动化测试工具,专治Web UI的各种疑难杂症,目前只针对移动端Webapp量身定做. 说到 Web UI的 ...

  7. SwissArmyKnife调试Android UI的工具

    效果: SwissArmyKnife 是一款方便调试android UI的工具,可以兼容所有android版本,不需要root权限.可以直接在android手机屏幕上显示当前Activity中所有控件 ...

  8. 基于图片识别的 UI 自动化测试工具 SikuliX

    简介 SikuliX 是一款开源的 GUI自动化测试工具,它的前身是 Sikuli(上帝之眼).SikuliX 在设计上使用到了图片识别技术,会通过不停的对桌面进行截图,然后与预期图片进行比较来判断交 ...

  9. UI自动化测试工具一般有哪些作用?

    随着不同渠道的应用程序设计以及开发,跨越移动.桌面和云,检测操作界面变得越来越复杂,面对一系列的挑战和漏洞,自动操作UI界面检测也越来越受到重视,UI自动化测试工具就是解决这些问题的专业工具,那你知道 ...

最新文章

  1. angr学习笔记(9)(添加约束)
  2. Linux下查看文件内容
  3. 10·24【运维工程师也过节】【运维MySQL大礼包】
  4. java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...
  5. DotNet中配置文件的使用(一)
  6. 线上四台机器同一时间全部 OOM,到底发生了什么?
  7. 在图片控件中应用win32显示图片总结
  8. python入门先学什么-Python入门学习 DAY 01 计算机基础
  9. 单体内置对象_第五章 单体内置对象
  10. sql函数—Lpad、Rpad
  11. Android 三方数据库ObjectBox使用
  12. web 实时刷新 websocket 大数据
  13. Problem Set 1
  14. 用Unity3d开发Android游戏
  15. RPA学习-数据表处理
  16. 去除stackoverflow页面上关不掉的cookie弹窗
  17. Kafka,ActiveMQ,RabbitMQ等消息队列使用的场景介绍
  18. php scada,监控系统SCADA软件—KingSCADA
  19. 2022-2028年中国应急行业市场发展现状及竞争格局预测报告
  20. 吐血巨献:VB网络编程(webbrowser+Inet+抓包封包+经验)

热门文章

  1. 【算法竞赛学习】心跳信号分类预测-模型融合
  2. 『设计模式』职责链模式(Chain of Responsibility) 可怜的加薪、请假之路
  3. hadoop启动异常:UnregisteredDatanodeException
  4. 如何去掉 从网页上copy到word文档中之后 的背景颜色 (备忘)
  5. python3(十三)File对象的属性
  6. opengl层次建模_层次建模简介
  7. 检测和语义分割_分割和对象检测-第2部分
  8. 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测
  9. PyCaret 2.0在这里-新增功能?
  10. 测试文章测试文章测试文章测试文章测试文章