一種安卓應(yīng)用ui控件精準(zhǔn)遍歷方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法和一種安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置。
【背景技術(shù)】
[0002]隨著智能手機的發(fā)展,出現(xiàn)了多種支持智能手機的系統(tǒng)。比如Android(安卓)系統(tǒng)。Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于手機等移動終端。Android平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。
[0003]隨著Android系統(tǒng)的市場占有率的增加,越來越多的開發(fā)者基于Android系統(tǒng)開發(fā)APP(Applicat1n,應(yīng)用),使用戶使用Android手機更方便。對于開發(fā)者而言,在將一個應(yīng)用提供給用戶使用之前,需要測試應(yīng)用中各UKUser Interface,用戶界面)控件的性能,以保證應(yīng)用的性能良好,因此,在測試過程中需要對每個UI控件都測試到,即實現(xiàn)對UI控件的遍歷。
[0004]目前已有的遍歷技術(shù)都是基于Android系統(tǒng)提供的測試工具,如Instrumentat1n進行實現(xiàn),首先需要對被測應(yīng)用進行預(yù)處理,主要內(nèi)容就是生成一個針對被測應(yīng)用的測試應(yīng)用,再使用同一簽名將測試應(yīng)用和被測試應(yīng)用進行簽名,然后將被測試應(yīng)用和測試應(yīng)用都安裝到手機上,然后利用Android Instrumentat1n的啟動方式啟動測試。但是上述的方法必須先獲取到被測軟件的安裝文件并進行預(yù)處理,操作繁瑣,對于手機已經(jīng)裝好的應(yīng)用則無法實現(xiàn)遍歷操作,適用性不強,對UI界面是隨機無序點擊,對功能的檢測能力較弱,而且不能進行測試策略設(shè)置,導(dǎo)致用戶主動干預(yù)程度較低。
【發(fā)明內(nèi)容】
[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法和相應(yīng)的安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置。
[0006]依據(jù)本發(fā)明的一個方面,提供了一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法,包括:
[0007]由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動后,獲取Activity桟頂?shù)腁ctivity對象的Activity 名稱;
[0008]根據(jù)所述Activity名稱,從策略庫中獲取對應(yīng)所述Activity的點擊條件策略;
[0009]根據(jù)所述點擊條件策略,對所述Activity對象中的各UI控件進行點擊操作;
[0010]根據(jù)所述點擊操作記錄測試結(jié)果并輸出。
[0011]優(yōu)選地,所述點擊條件策略包括:
[0012]禁止測試的UI控件、允許點擊的UI控件。
[0013]優(yōu)選地,所述點擊條件策略包括:遞歸點擊策略;
[0014I進一步的,所述根據(jù)所述點擊條件策略,對所述Activity對象中的各UI控件進行點擊操作的步驟,包括:
[00?5]根據(jù)所述遞歸點擊策略,判斷當(dāng)前Activity對象的各UI控件,以及當(dāng)前Activity對象的下面各級Ac t i V i ty對象的各UI控件是否被點擊完畢;
[0016]如果點擊完畢,則觸發(fā)當(dāng)前Activity對象的上一級Activity對象到Activity桟頂;
[0017]如果未點擊完畢,則對還未點擊的UI控件進行點擊操作。
[0018]優(yōu)選地,在由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動之前,還包括:
[0019]在系統(tǒng)啟動時,將系統(tǒng)自帶的初始孵化進程替換為預(yù)定的第一孵化進程;
[0020]通過所述第一孵化進程啟動所述測試進程并加載所述策略庫。
[0021]優(yōu)選地,所述根據(jù)所述Activity名稱,從策略庫中獲取對應(yīng)所述Activity的點擊條件策略的步驟,包括:
[0022]根據(jù)目標(biāo)應(yīng)用的應(yīng)用進程名稱,確定策略庫中對應(yīng)所述目標(biāo)應(yīng)用的各點擊條件策略。
[0023]優(yōu)選地,在由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動之前,還包括:
[0024]通過UI Automator工具獲取目標(biāo)應(yīng)用程序的各Activity對象及其UI控件的快照;
[0025]基于每個Activity對象及其UI控件的快照,為各個Activity對象配置點擊條件策略;
[0026]以目標(biāo)應(yīng)用的應(yīng)用進程名稱將各Activity對象的條件策略存入策略庫。
[0027]根據(jù)本發(fā)明的另一方面,提供了一種安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置,包括:
[0028]Activity名稱獲取模塊,適于由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動后,獲取Acti vity 桟頂?shù)?Acti vity 對象的 Acti vity 名稱;
[0029]點擊條件策略獲取模塊,適于根據(jù)所述Activity名稱,從策略庫中獲取對應(yīng)所述Activity的點擊條件策略;
[0030]點擊操作執(zhí)行模塊,適于根據(jù)所述點擊條件策略,對所述Activity對象中的各UI控件進行點擊操作;
[0031 ]測試結(jié)果輸出模塊,適于根據(jù)所述點擊操作記錄測試結(jié)果并輸出。
[0032]優(yōu)選地,所述點擊條件策略包括:
[0033]禁止測試的UI控件、允許點擊的UI控件。
[0034]優(yōu)選地,所述點擊條件策略包括:遞歸點擊策略;
[0035]進一步的,所述點擊操作執(zhí)行模塊,包括:
[0036]判斷子模塊,適于根據(jù)所述遞歸點擊策略,判斷當(dāng)前Activity對象的各UI控件,以及當(dāng)前Activity對象的下面各級Activity對象的各UI控件是否被點擊完畢;如果點擊完畢,則進入觸發(fā)子模塊;如果未點擊完畢,則進入點擊操作執(zhí)行子模塊;
[0037]觸發(fā)子模塊,適于觸發(fā)當(dāng)前Activity對象的上一級Activity對象到Activity桟頂;
[0038]點擊操作執(zhí)行子模塊,適于對還未點擊的UI控件進行點擊操作。
[0039]優(yōu)選地,在Activity名稱獲取模塊之前,還包括:
[0040]孵化進程替換模塊,適于在系統(tǒng)啟動時,將系統(tǒng)自帶的初始孵化進程替換為預(yù)定的第一孵化進程;
[0041]啟動加載模塊,適于通過所述第一孵化進程啟動所述測試進程并加載所述策略庫。
[0042]優(yōu)選地,所述點擊條件策略獲取模塊,包括:
[0043]點擊條件策略確定子模塊,適于根據(jù)目標(biāo)應(yīng)用的應(yīng)用進程名稱,確定策略庫中對應(yīng)所述目標(biāo)應(yīng)用的各點擊條件策略。
[0044]優(yōu)選地,在Activity名稱獲取模塊之前,還包括:
[0045]快照獲取模塊,適于通過UI Automator工具獲取目標(biāo)應(yīng)用程序的各Activity對象及其UI控件的快照;
[0046]點擊條件策略配置模塊,適于基于每個Activity對象及其UI控件的快照,為各個Activity對象配置點擊條件策略;
[0047]條件策略存入模塊,適于以目標(biāo)應(yīng)用的應(yīng)用進程名稱將各Activity對象的條件策略存入策略庫。
[0048]根據(jù)本發(fā)明的另一方面,提供了一種安卓目標(biāo)應(yīng)用崩潰統(tǒng)計設(shè)備,包括:
[0049]存儲器,加載有多條可執(zhí)行指令;
[0050]處理器,執(zhí)行所述多條可執(zhí)行指令;所述多條可執(zhí)行指令包括執(zhí)行以下步驟的方法:
[0051]由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動后,獲取Activity桟頂?shù)腁ctivity對象的Activity 名稱;
[0052]根據(jù)所述Activity名稱,從策略庫中獲取對應(yīng)所述Activity的點擊條件策略;
[0053]根據(jù)所述點擊條件策略,對所述Activity對象中的各UI控件進行點擊操作;
[0054]根據(jù)所述點擊操作記錄測試結(jié)果并輸出。
[0055]根據(jù)本發(fā)明的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法可以由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動后,獲取Activity桟頂?shù)腁cti vity對象的Activity名稱,根據(jù)所述Acti vity名稱,從策略庫中獲取對應(yīng)所述Activity的點擊條件策略,根據(jù)所述點擊條件策略,對所述Activity對象中的各UI控件進行點擊操作,根據(jù)所述點擊操作記錄測試結(jié)果并輸出。由此解決了必須先獲取到被測軟件的安裝文件并進行預(yù)處理,操作繁瑣,對于手機已經(jīng)裝好的應(yīng)用則無法實現(xiàn)遍歷操作,適用性不強,對UI界面是隨機無序點擊,對功能的檢測能力較弱,而且不能進行測試策略設(shè)置,導(dǎo)致用戶主動干預(yù)程度較低,取得了可以對Android系統(tǒng)中全部應(yīng)用進行遍歷操作,提高了適用性,同時可以人工預(yù)置對UI界面的點擊方案,提高了人工干預(yù)程度且功能檢測能力的有益效果。
[0056]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0057]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0058]圖1示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法實施例的步驟流程圖;
[0059]圖2示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法實施例的步驟流程圖;
[0060]圖3示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法實施例的步驟流程圖;
[0061]圖4示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置實施例的結(jié)構(gòu)框圖;
[0062]圖5示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置實施例的結(jié)構(gòu)框圖;
[0063]圖6示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷裝置實施例的結(jié)構(gòu)框圖;及
[0064]圖7示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷設(shè)備實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0065]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0066]實施例一
[0067]參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種安卓應(yīng)用UI控件精準(zhǔn)遍歷方法實施例的步驟流程圖,具體可以包括如下步驟:
[0068]步驟110,由測試進程在監(jiān)控到目標(biāo)應(yīng)用啟動后,獲取Activity桟