基于junit4+Robotium+spoon+as二次开发自动化框架,支持失败重试和失败截图

本文介绍了如何基于junit4、Robotium、spoon和Android Studio进行二次开发,构建一个支持云测和本地测试的自动化框架。该框架具备失败重试、失败截图等功能,适用于多设备并发运行和生成可视化报告。同时,文章探讨了框架的实现原理,包括HoloTestRule、HoloRunner等,并指出了存在的问题和改进方向。
摘要由CSDN通过智能技术生成

背景:

对于一个硬件连接项目,底层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看到)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值