+ 首页>>快读>>内容

快读[知乎精选]Android 手机自动化测试工具有哪几种?500+次围观

知乎问:Android 手机自动化测试工具有哪几种?回答很精彩,DiggerPlus为各位测试人整理了一番。

回答者:临寒@淘宝

Feb 23 2012更新: 还有Sikuli (http://sikuli.org),基于优秀的图像对比库opencv的测试工具,测试脚本使用Python编写,非常强大。如果你的app没有源码,可以选择它;或者你想做系统测试(跨app的测试),也可以选择它。其它的还是用下面说的那些个吧。
我通过其核心包sikuli-script.jar实现了android的sikuli化,暂时不打算开源。其实原理挺简单的,认真看过sikuli源码的应该都能写出来。

看lz的意思应该只是想问应用层的,我来说点应用层的
先说说开源的吧:
Robotium
Monkeyrunner
Robolectric
CTS
还有个新兴的测试工具,以前在GitHub看到,现在找不到了,好像是BDD类型的语法;现在还不成熟。

另外基于web的测试也有基于Selenium Webdriver 的 Android WebDriver:
有两种:
基于Remote Server的:官方提供了java接口的,但是Python版的官方里面却没有。我非常喜欢Python,所以自己实现了并且开源到了GitHub:https://github.com/truebit/AndroidWebDriver4Python 有问题大家可以提到上面
基于Instrumentation的:已经在Android SDK r14里面可以安装了
不开源的就多了,不过我见过的一般是以下几种思路:
1. 基于Android Java Instrumentation框架:
基于Robotium,比如bitbar的产品:http://bitbar.com/products
基于Instrumentation,那就海了去了,很多公司自家写的工具都基于这个;另外Robotium就是基于这个的
2. 基于Android lib层的各种命令,比如sendevent,getevent, monkey, service这些,然后用各种语言封装

MonkeyRunner还是很有前景的,Google自己弄的。现在最新的dev版本已经有支持UI的id操作的EasyMonkey了。

邓奕,拥抱移动互联网

既然说到andoird测试工具的分类,我就以分类的角度来回答吧。

1)纯白盒方式的测试,Monkey。楼上已经有哥们提到了,使用moneky更多的是开发team,而不是纯粹的测试team,毕竟要求对android开发比较了解才用得了monkey。

2)偏白盒的robotium,这家伙号称是黑盒,但是本人不太认同~ 因为使用robotium需要知道package和acitivity这样的细节,即便不是开发人员来做,也得从开发人员那里获得不少开发文档才能做。

3)纯黑盒的方式,这个分类比较有意思,我分得细点

3-1)sikuli,原来只针对桌面应用,后来自然延伸到了android app,让人眼前一亮的测试方式。框个图,写个简单的python测试脚本(其实java脚本也可以),测试就做好了,简单又形象,还有逻辑。因为验证点是依赖于图片比对,所以瓶颈也在此。屏幕大小和分辨率的不同是这种测试的硬伤,如果测试团队觉得每个手机上抠下来的图要重新截,那…也就没啥了。

3-2)testin,deviceanywhere等
楼上那个哥们应该是testin的人,介绍已经很全面了,我只概括一下。这类测试本身没有神马特别的,无非是放在了云端,将规模化的测试做到了极致,与其说是测试工具,不如说是测试平台。说缺点嘛也有,由于只是简单的基于坐标的脚本录制(并没有灵活的功能性验证点),这种测试往往比较简单,只是做做简单的适配性和性能测试,毕竟卖点不在测试类型上。

3-3)clicktest(我们家的工具,算是广告吧,呵呵)
论原理,也是基于图片对比技术,只是做了些优化,比对的智能一些,跨手机的效果更好罢了。也支持录制回放,自定义了一些测试命令,易上手,可读性强,不再需要使用者(手工测试人员)编程了。另外,支持工作流式的逻辑集成,可以灵活得组合测试步骤,增强复用性。clicktest是工具,不是平台,欢迎各位咨询和探讨。

对了,还有一种
4)硬件辅助的测试方式,我就不举例了
先说原理,硬件辅助视频输出(摄像头or视频线),控制方式是软硬件结合。这种方式的特点,跨平台杠杠的,但是成本高,包括硬件成本以及硬件工程师的成本。

希望和各位同行多交流:)

孙景卫,http://weibo.com/sunjw,工程师

补充几个:
sikuli,是MIT的几个高材生搞的一套图形化编程系统,可以用来测试任何图形界面,配合工具screencast,即可方便的利用Sikuli来测试真实手机,语言用python语法,都是可视化的脚本。
Monkey,用于app的稳定性测试。业界通用的哦,不会用的话不要说你是做android开发的。
ASE,android script environment,是API的脚本实现,稳定性一般,环境配置稍复杂,不过,编写成本低,如果再结合shell等,可以指定很强大的自动化思路。
WindRiver公司也出了一些商用的自动化框架,没用过,据他们的官网介绍,很是不错的。

总结一下:
如果想做一套大型的、可扩展的自动化框架(工具),基于Robotium是最靠谱的,虽然难度有点高。

还有几个回答稍带广告嫌疑,但却是也是好东西:

完整版传送门

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

Python/C/C++/Javascript程序员,持续学习者,目前专注于前端开发。

的专栏 | 专栏作者 | 访问小A的主页

+ 发表评论

Copyright © 2014 DiggerPlus. 83 queries in 3.012 seconds.
使用合作网站账号快速登录,更多精彩等着您: 开源中国