自动化测试博大精深,很多大公司都有专职的程序员甚至专家来负责自动化测试。但有时候仅仅是为了快速地搭建一个Android自动化测试工程,作为demo或者1.0版本快速进入迭代开发。本文总结一下从零开始快速搭建Android应用自动化测试的方法。假定你的Android应用程序包含如下组件需要跑自动化测试:
-一个Activity
-一个Service
-一个静态工具类(Utils)
测试设备android4.4,编译环境Eclipse(ADT)/Linux下android编译环境。
(1)创建自动化测试工程
一般习惯于在测试目标Android应用工程下增加一个路径tests/,来保存自动化测试工程,这里也采用这种代码结构。以一个包名为”com.example.autotestappdemo”的工程为例。
用Eclipse创建一个新的Android应用工程,包名命名为”com.example.autotestappdemo.tests”,在AndroidManifest.xml中配置:
可以看到其中两个关键配置:
在application中引入库”android.test.runner”,如果没有此项配置,就不会将InstrumentationTestRunner编入apk,无法运行自动化测试。
声明instrumentationTestRunner。这项的作用是声明测试代码的目标工程。如果没有此项配置,在运行自动化测试时会找不到instrumentation info,导致运行crash。
仅需上述步骤,现在就可以编译、安装auto test apk了。只不过还是一个没有任何测试项的空的测试工程。
此处需要注意,自动化测试工程需要和目标工程签名一致,否则无法运行自动化测试。譬如,将AndroidManifest中android:targetPackage改成某个系统应用,运行自动化测试,会crash:
java.lang.SecurityException:
Permission Denial:
starting instrumentation
ComponentInfo{com.example.