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

基于优秀的图像对比库opencv的测试工具,测试脚本使用Python编写,非常强大。

如果你的app没有源码,可以选择它;或者你想做系统测试(跨app的测试),也可以选择它。

先说说开源的吧:

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了。

以分类的角度来说

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视频线),控制方式是软硬件结合。这种方式的特点,跨平台杠杠的,但是成本高,包括硬件成本以及硬件工程师的成本。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191206A0RUXH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励