基于Robotium的自动遍历方案
-
可跨应用
- 补上Robotium不支持跨应用的短板
- 自动遍历时不会有具体的跨应用操作,唯一出现的地方在Android 6.0以上版本启动应用时的授权操作(可能存在兼容性问题)
- 跨应用应用在单独写用例时
- 跨应用详情
-
多种模式
- 快速模式:只启动Activity,快速检测崩溃问题(如兼容性、混淆、代码问题导致的崩溃),一般几分钟可完成。依赖于Params.json文件,该文件可由录制模式产生。
- 迭代模式:启动Activity并点击每个View。依赖于Params.json文件,该文件可由录制模式产生。
- 爬虫模式:通过迭代主页并记录新开Activity,迭代完毕后读取新开Activity,循环往复,直至无新的Activity。
- 录制模式:需人工操作应用,记录每个新开的Activity,供快速模式、迭代模式使用。录制模式可在功能测试阶段使用,录制模式默认休眠1个小时,期间操作应用打开的Activity都将被记录下来。
-
智能输入
- 根据输入框支持的输入类型和最大长度进行输入
- 支持手机号、邮箱、普通文本等类型
-
红点标记
- 将要被点击的View会以红点标记保存为截图
- 如果发现截图没有红点或者红点位置明显错误时,不用惊讶,那一定是隐藏的View被点击了
- 没有红点:隐藏的View坐标不在屏幕范围
- 红点标记错误:点击到被遮挡的View,通常发生在ViewPager布局
-
无惧遮挡
- 被遮挡的View也可以点击到,因此无需滑动操作。
- 举例:列表一次性加载10条数据,屏幕只显示了5条,剩下5条没有显示的也可以点击到。
-
完全遍历
- 应用所有Activity都可以遍历到,360°无死角。
- 快速模式、迭代模式覆盖度最高可达100%,通过爬虫模式 + 录制模式组合产生的Params.json文件,或单独录制模式产生的Params.json文件。
- 爬虫模式亦可达到很高的覆盖度,不同应用覆盖度不一致,依赖Activity关联度。
- 提高爬虫模式覆盖度的方法:采用划分模块的方法,比如主页模块、个人模块等等
-
一触即达
- 只需一步就能打开应用内任何Activity
- 举例:在已经登录的情况下,想去到登录页面,一般可能的做法是在主页点击我,去到个人中心,个人中心滑动到最底部,点击退出登录,来到登录页面。一触即达只要知道登录页面的名称、启动参数就能直接打开登录页面。
-
可复现性
- 在数据相对不变的情况下,遍历Activity中View的顺序是一致的,因此具备一定的复现可能性,可理解为Monkey中的种子
-
多重跟踪
- 多重跟踪能在出现崩溃的情况下,更好的定位、复现、分析问题。
- 截图跟踪:每个点击操作都将被记录,根据截图顺序可知进行了何等操作
- 日志跟踪:崩溃日志抓取,供研发使用
- 接口跟踪:配合Fiddler等抓包工具,可知发生崩溃时请求了哪些接口,从而更好的定位问题
- 元素跟踪:点击的View信息以操作日志形式记录在SD card,包含包名、类名、资源ID、屏幕位置、文本等等信息
-
支持Hybrid
- 除了支持Native遍历,亦支持Hybrid