一種基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法及終端設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及應(yīng)用程序測(cè)試領(lǐng)域,更具體地說(shuō),涉及一種基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法及終端設(shè)備。
【背景技術(shù)】
[0002]軟件開(kāi)發(fā)人員需獲取應(yīng)用程序AUT (Applicat1n Under Test)界面下的控件,通過(guò)控件對(duì)應(yīng)用程序進(jìn)行測(cè)試。由于安卓系統(tǒng)的權(quán)限控制嚴(yán)格,不同程序之間的數(shù)據(jù)訪問(wèn)只能通過(guò)Intent、Content Provider等類(lèi)似的功能實(shí)現(xiàn)。故對(duì)于軟件開(kāi)發(fā)者而言,運(yùn)行在安卓系統(tǒng)下的應(yīng)用程序的AUT(Applicat1n Under Test)界面下的控件獲取極為困難,使得基于安卓系統(tǒng)的應(yīng)用程序調(diào)試工作無(wú)法有效進(jìn)行。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問(wèn)題在于針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法及終端設(shè)備。
[0004]本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:構(gòu)建一種基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法,包括以下步驟;
[0005]S1、應(yīng)用程序控件處理模塊在接收到由應(yīng)用程序仿真測(cè)試模塊提交的應(yīng)用程序控件坐標(biāo)獲取請(qǐng)求時(shí),向應(yīng)用程序控件管理模塊請(qǐng)求獲取該款應(yīng)用程序的控件樹(shù),對(duì)獲取到的該款應(yīng)用程序的控件樹(shù)進(jìn)行解析,并將解析所得的該款應(yīng)用程序的控件坐標(biāo)信息傳回應(yīng)用程序仿真測(cè)試模塊;
[0006]S2、應(yīng)用程序仿真測(cè)試模塊基于該款應(yīng)用程序的控件坐標(biāo)信息并結(jié)合其預(yù)存的該款應(yīng)用程序的控件路徑信息對(duì)該款應(yīng)用程序進(jìn)行仿真測(cè)試。
[0007]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,在所述步驟SI之前還包括如下步驟:
[0008]S0、開(kāi)啟應(yīng)用程序控件樹(shù)獲取模塊,并在應(yīng)用程序控件樹(shù)獲取模塊與應(yīng)用程序仿真測(cè)試模塊之間建立通信。
[0009]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟SI中所述向應(yīng)用程序控件管理模塊請(qǐng)求獲取該應(yīng)用程序的控件樹(shù)的步驟包括:
[0010]S11、搜索當(dāng)前運(yùn)行的所有應(yīng)用程序,基于該當(dāng)前運(yùn)行的所有應(yīng)用程序的基本信息構(gòu)建應(yīng)用程序信息列表;
[0011]S12、查找該應(yīng)用程序信息列表中的該款應(yīng)用程序的基本信息,提取該應(yīng)款用程序基本信息中的哈希值,根據(jù)該哈希值生成應(yīng)用程序控件樹(shù)獲取請(qǐng)求,并向應(yīng)用程序控件管理模塊提交該應(yīng)用程序控件樹(shù)獲取請(qǐng)求;
[0012]S13、應(yīng)用程序控件管理模塊接收到該應(yīng)用程序控件樹(shù)獲取請(qǐng)求時(shí),查找與該應(yīng)用程序控件樹(shù)獲取請(qǐng)求中的哈希值對(duì)應(yīng)且正在運(yùn)行的應(yīng)用程序,獲取該款應(yīng)用程序的控件樹(shù)并將該款應(yīng)用程序的控件樹(shù)返回應(yīng)用程序控件處理模塊。
[0013]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S2中所述應(yīng)用程序仿真測(cè)試模塊基于接收到的該款應(yīng)用程序的控件坐標(biāo)信息并結(jié)合預(yù)存的該款應(yīng)用程序的控件路徑信息對(duì)該款應(yīng)用程序執(zhí)行仿真測(cè)試的步驟包括:
[0014]S21、應(yīng)用程序仿真測(cè)試模塊讀取預(yù)存的用于反映該款應(yīng)用程序控件樹(shù)分布狀況的控件路徑信息,通過(guò)仿真點(diǎn)擊或仿真滑動(dòng)的操作方式對(duì)該控件路徑信息中的各條控件路徑一一進(jìn)行遍歷,直至該控件路徑信息中的所有控件路徑均遍歷完畢。
[0015]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S21中所述通過(guò)仿真點(diǎn)擊操作方式對(duì)該控件路徑信息中的各條控件路徑一一進(jìn)行遍歷的步驟包括:
[0016]S211a、進(jìn)入該款應(yīng)用程序仿真測(cè)試界面,從該款應(yīng)用程序控件路徑信息所包含的多條控件路徑中隨機(jī)選擇一條控件路徑,以及從傳回的應(yīng)用程序控件坐標(biāo)信息中查找該條控件路徑下的各個(gè)控件的坐標(biāo)信息;
[0017]S212a、構(gòu)建控件點(diǎn)擊事件,依照該條控件路徑對(duì)該條控件路徑下的各個(gè)控件依次進(jìn)行仿真點(diǎn)擊;
[0018]S213a、判斷該條控件路徑是否遍歷完畢,以及判斷該控件路徑信息中的所有控件路徑是否均已遍歷完畢;如該條控件路徑遍歷完畢,則跳回步驟S211 ;如該控件路徑信息中的所有控件路徑均已遍歷完畢,則執(zhí)行下一步驟S214a ;
[0019]S214a、停止該款應(yīng)用程序的調(diào)試工作,退出該應(yīng)用程序仿真測(cè)試界面,并彈出表示程序調(diào)試獲得通過(guò)的程序調(diào)試結(jié)果。
[0020]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S212a還包括:如對(duì)該控件路徑信息中的任意一條控件路徑的遍歷執(zhí)行失敗,則在顯示屏上彈出表示程序調(diào)試失敗的程序調(diào)試結(jié)果。
[0021]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S21中所述通過(guò)仿真滑動(dòng)操作方式對(duì)該控件路徑信息中的各條控件路徑逐一進(jìn)行遍歷的步驟包括:
[0022]S211b、進(jìn)入該款應(yīng)用程序仿真測(cè)試界面,從該款應(yīng)用程序控件路徑信息所包含的多條控件路徑中隨機(jī)選擇一條控件路徑,以及從傳回的應(yīng)用程序控件坐標(biāo)信息中查找該條控件路徑下的各個(gè)控件的坐標(biāo)信息;
[0023]S212b、構(gòu)建控件滑動(dòng)事件,依照該條控件路徑對(duì)該條控件路徑下的各個(gè)控件依次進(jìn)行仿真滑動(dòng);
[0024]S213b、判斷該條控件路徑是否遍歷完畢,以及判斷該控件路徑信息中的所有控件路徑是否均已遍歷完畢;如該條控件路徑遍歷完畢,則跳回步驟S211b,如該控件路徑信息中的所有控件路徑均已遍歷完畢,則執(zhí)行下一步驟S214b ;
[0025]S214b、停止該款應(yīng)用程序的調(diào)試工作,退出該應(yīng)用程序仿真測(cè)試界面,并在顯示屏上彈出表示程序調(diào)試獲得通過(guò)的程序調(diào)試結(jié)果。
[0026]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S212b還包括:如對(duì)該控件路徑信息中的任意一條控件路徑的遍歷執(zhí)行失敗,則在顯示屏上彈出表示程序調(diào)試失敗的程序調(diào)試結(jié)果。
[0027]在本發(fā)明上述基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法中,所述步驟S2還包括如下步驟:
[0028]S22、進(jìn)入該款應(yīng)用程序仿真測(cè)試環(huán)節(jié)時(shí),如檢測(cè)到包含有輸入框的應(yīng)用程序仿真測(cè)試頁(yè)面,則查找與該輸入框?qū)?yīng)的配置信息,將該配置信息載入該輸入框以使終端設(shè)備跳過(guò)該當(dāng)前的應(yīng)用程序仿真測(cè)試頁(yè)面并進(jìn)入下一個(gè)應(yīng)用程序仿真測(cè)試頁(yè)面。
[0029]本發(fā)明還構(gòu)造一種基于安卓系統(tǒng)的終端設(shè)備,所述終端設(shè)備包括應(yīng)用程序控件管理模塊、與所述應(yīng)用程序控件管理模塊建立通信的應(yīng)用程序控件處理模塊、以及與所述應(yīng)用程序控件處理模塊建立通信的應(yīng)用程序仿真測(cè)試模塊;
[0030]所述應(yīng)用程序仿真測(cè)試模塊用于根據(jù)用戶輸入信息生成應(yīng)用程序控件坐標(biāo)獲取請(qǐng)求,并向所述應(yīng)用程序控件處理模塊提交該款應(yīng)用程序控件坐標(biāo)獲取請(qǐng)求;
[0031]所述應(yīng)用程序控件處理模塊用于接收到該款應(yīng)用程序控件坐標(biāo)獲取請(qǐng)求時(shí)向所述應(yīng)用程序控件管理模塊請(qǐng)求獲取該款應(yīng)用程序的控件樹(shù),對(duì)獲取的該款應(yīng)用程序控件樹(shù)進(jìn)行解析,并將解析到的該款應(yīng)用程序的控件坐標(biāo)信息傳回所述應(yīng)用程序仿真測(cè)試模塊;
[0032]所述應(yīng)用程序仿真測(cè)試模塊還用于基于該款應(yīng)用程序的控件坐標(biāo)信息并結(jié)合預(yù)存的該款應(yīng)用程序的控件路徑信息對(duì)該款應(yīng)用程序進(jìn)行仿真測(cè)試。
[0033]實(shí)施本發(fā)明基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法及終端設(shè)備,可實(shí)現(xiàn)以下有益效果:
[0034]1、本發(fā)明基于待測(cè)程序的控件路徑信息及實(shí)時(shí)獲取的待測(cè)程序的控件坐標(biāo)信息對(duì)待測(cè)程序進(jìn)行仿真測(cè)試,本發(fā)明應(yīng)用程序測(cè)試環(huán)節(jié)覆蓋到了待測(cè)應(yīng)用程序控件樹(shù)下的所有控件,實(shí)現(xiàn)了程序測(cè)試工作的全面化。
[0035]2、本發(fā)明應(yīng)用程序測(cè)試過(guò)程的智能化程度高,程序測(cè)試的各個(gè)環(huán)節(jié)均無(wú)需人力干預(yù),本發(fā)明還可有效避免程序“卡死”在帶有輸入框的程序測(cè)試頁(yè)面導(dǎo)致程序測(cè)試工作無(wú)法繼續(xù)進(jìn)行,實(shí)現(xiàn)了程序測(cè)試工作的全自動(dòng)化。
[0036]3、本發(fā)明基于安卓系統(tǒng)的應(yīng)用程序調(diào)試方法可兼容具有不同屏幕尺寸、不同分辨率的智能終端設(shè)備,具有適配性廣的優(yōu)點(diǎn)。
【附圖說(shuō)明】
[0037]圖1為本發(fā)明的較佳實(shí)施例提供的基于安卓系統(tǒng)的終端設(shè)備的結(jié)構(gòu)框圖;
[0038]圖2為圖1所示的基于安卓系統(tǒng)的終端設(shè)備的應(yīng)用程序控件處理模塊的結(jié)構(gòu)框圖;
[0039]圖3為本發(fā)明的較佳實(shí)施例提供的基于