如果你能够拿到代码,你可以直接进行白盒测试,比如assert一下当前的activity,操作的结果对不对等等,都可以验证。如果你拿不到代码,只有一个APK,也米得关系,你一样可以打到程序内部测试一番,比如这时你可以借助界面上各个控件的index来获得这个控件,并进行相关的操作。

 

1. 有时text view或者button的click方法会失效,咋办?答案是在被测程序的AndroidManifest.xml文件里加上这么一句:<supports-screens android:anyDensity="true"/>就行了。唉,当时为了找到这个解决方法可浪费了俺不少时间啊,最后在官网上找到答案了。

2. 如果要想在robotium的测试程序里读写SD card肿么办?答案是在被测程序的AndroidManifest.xml文件里加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>。注意是在被测程序里加上,在测试程序本身的manifest文件里加会很坑爹的。

3. 还想在Java程序里加点脚本的特性肿么办?俺在网上找到一个好东东:beanshell,这个工具是free的使JAVA可以具备脚本特性的东东,比如你想使用eval,用它很方便,效果你懂得。。。使用前只需将beanshell的JAR导入到项目中即可。

 

 

在qa.taobao上面看到高手评论robotium的不足,于是记下来实践了一下。
1  无法捕获Toast。
2  robotium无法操作webview控件。
大概研究了一下。
1  无法捕获Toast,这个有点不明白。大概实验了一下,可以使用waitForText这个函数来捕获文字,这个方法返回值是布尔型的,所以返回true就是找到了。
这个方法要注意:(1)找的内容最好别处没有,别到时候别处也有相关的内容就有点悲催了。
                      (2)这个方法用的是延时等待,所以如果找不到的话,需要超时来处理,程序定义      的超时时间为20s,这个有点慢了。所以不太好。
2 无法操作webview的问题。大概看了一下robotium是不可以操作webview。但是在开发文档中找到了webview可以通过javascript来互动。互动这个很重要,大概的想法就是利用Javascript来实现操作webview。因为webview里面的结构应该是dom的结构,YUI里面提供了模拟用户操作的相关内容。
这个有时间在研究吧。

posted on 2011-11-27 23:06  随我畅翔  阅读(1498)  评论(0)    收藏  举报