Skip to content

ajbone/AutoClick

 
 

Repository files navigation

AutoClick

基于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

更多信息详见

传送门

About

基于Robotium的自动遍历方案

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%