android自动化测试之robotium初探
之前豆瓣说的android测试,使用了robotium。 对于robotium的使用感觉来说一下吧。使用感觉当然是方便了。因为确实帮助自动化测试开发者提供了很多方便的方法。 具体的使用到的方法在这边说一下。 首先,android Junit 提供的实例代码,对于学习好像有一些帮助,但是对于一个实际的涉及到Activity之间有切换的问题,好像提及的不多,反正是没有找到。但是在robotium里面有一个solo.getCurrentActivity()帮助我们很轻松的搞定这个问题。 其次,输入内容。robotium里面的做的很细致,输入是模拟输入并不是简单的setvalue这样的简单粗暴的方法,其次对于控件是否存在和时候能够输入都做了判断。最后,等待控件在方法里面直接封装好了。就是用起来很方便了。 再来说说robotium的不足, 我段数比较低,还没有发现,但是淘宝的牛人们大概说了这么几条。 Robotium提供的API是面向过程的,测试代码的可扩展性差—— 我觉得robotium可以简单的源码反编译,看到源码,是在不爽了,可以自己重写方法。 让testapp和app运行在两个不同的进程中,这是一个大坑。——太高深的理解不了,但是有一个显而易见的缺点就是app进程不在了,testapp还在断言。呵呵 目前框架中有很多地方硬编码Thread.sleep()去等待一个View加载完成,避免对空的View进行操作,或者是对一个view进行set操作后,也需要等待一段时间让操作生效。希望能找到一种回调机制优雅的解决——这个说的很好,但是android现在真的没有提供。 淘宝的牛人说的不足,不光是robotium的不足,而且是android JUnit的不足。所以淘宝希望能又自己的测试框架。这个对于一般中小型软件公司的投入来说是一个不敢想象的问题。所以,坐等淘宝的更高级的测试框架吧。先用robotium了。
评论:
robotium本身就是对instrumentation的封装,如果再进行反编译,那你还不如直接去用instrumentation测试.....
我是最近开始了解这个的.也不太清楚.
=====================
说的很对,反编译的意思其实就是学习和探索,因为文档比较少。没有别的意思。
robotium本身就是对instrumentation的封装,如果再进行反编译,那你还不如直接去用instrumentation测试.....
我是最近开始了解这个的.也不太清楚.