写正文之前,先吹吹这个robotium,好让丈二童鞋摸得到头脑。最近一直在抽空自学Android自动化测试,了解到一个传说中很牛X的号称"Selenium for Android"的Robotium。这玩意牛在哪呢?牛就牛在它对android的自动化测试可以说是“黑白通吃”,它其实是对android自带测试类Instrumentation的一个封装,方便于测试人员直接调用封装好的接口。你可以这样理解,robotium就好比一个富二代,而instrumentation呢就是他爹“Li Gang”,凭着它爹在android家族的势力,robotium可以横冲直撞,黑白通吃,嘿嘿。如果你能够拿到代码,你可以直接进行白盒测试,比如assert一下当前的activity,操作的结果对不对等等,都可以验证。如果你拿不到代码,只有一个APK,也米得关系,你一样可以打到程序内部测试一番,比如这时你可以借助界面上各个控件的index来获得这个控件,并进行相关的操作。
好了,牛吹到这里,该写我的tips了,现在有些学习的小技巧先记下来,免得日后遗忘,呵呵。
1. 有时text view或者button的click方法会失效,咋办?答案是在被测程序的AndroidManifest.xml文件里加上这么一句:就行了。唉,当时为了找到这个解决方法可浪费了俺不少时间啊,最后在官网上找到答案了。
2. 如果要想在robotium的测试程序里读写SD card肿么办?答案是在被测程序的AndroidManifest.xml文件里加上
。注意是在被测程序里加上,在测试程序本身的manifest文件里加会很坑爹的。
3. 还想在Java程序里加点脚本的特性肿么办?俺在网上找到一个好东东:beanshell,这个工具是free的使JAVA可以具备脚本特性的东东,比如你想使用eval,用它很方便,效果你懂得。。。使用前只需将beanshell的JAR导入到项目中即可。
好了,今天先记这么多,以后有新的技巧再陆续记下来。以后研究的目标是利用robotium开发一套基于关键字驱动的测试框架,目前正在构思中,欢迎感兴趣的小盆友一起学习和讨论,呵呵。