您好,登錄后才能下訂單哦!
我們知道,HierarchyViewer是Android SDK包中非常好用的工具。開發(fā)及測試人員,即使沒有應用程序的源代碼,也可以獲取Activity的控件層次圖,以及每個控件的所有屬性和截圖。那么,iOS下有沒有類似的工具呢?現(xiàn)在,答案是肯定的。
HierarchyViewer for iOS是我們開發(fā)的一個開源工具,采用GPL v3協(xié)議。該項目基于eclipse RCP構(gòu)架,支持Mac OS X,Windows和Liunx三個平臺。項目借鑒了部分Android項目源代碼。下面是HierarchyViewer for iOS在Mac OS X的截圖:
我們接下來就來詳細介紹該工具。HierarchyViewer for iOS的數(shù)據(jù)源是Instruments錄制和執(zhí)行javascript腳本時生成的日志文件--包括Automation Results.plist及截圖。HierarchyViewer for iOS不僅可以用來直觀地查看測試用例結(jié)果日志中的控件樹。還可以用它來輔助進行Instruments下的iOS腳本錄制,相信可以為測試人員帶來極大的便利。那么,我們先來介紹如何用HierarchyViewer for iOS的用法,然后再來介紹它的主要功能。
HierarchyViewer for iOS使用方法介紹
HierarchyViewer for iOS的使用非常簡便,打開菜單 文件->打開plist日志,或者在工具欄中點擊,打開文件選擇對話框,選擇一個Automation Results.plist文件即可。
Instruments錄制時使用HierarchyViewer for iOS
我們推薦在錄制時使用HierarchyViewer for iOS來輔助錄制,步驟如下:
1)在用Instruments錄制腳本時,在需要獲取控件樹信息的位置插入如下代碼:
target.logElementTree()
這樣,在日志中將把此時的控件樹打印出來。注意,必須從根節(jié)點,也就是UIATarget開始打印HierarchyViewer for iOS才能識別。
2 ) 點擊Record按鈕,執(zhí)行腳本
3)把日志導出。 點擊Export Traced Results,把日志導出到文件夾。
4)在HierarchyViewer for iOS中打開剛剛保存的日志。你就可以看到“target.logElementTree()”執(zhí)行生成的控件樹了。
5)重復步驟1)-3),把日志導出到相同的目錄。這時,只要在HierarchyViewer for iOS中點擊“刷新plist日志”,即可獲得最新的日志。
HierarchyViewer for iOS功能介紹
HierarchyViewer for iOS界面主要包含5個視圖,分別是:
控件樹列表視圖
控件樹視圖
控件樹縮略圖
截屏視圖
屬性視圖
1,如何操作視圖
控件樹列表視圖中列出了Automation Results.plist中包含的所有控件樹,如果有列表項的名字是“UIATarget- name-iPhone Simulator rect-{{0,0},{320,480}} 4”,那么在日志文件夾中你可以找到一個同名的.png的截屏圖片,和同名的文件夾保存了各個控件的截圖。 列表項被選中時,控件樹視圖、控件樹縮略圖和截屏視圖會立刻打開并顯示選中的控件樹的視圖。
當控件樹列表視圖項被選中后,控件樹視圖、控件樹縮略圖、截屏視圖和屬性視圖將被激活,我們簡單介紹下他們是怎么工作的。
1,前后滾動鼠標滾輪,可以放大或縮小控件樹視圖;按住控件樹視圖的空白區(qū)域,可以拖動整個控件樹??丶淇s略圖也會隨之變化。
2,在控件樹選中某個節(jié)點/控件時,縮略圖和截屏視圖對應的節(jié)點/控件也會被選中,屬性視圖中會顯示該節(jié)點的所有屬性。當然,在截屏視圖中選中某個控件時,其他視圖也會做出同樣的響應。
3,當鼠標在截屏視圖上移動時,我們會為你顯示該點對應的坐標值,該坐標值是iOS系統(tǒng)的標準坐標值:
2,保存層次結(jié)構(gòu)圖
在菜單欄中選擇保存控件樹視圖,或者在工具欄中點擊,可以把控件樹保存為圖片。
3,生成javascript調(diào)用路徑
在層次結(jié)構(gòu)視圖或者截屏視圖中選中一個節(jié)點/控件,點擊右鍵,會彈出如下菜單欄:
點擊菜單項,將生成該節(jié)點的調(diào)用路徑,并保存在剪貼板,例如
拷貝函數(shù)調(diào)用路徑(索引):生成基于控件索引的函數(shù)調(diào)用路徑并保存在剪貼板,如
target.frontMostApp().windows()[0].tableViews()[0].groups()[2].elements()[0]
拷貝函數(shù)調(diào)用路徑(控件名):生成基于控件名的函數(shù)調(diào)用路徑并保存在剪貼板,如
target.frontMostApp().windows()[0].tableViews("Empty list").groups("Advanced Options").elements("Advanced Options")
這樣,把生成的控件調(diào)用路徑拷貝到Instruments的腳本中,你就可以直接調(diào)用該控件的操作了,而不需要重新再錄制一遍。很酷吧。
下節(jié)展望
在寫自動化測試用例時,一個重要的問題就是對動態(tài)控件的查找和操作。 想過用jquery的語法來查找iOS控件嗎? 我們正在開發(fā)一個叫做iquery的開源項目(猜猜它是做什么的)。事實上,HierarchyViewer for 有些功能就是輔助編寫iquery的,下一節(jié),我們將介紹怎么使用HierarchyViewer for iOS來輔助編寫iquery。請保持關注吧。
Github地址:https://github.com/vowei/HierarchyViewer-4-iOS
程序下載地址:https://github.com/vowei/HierarchyViewer-4-iOS/downloads
項目官方地址: www.vowei.com
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。