背景:
对于一个硬件连接项目,底层gg终于开发出mock流的库,后续的许多测试都可以进行了。对于自动化,在云测的机型兼容和本地的主流程验证其实还是起到比较重要的作用的,但是app的UI自动化这个东西本身就是一大坑,无论是成功率还是投入的人力成本,发展到现在也依然是一个问号,不过东西还是要做的,至少对于个人帮助还是很大的… …
本篇分享的是在公司已经完成的一个二次开发的自动化框架,基于as + robotium + uiautomator + spoon。目前已经是在MQC和本地顺利运行的,当然了,一个人的精力和技能是有限的,有很多地方肯定是有缺陷,以及很多想法是一个人短期内难以完成的,so有错误的地方请指出。
PS:这篇是给公司内部分享用的,有的地方不可避免屏蔽掉,请不用太在意。
分支地址:dev_cz
需要实现的功能:
- 支持云测,支持本地测试
- 支持失败用例自动执行,支持失败用例截图定位问题
- 支持多设备并发运行
- 支持简便易懂的可视化报告
本地自动化和云测平台自动化介绍:
和官方的结构一致,无区别,唯一的区别是使用HoloTestRule替换ActivityTestRule,在@Before内初始化solo变成在声明HoloTestRule的时候已经帮你做的,接下来只要get就ok了,另外使用holo替代solo,以便使用一些新的特性。
环境篇:
都是基于android studio的。
Build.gradle:
为了和发布版本区分,fake测试程序单独放在一个渠道包那里
当然,最后面签名文件的写法需要变更一下,否则spoon插件会读取不到(这是gradle的bug?)
用例篇:
和官方的结构一致,无区别,唯一的区别是使用HoloTestRule替换ActivityTestRule,不需要初始化solo,直接HoloTestRule.getHolo即可。
执行篇:
或者通过命令行gradlew spoonFakeAirDebugAndroidTest执行(命令你可以通过gradlew task看到)