我们知道,HierarchyViewer是Android SDK包中非常好用的工具。开发及测试人员,即使没有应用程序的源代码,也可以获取Activity的控件层次图,以及每个控件的所有属性和截图。那么,iOS下有没有类似的工具呢?现在,答案是肯定的。
HierarchyViewer for iOS是我们开发的一个开源工具,采用×××协议。该项目基于eclipse RCP构架,支持Mac OS X,Windows和Liunx三个平台,下面是HierarchyViewer for iOS在Mac OS X的截图:
看起来是不是很酷? 那么我们接下来就来详细介绍该工具。HierarchyViewer for iOS的数据源是Instruments录制和执行javascript脚本时生成的日志文件--包括Automation Results.plist及截图。我们没有把它做成Android平台上那样实时获取控件树的方式(事实上,那是可以做到的),因为iOS的封闭性,那么做的话需要向应用中注入代码,这样的话使用起来限制太多又很繁琐了。
你或许把HierarchyViewer for iOS看作javascripts自动化测试用例运行结果日志的阅读工具,但是,事实上它可以做的比这多得多,用它来辅助进行Instruments下的iOS脚本录制,相信可以为测试人员带来极大的便利。那么,我们先来介绍HierarchyViewer for iOS的主要功能,然后再来介绍如何用它的用法。
HierarchyViewer for iOS功能介绍
HierarchyViewer for iOS界面包含5个视图,分别是:
控件树列表视图
控件树视图
控件树缩略图
截屏视图
属性视图
操作视图
控件树列表视图中列出了Automation Results.plist中包含的所有控件树,如果有列表项的名字是“UIATarget- name-iPhone Simulator rect-{
{0,0},{320,480}} 4”,那么在日志文件夹中你可以找到一个同名的.png的截屏图片,和同名的文件夹保存了各个控件的截图。 列表项被选中时,控件树视图、控件树缩略图和截屏视图会立刻打开并显示选中的控件树的视图。
如果你用过Android的HierarchyViewer,你对HierarchyViewer for iOS的其他几个视图不会陌生,我并不打算浪费太多时间,但是我们这里还是需要简单介绍一下他们是如何工作的。
1,前后滚动鼠标滚轮,可以放大或缩小控件树视图;按住控件树视图的空白区域,可以拖动整个控件树。控件树缩略图也会随之变化。
2,在控件树选中某个节点/控件时,缩略图和截屏视图对应的节点/控件也会被选中,属性视图中会显示该节点的所有属性。当然,在截屏视图中选中某个控件时,其他视图也会做出同样的响应。
【截图】
3,当鼠标在截屏视图上移动时,我们会为你显示该点对应的坐标值,该坐标值是iOS系统的标准坐标值:
【截图】
保存层次结构图
在菜单栏中选择保存控件树视图,或者在工具栏中点击【截图】小图标,可以把控件树保存为图片。
生成javascript调用路径