手机自动化测试是新兴起的,相对于页面测试来说有自己独特的特点:
(1)软件环境依赖。手机App根据不同的系统,可能会有不同的地方,比如说Android,IOS就不完全相同。开发人员在做App的时候,是分开来开发的,所以测试的时候我们也要分开来写自动化测试用例,而且有些儿框架还不支持两个不同的操作系统。
(2)硬件环境依赖。智能机生产厂商越来越多,而且手机屏幕大小也不一,这就会造成App在不同的机型上展示可能不太一样。在大屏幕上可能显示的是5到6条记录,小的屏幕上显示的也许只有3到4条,这些儿也要考虑到。
(3)版本依赖。Web测试时,就算有新的更新,只要不是大的改版,对自动化测试用例影响不大;可是App如果有升级,你再运行自动化测试用例之前就要先进行升级,否则程序无法运行。
(4)自动化测试框架的限制。常用的自动化测试框架很多,可是由于IOS的限制,有些儿框架不支持这个系统,所以我们要根据自己的测试需要来选择不同的框架。Appium支持Andorid和IOS下的自动化测试,而Robotium只运行Android环境下的自动化测试。
(5)手机独特的操作。现在的手机几乎都是触屏的,这就产生了页面操作没有的独特操作,如滑屏,指纹锁,长按等操作,还有WebView的嵌入等。
Android APIs提供的instrumentation类可以初始化Android应用程序代码,允许你监控应用程序的系统交互,配合KeyEvent、MotionEvent类,发送用户事件,进而实现GUI 层的自动化。测试程序需要继承ActivityInstrumentationTestCase2来实现自动化。
为了方便编写自动化测试用例,我们需要对ActivityInstrumentationTestCase2进行扩展。业界也已经有一些成熟的自动化工具,诸如Robotium、Athrun、NativeDriver、MonkeyRunner,Appium等。我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化。对于移动客户端GUI的自动化而言,需要保证选取的工具有以下几点特性:
(1)工具开源,易于扩展。
(2)脚本编写简洁,维护成本低。
(3)满足客户端的自动化需求。
(4)便与校验结果的正确性。
(5)可用于持续集成。
Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
原文:http://www.cnblogs.com/xu-jia-li/p/6971813.html