溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

開源項目 -- HierarchyViewer for iOS(1)

發(fā)布時間:2020-06-07 19:25:02 來源:網(wǎng)絡 閱讀:531 作者:知平軟件 欄目:移動開發(fā)

我們知道,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(1)

 

我們接下來就來詳細介紹該工具。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日志,或者在工具欄中點擊開源項目 -- HierarchyViewer for iOS(1),打開文件選擇對話框,選擇一個Automation Results.plist文件即可。

開源項目 -- HierarchyViewer for iOS(1)

 

Instruments錄制時使用HierarchyViewer for iOS

我們推薦在錄制時使用HierarchyViewer for iOS來輔助錄制,步驟如下:

1)在用Instruments錄制腳本時,在需要獲取控件樹信息的位置插入如下代碼:

target.logElementTree()

這樣,在日志中將把此時的控件樹打印出來。注意,必須從根節(jié)點,也就是UIATarget開始打印HierarchyViewer for iOS才能識別。

 

2 ) 點擊Record按鈕,執(zhí)行腳本

開源項目 -- HierarchyViewer for iOS(1)

 

3)把日志導出。 點擊Export Traced Results,把日志導出到文件夾。

開源項目 -- HierarchyViewer for iOS(1)

 

4)在HierarchyViewer for iOS中打開剛剛保存的日志。你就可以看到“target.logElementTree()”執(zhí)行生成的控件樹了。

 

5)重復步驟1)-3),把日志導出到相同的目錄。這時,只要在HierarchyViewer for iOS中點擊“刷新plist日志”,即可獲得最新的日志。

開源項目 -- HierarchyViewer for iOS(1)

 

 

 

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é)點的所有屬性。當然,在截屏視圖中選中某個控件時,其他視圖也會做出同樣的響應。

開源項目 -- HierarchyViewer for iOS(1)

 

3,當鼠標在截屏視圖上移動時,我們會為你顯示該點對應的坐標值,該坐標值是iOS系統(tǒng)的標準坐標值:

開源項目 -- HierarchyViewer for iOS(1)

 

2,保存層次結(jié)構(gòu)圖

在菜單欄中選擇保存控件樹視圖,或者在工具欄中點擊開源項目 -- HierarchyViewer for iOS(1),可以把控件樹保存為圖片。

開源項目 -- HierarchyViewer for iOS(1)

 

 

3,生成javascript調(diào)用路徑

在層次結(jié)構(gòu)視圖或者截屏視圖中選中一個節(jié)點/控件,點擊右鍵,會彈出如下菜單欄:

開源項目 -- HierarchyViewer for iOS(1)       開源項目 -- HierarchyViewer for iOS(1) 

 

點擊菜單項,將生成該節(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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI