Android 自动化测试框架对比

出自http://android.codemach.com/android-ce-shi-kuang-jia-dui-bi.html

android的测试框架,除了需要适合做UI测试,还需要保证选取的框架有以下几点特性:

  • 工具开源,易于扩展。
  • 脚本编写简洁,维护成本低。
  • 满足客户端的自动化需求。
  • 便与校验结果的正确性。
  • 可用于持续集成。

目前较热门的开源框架有:Android APIs提供的Instrumentation类、MonkeyRunner、Robotium、Athrun、Appium、UIAutomator等

Instrumentation类:http://developer.android.com/reference/android/app/Instrumentation.html

  • Android APIs提供
  • UI层的自动化
  • 跨进程受到android进程安全限制
  • 扩展后的框架:Robotium, Athrun等

Robotium:http://code.google.com/p/robotium/

  • 基于instrumentation实现,提供的接口可以满足大部分自动化需求,使用方法简单
  • 支持手势、webview、截图等操作
  • 支持Remote Control方式
  • 支持ant、maven打包,与jenkins结合较好
  • 资料丰富,社区活跃,更新频繁
  • 签名问题,待测App和测试App必须使用相同签名
  • 通过solo对象提供操作方法,面向对象方面较差
  • 不支持跨应用测试,Android进程安全限制

Athrun(TMTS):http://code.taobao.org/p/athrun/wiki/index/

  • 淘宝的自动化测试框架,比较小众化,相关资料较少
  • 提供通过id查找所有控件方法,控件对象提供操作方法
  • 不支持Remote Control
  • 不支持跨应用测试

Appium:http://appium.io/

  • 使用WebDriver JSON wire protocol支持iOS和Android的UI测试
  • 支持非常多种语言编写测试脚本
  • Android SDK Level在16及以上时,底层使用的UIAutomator,低于16使用Selendroid

Monkeyrunner:<http://developer.android.com/tools/help/MonkeyRunner.html”>

  • Android SDK提供
  • python脚本,使用monkeyrunner test.py来执行
  • 结果的验证是通过截屏比对图片来实现,验证方式不够灵活

UIAutomator:http://developer.android.com/tools/help/uiautomator/index.html

  • Android提供的框架,支持SDK level 16及以上
  • 打包成jar后push到模拟器中运行,调试相对Robotium不便(其实自己稍微封装下也还OK)
  • 支持跨进程测试!!!这一点比起Robotium来说非常赞
  • 手势操作较少(不过4.3已经提供了不少手势操作啦,还木有试用)
  • 基于Junit 3, 相对于Junit4, Testng等测试框架,Junit 3不具备许多功能(不过看到过Google的开发人员说有打算往Junit4上发展)
  • 不支持WebView
  • 没有测试结果报告文件

最后综合考虑了一下,打算选用UIAutomator,毕竟是Google自己做的,又支持跨进程,我们待测的App也没有太多的webview,所以UIAutomator基本能满足我们的要求。

实际使用后,发现UIAutomator没有提供测试结果报告,这一点是硬伤啊…不过还是有解决办法的,把UIAutomator的输出重定向到一个文件中,再使用https://github.com/dpreussler/automator-log-converter转换成xml的测试报告。这样和jenkins集成后,测试结果就可以使用xUnit Plugin展示出来啦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值