應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件系統(tǒng)測(cè)試技術(shù)領(lǐng)域,尤其是涉及應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有安卓系統(tǒng)(android)的自動(dòng)化測(cè)試有Monkey測(cè)試,它是一種隨機(jī)的測(cè)試工具,無(wú)法根據(jù)測(cè)試人員自定義的方法進(jìn)行操作。
[0003]現(xiàn)有谷歌的Uiautomator自動(dòng)化測(cè)試可以根據(jù)測(cè)試人員自定義的步驟進(jìn)行測(cè)試,但需要用戶(hù)手動(dòng)編寫(xiě)測(cè)試代碼進(jìn)行操作,測(cè)試方法不敏捷。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法及系統(tǒng),結(jié)合控件錄制技術(shù)等實(shí)現(xiàn)安卓系統(tǒng)的自動(dòng)化測(cè)試,提升測(cè)試效率,解決現(xiàn)有技術(shù)中的種種問(wèn)題。
[0005]為實(shí)現(xiàn)上述目標(biāo)及其他相關(guān)目標(biāo),本發(fā)明提供一種應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法,包括:記錄操作界面接收到的關(guān)于控制測(cè)試的操作;根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息;記錄所述獲取的目標(biāo)控件信息;運(yùn)行所述目標(biāo)控件以完成自動(dòng)測(cè)試。
[0006]可選的,所述操作界面包括:將移動(dòng)終端的交互界面通過(guò)投影生成的投影界面。
[0007]可選的,所述根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息,包括:以所述操作界面為坐標(biāo)平面,獲取所記錄的操作對(duì)應(yīng)位置的坐標(biāo)數(shù)據(jù);根據(jù)接受所述操作時(shí)的操作界面的界面布局文件,獲取其中的各待選控件;從所述各待選控件中篩選與所述坐標(biāo)數(shù)據(jù)最相關(guān)的作為所述目標(biāo)控件。
[0008]可選的,所述從所述各待選控件中篩選與所述坐標(biāo)數(shù)據(jù)最相關(guān)的作為所述目標(biāo)控件,包括:通過(guò)兩點(diǎn)坐標(biāo)定義矩陣范圍來(lái)顯示每個(gè)所述待選控件,所述兩點(diǎn)包括:左上點(diǎn)及右下點(diǎn);篩選出所述操作的坐標(biāo)數(shù)據(jù)落入在內(nèi)且矩陣范圍最小的待選控件作為所述目標(biāo)控件。
[0009]可選的,所述操作有多個(gè),每個(gè)操作對(duì)應(yīng)一目標(biāo)控件,每個(gè)操作對(duì)應(yīng)的目標(biāo)控件均具有有各自的唯一屈性。
[0010]可選的,所述的應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法,包括:將與各個(gè)操作對(duì)應(yīng)的目標(biāo)控件信息記錄在控件腳本中。
[0011]可選的,所述屈性包括:文本標(biāo)簽屈性、資源ID屈性及內(nèi)容描述屈性中的一種。
[0012]可選的,所述運(yùn)行所述目標(biāo)控件以完成自動(dòng)測(cè)試,包括:獲取所述控件腳本;按照所述控件腳本所記錄各目標(biāo)控件的屈性,在已存儲(chǔ)于安卓系統(tǒng)內(nèi)的各目標(biāo)控件中逐一篩選屈性匹配的待執(zhí)行控件;在屈性匹配的情況下,判斷該屈性匹配的待執(zhí)行控件是否存在于所述接受所述操作時(shí)的操作界面的界面布局文件中;若存在,則運(yùn)行該待執(zhí)行控件以執(zhí)行對(duì)應(yīng)操作;若不存在,則結(jié)束所述控件腳本;在所述控件腳本所記錄的所有目標(biāo)控件對(duì)應(yīng)操作均執(zhí)行的情況下,結(jié)束所述控件腳本。
[0013]可選的,所述篩選是通過(guò)UIautomator軟件來(lái)完成的。
[0014]為實(shí)現(xiàn)上述目標(biāo)及其他相關(guān)目標(biāo),本發(fā)明提供一種應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試系統(tǒng),包括:操作記錄模塊,用于記錄操作界面接收到的關(guān)于控制測(cè)試的操作;解析模塊,用于根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息;控件信息記錄模塊,用于記錄所述獲取的目標(biāo)控件信息;控件運(yùn)行模塊,用于運(yùn)行所述目標(biāo)控件以完成自動(dòng)測(cè)試。
[0015]如上所述,本發(fā)明提供一種應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法及系統(tǒng),記錄操作界面接收到的關(guān)于控制測(cè)試的操作;根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息;記錄所述獲取的目標(biāo)控件信息;運(yùn)行所述目標(biāo)控件以完成自動(dòng)測(cè)試;本發(fā)明通過(guò)控件錄制技術(shù)等,實(shí)現(xiàn)安卓系統(tǒng)的自動(dòng)化測(cè)試,提升測(cè)試效率,解決現(xiàn)有技術(shù)中的種種問(wèn)題。
【附圖說(shuō)明】
[0016]圖1顯示為本發(fā)明一實(shí)施例中的應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法的流程示意圖。
[0017]圖2顯示為本發(fā)明一實(shí)施例中的控件腳本運(yùn)行方法的流程示意圖。
[0018]圖3顯示為本發(fā)明一實(shí)施例中的應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖。
[0019]元件標(biāo)號(hào)說(shuō)明
[0020]I 應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試系統(tǒng)
[0021]11 操作記錄模塊
[0022]12 解析模塊
[0023]13 控件信息記錄模塊
[0024]14控件運(yùn)行模塊
[0025]SI?S4 方法步驟
【具體實(shí)施方式】
[0026]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0027]如圖1所示,本發(fā)明提供一種應(yīng)用于安卓系統(tǒng)的自動(dòng)化測(cè)試方法,包括:
[0028]步驟S1:記錄操作界面接收到的關(guān)于控制測(cè)試的操作。
[0029]在一實(shí)施例中,所述操作界面是來(lái)自于例如安裝有安卓操作系統(tǒng)的移動(dòng)終端(例如手機(jī)或平板電腦等),優(yōu)選的,所述操作界面包括:將移動(dòng)終端的交互界面(GUI)通過(guò)投影生成的投影界面,由于投影界面和移動(dòng)終端的交互界面是成比例的,若以?xún)烧叻謩e建立坐標(biāo)平面,則投影界面內(nèi)和交互界面內(nèi)的各點(diǎn)坐標(biāo)間是可以相互轉(zhuǎn)化的,因此用戶(hù)在投影界面的操作可以對(duì)應(yīng)識(shí)別轉(zhuǎn)換為在移動(dòng)終端交互界面的操作,例如點(diǎn)擊、長(zhǎng)按或文本輸入等;所述測(cè)試?yán)鐬閷?duì)Π界面的測(cè)試,則僅需點(diǎn)擊、長(zhǎng)按或文本輸入等簡(jiǎn)單操作,本發(fā)明嘗試將手工操作通過(guò)控件加以記錄以作為自動(dòng)測(cè)試的依據(jù),詳見(jiàn)后文。
[0030]步驟S2:根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息。
[0031]在一實(shí)施例中,所述根據(jù)接受所述操作時(shí)的操作界面,以獲取所述操作信息對(duì)應(yīng)的目標(biāo)控件信息,包括:以所述操作界面為坐標(biāo)平面,獲取所記錄的操作對(duì)應(yīng)位置的坐標(biāo)數(shù)據(jù);根據(jù)接受所述操作時(shí)的操作界面的界面布局文件,獲取其中的各待選控件;從所述各待選控件中篩選與所述坐標(biāo)數(shù)據(jù)最相關(guān)的作為所述目標(biāo)控件。
[0032]具體的,所述篩選即目標(biāo)控件的定位,并對(duì)其屈性的獲取,從手機(jī)屏幕顯示技術(shù)中,可以獲取用戶(hù)操作所輸入的坐標(biāo),其次通過(guò)adb命令adb shell system/bin/uiautomator dump獲取當(dāng)前界面布局文件(本實(shí)施例中為XML文件,例如windouw_dump.xml文件)。通過(guò)代碼解析技術(shù)解析xml文件(xml文件解析技術(shù)不屈于本專(zhuān)利范圍內(nèi),只做步驟參考,不做詳述),解析出各個(gè)控件及其屈性。通過(guò)控件算法定位是屈于哪個(gè)目標(biāo)控件;最后將目標(biāo)控件信息拋出;所拋出的控件信息,就是用戶(hù)點(diǎn)擊屏幕的控件的屈性信息。
[0033]進(jìn)一步的,所述從所述各待選控件中篩選與所述坐標(biāo)數(shù)據(jù)最相關(guān)的作為所述目標(biāo)控件,包括:通過(guò)兩點(diǎn)坐標(biāo)定義矩陣范圍來(lái)顯示每個(gè)所述待選控件,所述兩點(diǎn)包括:左上點(diǎn)及右下點(diǎn);篩選出所述操作的坐標(biāo)數(shù)據(jù)落入在內(nèi)且矩陣范圍最小的待選控件作為所述目標(biāo)控件。
[0034]具體來(lái)說(shuō),通過(guò)用戶(hù)輸入的點(diǎn)位計(jì)算出該點(diǎn)位被包含的控件。即找出該控件,核心算法步驟,控件信息采用矩陣顯示,即左上和右下兩點(diǎn)位,兩點(diǎn)定義一個(gè)矩形范圍。用戶(hù)點(diǎn)擊屏幕一點(diǎn)時(shí),等同矩陣左上和右下兩點(diǎn)重疊,列如:[138,473] [138,473],其次通過(guò)代碼解析技術(shù)解析出xml中所有控件,暫舉4個(gè)控件[0,0] [480,800] ;[0,110] [480,800] ;[87,289] [205,321] ; [87,289] [205,321] ; [24,464] [456,536],依次和用戶(hù)輸入的點(diǎn)位進(jìn)行比對(duì),需要符合的條件有,用戶(hù)輸入的值依次和解析出來(lái)的值進(jìn)行比對(duì),用戶(hù)輸入的第一個(gè)[]中取兩數(shù)都大于解析出來(lái)的值,用戶(hù)輸入的第二個(gè)[]中的值取兩數(shù)都小于解析出來(lái)的值。暫以例舉為例,符合條件的有[0,0] [480,800] ;[0,110] [480,800] ; [24,464] [456,536],并通過(guò)兩點(diǎn)法計(jì)算其面積(已有左上和右下兩點(diǎn)坐標(biāo),可以得到矩形面積),選取面積最小的那個(gè)控件為輸出控件[24,464] [456,536],因此該目標(biāo)控件的范圍就在[24,464] [456,536]中,以上為了說(shuō)明得更清晰,采用舉例法進(jìn)行說(shuō)明,實(shí)際情況可以會(huì)進(jìn)行上百甚至上千個(gè)控件中進(jìn)行比對(duì)。
[0035]步驟S3:記錄所述獲取的目標(biāo)控件信息。
[0036]在一實(shí)施例中,所述操作有多個(gè),每個(gè)操作對(duì)應(yīng)一目標(biāo)控件,每個(gè)操作對(duì)應(yīng)的目標(biāo)控件均具有有各自的唯一屈性。
[0037]關(guān)于所述控件的屈性,一般android手機(jī)內(nèi)的可用控件基本分為文本標(biāo)簽屈性(text),資源ID屈性(resource-1d),內(nèi)容描述屈性(content-desc)(不排除其他可以用控件屈性,目前就以這三種常用的為例),這三種屈性,通過(guò)上述控件定位之后就能夠獲取出所需的控件屈性,各種屈性分別對(duì)應(yīng)不同操作。
[0038]步驟S4:運(yùn)行所述目標(biāo)控件以完成自動(dòng)測(cè)試。