想起一年前,公司做自动化测试还借助老美的工具,叫做 “CountDown”,这个工具坦白说,是很强大的,之前中国移动做认证的自动化测试也用这个工具,虽然现在已被舍弃。这个工具的精髓却仍然值得深入学习,细细体味的,自觉中其"毒"颇深矣。但它也有它的不良之处,我们当时使用的是 3.5 的版本,不知其后如何。那当时是存在一个比较重大的缺陷的,因其主要原理是对比图片,导致不同屏幕大小的设备,几乎无法重用已设计好的用例。每来新案子,自是苦不堪言。因了这,公司也在想着如何提高效率,自己在网上也找新的自动化测试工具。那会儿我主要知道有 UiAutomator 和 robotium,稍作了解了以后,便选择了 UiAutomator。
当我掌握了 UiAutomator 的时候,听说 Appium,既可做安卓,亦可做 iOS,也想学着来。另一原因是想用它来做一些网页的自动化,因为 UiAutomator 本身对一些网页上的控件,查不到它的属性,据查 Appium 是可以的,便想学着来试试。在安卓上搞了一条用例后,便弃之不用了,不想用这个,着实不便。
其实,我们做自动化黑盒测试,我们最主要的目的是什么呢?
围绕这两个主要的目的,那工具的选择上面,自然是越简单实用,效率越高越好。无论是 UiAutomator,还是 Appium 或其他什么工具,在最后的最后,都是要来那一下子,点击嘛,不操作哪里有什么测试可言?点击的啥呢?还不是坐标?而我们拿到了这个控件的坐标后,只消点击对应的坐标即可。哪个工具速度快,通用性好,才是首选。从这点来说,以上的工具各有利弊。我们使用 uiautomator dump 来获取 xml 档,从 xml 档中过滤出控件的坐标值来,使用 shell 脚本来执行,速度是非常快的。这个比 UiAutomator 本身要快的多。快多少?这点需要具体的用例来说明了,这是后话。
以上全属小可的乱弹琴,感谢各位!