滴滴开源工具集合--DoraemonKit (一)

665 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

每一个稍微有点规模的 App,总会自带一些线下的测试功能代码,比如环境切换功能、帧率查看功能等等,这些功能的切换入口往往放在各式各样的入口中,比如一些特殊的手势,双击 statusBar,双击某一个功能区块,或者新建一个 keyWindow 始终至于 App 最上方等等,而且每一个 App 里面的线下附带功能模块很多是相似的,比如帧率查看、内存和 CPU 监控等等,但是现在基本上都是每个 App 都是自己实现了一份,经历了以上的问题之后,DoraemonKit 就有了它存在的意义。

DoraemonKit 是一个功能平台,能够让每一个 App 快速接入一些常用的或者你没有实现的一些辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在 Doraemon 面板中接入你已经实现的与业务紧密耦合的一些非通有的辅助工具,并搭配我们的DoKit平台,让功能得到延伸,接入方便,便于扩展。

当然每个测试工具有其优点,也会有弊端,健康检测功能的测试数据会上传到DoKit平台,但平台及开发人员声明不会将上传数据用作他用。

简单总结

1.DoraemonKit 能够快速让你的业务测试代码能够在这里统一管理,统一收口。
2.DoraemonKit 内置很多常用的工具,避免重复实现,一次接入,你将会拥有强大的工具集合。
3.搭配DoKit平台,方便你进行数据mock以及记录你的每一次健康体检用例。
4.DoraemonKit支持iOS、Android、微信小程序以及Weex,目前iOS和Android支持的功能比较完善,小程序和Weex支持的功能还在不断完善,有比较完善的社区,可以通过QQ联系开发者QQ群号[617354402]。
5.iOS/Android/微信小程序/Weex接入之前,需要在DoKit平台上,创建项目;

功能模块介绍

一、平台工具

1.【数据Mock】App接口Mock解决方案,提供一套基于App网络拦截的接口Mock方案,无需修改代码即可完成对于接口数据的Mock;

2.【健康体检】整合DoKit多项工具,数据可视化,快速准确定位问题,让你对app的性能了如指掌,检测过程中每个界面停留10S;
示例:\

image.png

image.png 从上图中可以看出,健康体检功能,从启动耗时、帧率/卡顿、CPU、网络、UI层级、内存/内存泄漏、页面打开时长、大文件、子程序UI检查等几方面进行检测,通过DoKit平台查看检测详情。

二、常用工具

1.【应用设置】直接跳转到系统设置;

2.【App信息】快速查看手机信息,App 基础信息、签名相关、权限信息的渠道,避免去手机设置查找或者查看项目源代码的麻烦;

3.【沙盒浏览器】App 内部文件浏览的功能,支持删除和预览, 并且能通过 AirDrop 或者其他分享方式上传到 PC 中,进行更加细致的操作;

4.【定位模拟】App 能定位到全国各地,支持地图地位和手动输入经纬度;

5.【H5任意门】 可以快速输入 H5 页面地址,查看该页面效果,并支持扫描二维码功能;

6.【清理缓存】一键删除本地缓存的所有数据;

7.【NSLog】开启开关,会把所有 NSLog 信息打印到UI界面,避免没有开发证书无法调试的尴尬,并支持搜索功能;

8.【Lumberjack 】每一条 CocoaLumberjack 的日志信息,都在在 App 的界面中显示出来,再也不需要导出日志这么麻烦;(iOS独有)

三、性能检测

1.【帧率】App 帧率信息提供波形图查看功能,让帧率监控的趋势更加明显;

2.【CPU】App CPU 使用率信息提供波形图查看功能,让 CPU 监控的趋势更加形象;

3.【内存】 App 内存使用量信息提供波形图查看功能,让内存监控的趋势更加鲜明;

4.【网络】拦截 App 内部流量信息,提供波形图展示、流量概要展示、流量列表展示、流量筛选、流量详情,对流量信息统一拦截,成为我们 App 中自带的 “Charles”;

5.【Crash】方便本地打印出出现 Crash 的堆栈,测试同学出现闪退现象,不必复现,开发同学可根据Crash堆栈信息,修复问题;

6.【子线程UI】快速定位哪一些 UI 操作在非主线程中进行渲染,避免不必要的问题;

7.【卡顿】锁定 App 出现卡顿的时刻,打印出对应的代码调用堆栈,根据堆栈信息修复问题;

8.【大图检测】通过流量监测,找出所有的大小超标的图片,避免下载大图造成的流量浪费和渲染大图带来的CPU消耗;

9.【模拟弱网】限制网速,模拟真实弱网环境下App的运行情况,发现可能潜在的问题 ;

10.【启动耗时】无侵入的统计出App启动过程的总共耗时,根据耗时列表,进行优化;

11.【UI层级】 检查出每一个页面中层级最深的元素;

12.【耗时函数】从函数级别分析app性能瓶颈;

13.【Load耗时】找出所有的Load方法,并给出耗时分析;

14.【内存泄漏】找出App中所有的内存泄漏的问题;

四、视觉工具

1.【取色器】方便设计师 UI 捉虫的时候,查看每一个组件的颜色值是否设置正确;

2.【组件检查】可以抓取任意一个UI控件,查看它们的详细信息,包括控件名称、控件位置、背景色、字体颜色、字体大小;

3.【对齐标尺】实时捕获屏幕坐标,并且可以查看组件是否对齐;

4.【元素边框线】 绘制出每一个 UI 组件的边框,对于组件布局有一定的参考意义。