Robotium 基于 Robotium 的自动遍历方案 - 1.1.0 版本

Heyniu · 2017年02月26日 · 最后由 wixed 回复于 2017年02月28日 · 1736 次阅读

1.1.0 版本改进

  • 自动捕获崩溃信息
  • 加入守护进程
  • 日志方式改为读取 Logcat,减少 IO
  • 重构代码
  • 简化配置
  • 重启 Activity 时恢复之前状态
  • 添加支持 GPU 过渡渲染、过渡绘制截图(需手动开启,并在 adb 连接时生效)

  • 加入严苛模式

可选项:

  • 配合源码可加入代码覆盖率
  • 配合源码可加入 Leakcanary 内存泄露监控
  • 配合 Fiddler/Charles 可录制接口或监听数据等

守护进程工作原理图

严苛模式 StrictMode

检测项:

  • ThreadPolicy
    • detectCustomSlowCalls >> 自定义耗时操作
    • detectDiskReads >> 读磁盘
    • detectDiskWrites >> 写磁盘
    • detectNetwork >> 检查网络
    • detectResourceMismatches >> 检查资源类型是否匹配
  • VmPolicy
    • detectActivityLeaks >> 检测 Activity 的泄露
    • detectCleartextNetwork >> 检测明文的网络
    • detectFileUriExposure >> 检测 file://或者是 content://
    • detectLeakedClosableObjects >> 检查 Closable 对象
    • detectLeakedRegistrationObjects >> 检测需要注册类型是否解注
    • detectLeakedSqlLiteObjects >> 检测 sqlite 对象,如 cursors

检测到违规项会在日志中体现

注意事项:

  • 关于之前比较多童鞋都遇到环境问题,这里统一回复
    • IDE强烈建议使用IDEA Java,只需配置下 SDK 和签名
  • 关于详细的使用说明
    • 这个等我有空会整理一份出来
    • 如果还不会使用Robotium的朋友,请先找资料了解基本的使用
  • 自动遍历时的跨进程操作目前还是有些问题
    • 具体表现:去到相机、拨号盘等应用,有几率重启 Activity 失败
    • 目前做法:检测到当前 Activity 非被测 App 的 Activity 时重启,重启 Activity 失败达到 3 次后,则重启被测 App
    • 建议:如非必要,跨进程操作加入忽略列表(如点击相机时,相机的资源 ID)
  • 有用到 Robotium 写 UI 自动化用例的童鞋,配合自动遍历效果更佳
  • 强烈建议根据自己项目需求定制化自动遍历

Github

AutoClick

交流群

目前为止自动遍历最大的收货

  • 复现了一个线上长期存在,而手工又复现不了的崩溃

    • 崩溃信息
    Fragment IllegalStateException: Can not perform this action after onSaveInstance
    
  • 遍历出最多的崩溃类型依然是异步请求时更新 UI 导致的崩溃(UI 已经销毁,不应该更新 UI)

后续

待挖掘 Robotium 自动遍历的其他价值,欢迎提供想法和建议

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 12 条回复 时间 点赞
Heyniu 回复

Heyniu #10 · 2017年02月28日 Author
simple 回复

你的 app 不会是纯原生那种简单的吧,哈哈
没登录的话填空就好了

赞👍,我都弄完了,也没遍历起来,应该是我的 app 太简单的缘故,建议楼主把登录操作单独封装起来,真的不是每个 app 都要登录

—— 来自 TesterHome 官方 安卓客户端

wixed 回复

你实践一下就知道了

楼主我想问一下,注入点击和 accessibilityNodeInfo.performAction(accessibilityNodeInfo.CLICK_ACTION) 使用时的场景区别,我个人认为是 accessibilityNodeInfo 的点击适用于控件点击。注入点击适用于控件的 clickable = false 时 。不知道我的理解对不对

lsy 回复

power 分支哦

qq 申请入群了

—— 来自 TesterHome 官方 安卓客户端

代码库已经更新了最新的吗?下载的感觉没变化哟

abc123 回复

反正也是闲着

放假了还这么给力。。不用休息呀

lsy 回复

好快

第一个占位,给个赞,待更大评价。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册