UI自动化
我们为什么要搞UI自动化
可能很多同学都有疑问:我们写了这么多单元测试,为什么还需要UI自动化测试呢?
按照测试金字塔理论,其实每种类型的测试都有自己的意义,UI自动化的意义就在于更贴近用户真实场景的校验,比如对于手机QQ来说,我们需要确保主流程的真实链路是通畅的,而单元测试和接口测试很难做到这一点。
我们需要多少用例
UI自动化的意义是验证用户主流程场景,所以UI自动化一定是最最核心的冒烟用例,针对UI自动化追求覆盖率是没有意义的。
我们在公司内部的实践表明:
- 对于增长型业务,这种业务产品变化快,重构需求多,那么代码类UI自动化建议占比5%—20%
- 对于稳定型业务,这类业务产品功能稳定,大改版需求少,那么代码类UI自动化建议占比10—30%
Android手机QQ的手工系统测试用例有7000多条,我们对这些用例优先级进行了排序,针对P0用例,再排除掉一些难以自动化的用例,定下了400余条的目标,约为6%。https://www.cnblogs.com/aishangJava/p/15180956.html
自动化框架
调研Android自动化框架
按照部门的要求,我们本次的自动化需要用到同源(同语言同工程)的形式,而且针对手Q很多复杂的场景,我们需要稳定复现,所以我们排除了QTA、Appium、AirTest等框架,最终选择了UiAutomator。
UiAutomator是Google官方提供的同源测试框架,它的底层使用了Android的系统级服务AccessibilityService,关于这一块的介绍,可以看文章:《从Android手机的抢红包插件说起 》
官方文档传送门: