业界自动化框架简介
1.基于坐标点击触屏:Monkeyrunner,北京博思自研工具
Monkeyrunner:提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的.是在工作站上通过API定义的特定命令和事件控制设备或模拟器。monkeyrunner的命令语法为:
monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>
个人应用感触:基于坐标点,事先通过python脚本编辑好执行的步骤及坐标,再对所操作的步骤进行循环设置,使得测试对象重复操作已经设置好的步骤.可以根据运行的结果进行截屏比对,得出测试结果.但是个人觉得mongkeyrunner有几个不好,(1)坐标维护,本身就听说坐标不够稳定,如果换了手机或者项目,坐标部分首先要维护,也是很多人说的移植性不是很好.(2)在遇到非测试模块时的问题,不会自动处理.如在测试message,突然后台出现FC(Force close)那么不会自动截屏保存等(3)这个运行在已经稳定的项目上可以,但是如果不稳定,容易出现问题的项目上,就不好判断(我也是不会用如何判断是否是不正常的现象)
北京播思自研工具:这个工具没有见过,不知道是什么样子,只是听说过.也是一款基于坐标的自动化工具
2.基于随机流的单元测试:CTS,monkey
CTS:兼容性测试.当电子产品开发出来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的androidapplication能运行在该平台下.
个人理解:在实际工作中见过这个测试,运行在Unbutu/Linux下,需要自己去调试脚本.全部运行的话,耗时比较长,如果单个模块或者包运行还是比较快的,需要设置好一些默认设置.
monkey:一般用于压力测试,通过随机流的输入或者操作验证测试对象的行为.与monkeyrunner有这明显的区别.
个人运用:一般情况下执行单个包的压力测试,有需要的时候也是全部执行.根据参数设置的不同,确定在遇到ANR,FC问题时是否继续执行.通过间隔时间和运行次数完成随机点击时间.在一般的情况下,运行单个包的话,也会运行后台的音乐同时进行测试.
3.基于元素图形对比:Seetest,I-Test
Seetest:http://experitest.com/.支持IOS,android,黑莓,windows phone的平台自动化测试,支持在模拟器或者真机上进行录制,支持在不同的平台上运行相同的用例等等,通过下载Seetest,连接设备,录制和运行测试即可
I-test:只支持root后的手机,至此android 2.以上系统,包括:PC控制手机,录制脚本,运行脚本,日志输出,屏幕截图的功能获取自动化执行过程中的所有日志和图片
4.腾讯的Bita和GT
Bita:腾讯晕测试平台,支持测试应用和手游,用QQ登录,选择测试机型,分辨率,android版本,上传测试的apk即可进行测试,全程无人干预,所有遇到的问题都在反馈在报告中,支持多种格式报告下载.测试完毕阅读报告即可 http://bita.qq.com/
GT:(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE,Integrated Debug&Test Environment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等等;更重要的是,您可以在任意真实场所、任何时候做如上的系列事情,这就是“APP的场测”。如果您觉得GT提供的功能还不够满足您的需要,您还可以利用GT提供的基础API自行开发有特殊功能的GT插件(目前,仅iOS版支持),帮助您解决更加复杂的APP调试、测试问题。GT支持iOS和Android两个手机平台,其中:iOS版是一个Framework包,必须嵌入APP工程,编译出带GT的APP才能使用;iPhone和iPad应用都能支持。Android版由一个可直接安装的GT控制台APP和GT SDK组成,GT控制台可以独立安装使用,SDK需嵌入被调测的应用、并利用GT控制台进行信息展示和参数修改 http://gt.tencent.com/
5.百度云和Itestin,阿里巴巴TMTS
百度云测试:包括了深度性能测试,全面兼容性测试,深度遍历测试,功能回放测试,安全漏洞扫描,特地场景测试.好像还是蛮全面的
testin:Testin是全球最大的移动游戏、应用真机和用户云测试平台,Testin云测试所推出的业界领先的移动互联网真机云测服务平台,主要产品包括RealTest™、 RealAuto™、RealMonitor™,为移动应用开发和服务提供商提供专业的基于真实终端,跨地区真实移动网络的移动应用开发测试、自动原型测试、自动适配测试和应用程序运行质量的监控服务。包括:安装卸载测试,运行稳定性测试,功能遍历测试,性能测试,智能UI适配测试. http://www.testin.cn/
6.基于控件信息:Robutium+Junit4框架、东舟Smart-Robot、美国风河公司的:wind test managerment
东舟Smart-Robot:
wind test managerment:Wind River Test Management使得 Android设备的测试过程更加顺畅,自动化程度也显著提高。对于运营商、设备制造商、独立软件供应商和芯片供应商来说,采用Wind River Test Management测试其Android设备,不仅可以缩短时间、降低成本、提高软件质量和稳定性,并且能确保设备符合Android兼容性测试套件的规范。不仅如此,Wind River Test Management还可使数量庞大的Android异构测试环节自动化进行,测试结果将被归入统一数据库,从而使测试结果分析更快、更准确。
7.NativeDriver和Selenium(已经被UiAutomaor取代)
优点:
1、跨平台,android平台的源代码已经公开,IOS的不久也将要发布,windows平台的在计划中,以后针对不同的平台都可以使用相同的语言和相同的API来写用例。
2、使用WebDriver API(selenium2.0也加入了WebDriver )进行的扩展,对于熟悉WebDriver的用户,上手会更加的快(PS:还不熟悉WebDriver,有空学习一下)
3、类似于selenium RC的方式来运行测试程序,这个可以看下面的NativeDriver架构图,测试程序通过http+json访问模拟器上的server,然后进行相应的模拟操作
4、元素查找可以直接使用通过hierarchyviewer工具识别出来了资源ID来进行元素查找定位
5、支持WebView控件
Selenium:已经被UIautomator逐步取代
UIautomator:优点:可以对所有操作进行自动化,操作简单;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了
个人使用情况:
上面几个工具只用过monkey,monkeyrunner,Uiautomator,其中最后一个也是我要学习的主要工具.希望和大家一起学习