應(yīng)用程序用戶界面的獲取方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用戶界面領(lǐng)域,具體而言,涉及一種應(yīng)用程序用戶界面的獲取方法和
目-Ο
【背景技術(shù)】
[0002]在國際化手機游戲客戶端測試中,需要對引用程序每個界面進(jìn)行用戶界面(UserInterface,簡稱UI)檢查,這項檢查需要人工進(jìn)行重復(fù)、繁瑣的操作,操作過程中容易造成場景遺漏。
[0003]目前,有一種使用robotium框架,在有源碼的情況下對應(yīng)用程序的界面進(jìn)行獲取,不過此種檢查方式必須人工指定測試路徑,并且無法對所有程序通用。在無源碼的情況下,目前已有的測試框架均只支持標(biāo)準(zhǔn)控件的檢測,對手機游戲這類以自繪控件為主的程序并不適用,使得現(xiàn)有的獲取用戶界面的方案的通用性較低。
[0004]針對相關(guān)技術(shù)中應(yīng)用程序用戶界面的獲取方案的通用性較低的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種應(yīng)用程序用戶界面的獲取方法和裝置,以至少解決現(xiàn)有技術(shù)中應(yīng)用程序用戶界面的獲取方案的通用性較低的技術(shù)問題。
[0006]根據(jù)本發(fā)明實施例的一個方面,提供了一種應(yīng)用程序用戶界面的獲取方法。
[0007]根據(jù)本發(fā)明實施例的應(yīng)用程序用戶界面的獲取方法包括:確定步驟:確定所述應(yīng)用程序的當(dāng)前界面,其中,所述當(dāng)前界面的起始界面為所述應(yīng)用程序的主界面;遍歷步驟:遍歷地將觸發(fā)指令下發(fā)至所述當(dāng)前界面上的每個目標(biāo)區(qū)域,直至所述當(dāng)前界面上的所述目標(biāo)區(qū)域均完成所述觸發(fā)指令指示的操作,其中,所述目標(biāo)區(qū)域為接收觸發(fā)指令以對所述當(dāng)前界面進(jìn)行操作的區(qū)域;獲取步驟:每下發(fā)所述觸發(fā)指令至一個所述目標(biāo)區(qū)域后,獲取一次所述觸發(fā)指令對所述當(dāng)前界面進(jìn)行操作后的子界面;對比步驟:對比所述子界面與所述子界面的父界面,以確定所述子界面的類型;第一返回步驟:在確定出所述子界面的類型為第一類型的情況下,返回所述遍歷步驟,其中,所述第一類型表示所述子界面為界面集中的任一界面,所述界面集為在獲取所述子界面之前獲取到的界面的集合;以及第二返回步驟:在確定出所述子界面的類型為第二類型的情況下,確定所述子界面為所述當(dāng)前界面,并返回所述遍歷步驟,其中,所述第二類型表示所述子界面與所述界面集中的任一界面均不相同。
[0008]根據(jù)本發(fā)明實施例的一個方面,提供了一種應(yīng)用程序用戶界面的獲取裝置。
[0009]根據(jù)本發(fā)明實施例的應(yīng)用程序用戶界面的獲取裝置包括:確定單元,用于確定所述應(yīng)用程序的當(dāng)前界面,其中,所述當(dāng)前界面的起始界面為所述應(yīng)用程序的主界面;遍歷單元,用于遍歷地將觸發(fā)指令下發(fā)至所述當(dāng)前界面上的每個目標(biāo)區(qū)域,直至所述當(dāng)前界面上的所述目標(biāo)區(qū)域均完成所述觸發(fā)指令指示的操作,其中,所述目標(biāo)區(qū)域為接收觸發(fā)指令以對所述當(dāng)前界面進(jìn)行操作的區(qū)域;獲取單元,用于每下發(fā)所述觸發(fā)指令至一個所述目標(biāo)區(qū)域后,獲取一次所述觸發(fā)指令對所述當(dāng)前界面進(jìn)行操作后的子界面;對比單元,用于對比所述子界面與所述子界面的父界面,以確定所述子界面的類型;第一返回單元,用于在確定出所述子界面的類型為第一類型的情況下,返回所述遍歷單元,其中,所述第一類型表示所述子界面為界面集中的任一界面,所述界面集為在獲取所述子界面之前獲取到的界面的集合;以及第二返回單元,用于在確定出所述子界面的類型為第二類型的情況下,確定所述子界面為所述當(dāng)前界面,并返回所述遍歷單元,其中,所述第二類型表示所述子界面與所述界面集中的任一界面均不相同。
[0010]在本發(fā)明實施例中,采用確定步驟:確定所述應(yīng)用程序的當(dāng)前界面,其中,所述當(dāng)前界面的起始界面為所述應(yīng)用程序的主界面;遍歷步驟:遍歷地將觸發(fā)指令下發(fā)至所述當(dāng)前界面上的每個目標(biāo)區(qū)域,直至所述當(dāng)前界面上的所述目標(biāo)區(qū)域均完成所述觸發(fā)指令指示的操作,其中,所述目標(biāo)區(qū)域為接收觸發(fā)指令以對所述當(dāng)前界面進(jìn)行操作的區(qū)域;獲取步驟:每下發(fā)所述觸發(fā)指令至一個所述目標(biāo)區(qū)域后,獲取一次所述觸發(fā)指令對所述當(dāng)前界面進(jìn)行操作后的子界面;對比步驟:對比所述子界面與所述子界面的父界面,以確定所述子界面的類型;第一返回步驟:在確定出所述子界面的類型為第一類型的情況下,返回所述遍歷步驟,其中,所述第一類型表示所述子界面為界面集中的任一界面,所述界面集為在獲取所述子界面之前獲取到的界面的集合;以及第二返回步驟:在確定出所述子界面的類型為第二類型的情況下,確定所述子界面為所述當(dāng)前界面,并返回所述遍歷步驟,其中,所述第二類型表示所述子界面與所述界面集中的任一界面均不相同。通過遍歷地將觸發(fā)指令下發(fā)至當(dāng)前界面上的每個目標(biāo)區(qū)域,實現(xiàn)了模擬人工對應(yīng)用程序界面上的控件進(jìn)行逐個點擊,并獲取點擊后的用戶界面,將得到的界面與已有界面進(jìn)行比較、排重、建立父子關(guān)系,逐步得到被測試應(yīng)用程序的UI樹,UI樹中的每個節(jié)點代表應(yīng)用程序的一個界面,實現(xiàn)了在遍歷下發(fā)觸發(fā)指令的過程中得到應(yīng)用程序的用戶界面。此種基于下發(fā)觸發(fā)指令至目標(biāo)區(qū)域的界面獲取方案,既不依賴源代碼,也不依賴標(biāo)準(zhǔn)控制,實現(xiàn)了在只有APK的情況下即可對應(yīng)用程序上的控件進(jìn)行操作,對所有應(yīng)用程序都具有通用性,解決了現(xiàn)有技術(shù)中應(yīng)用程序用戶界面的獲取方案的通用性較低的技術(shù)問題,進(jìn)而達(dá)到了提高用戶界面獲取方案的通用性的效果。
【附圖說明】
[0011]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0012]圖1是應(yīng)用本發(fā)明實施例的應(yīng)用程序用戶界面的獲取方法的硬件環(huán)境圖;
[0013]圖2是根據(jù)本發(fā)明實施例的應(yīng)用程序用戶界面的獲取方法的流程圖;
[0014]圖3是根據(jù)本發(fā)明優(yōu)選實施例的應(yīng)用程序用戶界面的獲取方法的流程圖;
[0015]圖4是根據(jù)本發(fā)明實施例的應(yīng)用程序用戶界面的獲取裝置的示意圖;
[0016]圖5是根據(jù)本發(fā)明優(yōu)選實施例的應(yīng)用程序用戶界面的獲取裝置的示意圖;以及
[0017]圖6是實施本發(fā)明實施例的應(yīng)用程序用戶界面的獲取方法的終端的示意圖。
【具體實施方式】
[0018]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
[0019]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0020]對本發(fā)明實施例中所涉及的技術(shù)術(shù)語做如下解釋:
[0021]U1:即 User Interface (用戶界面)的簡稱;
[0022]UiAutomator:JAVA類庫,包含一些自定義的UI功能測試,用以自動化和跑testcase的引擎;
[0023]APK:AndroidPackage 的縮寫,即 Android 安裝包。
[0024]實施例1
[0025]根據(jù)本發(fā)明實施例,提供了一種可以通過本申請裝置實施例執(zhí)行的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0026]根據(jù)本發(fā)明實施例,提供了一種應(yīng)用程序用戶界面的獲取方法。
[0027]可選地,在本實施例中,上述應(yīng)用程序用戶界面的獲取方法可以應(yīng)用于如圖1所示的手機終端102和測試終端104所構(gòu)成的硬件環(huán)境中。如圖1所示,手機終端102通過網(wǎng)絡(luò)或數(shù)據(jù)線與測試終端104進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng)。在本發(fā)明實施例中,應(yīng)用程序用戶界面的獲取方法以UiAutomator自動化測試框架為基礎(chǔ),手機終端102應(yīng)該是系統(tǒng)版本高于4.0的安卓手機。
[0028]圖2是根據(jù)本發(fā)明實施例的應(yīng)用程序用戶界面的獲取方法的流程圖,如圖2所示,該應(yīng)用程序用戶界面的獲取方法主要包括如下步驟S201至步驟S211:
[0029]S201(確定步驟):確定應(yīng)用程序的當(dāng)前界面,其中,當(dāng)前界面的起始界面為應(yīng)用程序的主界面,即,在對用戶界面進(jìn)行獲取檢查過程中,可以先設(shè)定安裝在手機終端102上的應(yīng)用程序的主界面為當(dāng)前界面的起始界面。
[0030]S203(遍歷步驟):遍歷地將觸發(fā)指令下發(fā)至當(dāng)前界面上的每個目標(biāo)區(qū)域,直至當(dāng)前界面上的目標(biāo)區(qū)域均完成觸發(fā)指令指示的操作,其中,目標(biāo)區(qū)域為接收觸發(fā)指令以對當(dāng)前界面進(jìn)行操作的區(qū)域,即,目標(biāo)區(qū)域為接收觸發(fā)指令對當(dāng)前界面進(jìn)行操作的區(qū)域,實質(zhì)上就是控件所在的區(qū)域,下發(fā)觸發(fā)指令至目標(biāo)區(qū)域即是對控制進(jìn)行點擊。
[0031]S205(獲取步驟):每下發(fā)觸