欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用戶界面的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng)的制作方法

文檔序號(hào):6639665閱讀:423來(lái)源:國(guó)知局
用戶界面的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種用戶界面的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng),涉及自動(dòng)化測(cè)試領(lǐng)域,能夠解決UI控件測(cè)試過(guò)程復(fù)雜、繁瑣的問(wèn)題。本發(fā)明主要的技術(shù)方案為:中控服務(wù)器接收測(cè)試指令,該測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;中控服務(wù)器獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將該數(shù)據(jù)包下發(fā)給測(cè)試終端;測(cè)試終端根據(jù)數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);測(cè)試終端根據(jù)界面坐標(biāo)對(duì)控件進(jìn)行模擬點(diǎn)擊;測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。本發(fā)明主要用于對(duì)應(yīng)用的用戶界面進(jìn)行測(cè)試。
【專利說(shuō)明】用戶界面的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及自動(dòng)化測(cè)試領(lǐng)域,尤其涉及一種用戶界面的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng)。

【背景技術(shù)】
[0002]用戶界面(User Interface,簡(jiǎn)稱UI)測(cè)試一般包括布局測(cè)試、內(nèi)容測(cè)試(包括文字和圖片)、風(fēng)格測(cè)試、控件測(cè)試等內(nèi)容。對(duì)于布局、內(nèi)容風(fēng)格、字體等測(cè)試對(duì)象,通常采用靜態(tài)方式進(jìn)行測(cè)試,例如使用點(diǎn)檢表結(jié)合人工觀察的方式獲得測(cè)試結(jié)果。而對(duì)于用戶界面中的控件來(lái)說(shuō),由于其具有人機(jī)交互的特性,能夠向用戶提供諸如界面跳轉(zhuǎn)、開(kāi)關(guān)控制、文字輸入等交互性功能,因此現(xiàn)有技術(shù)中往往采用動(dòng)態(tài)方式對(duì)UI中的控件進(jìn)行測(cè)試。
[0003]現(xiàn)有針對(duì)UI控件的動(dòng)態(tài)測(cè)試多數(shù)需要測(cè)試人員編寫(xiě)測(cè)試用例,對(duì)被測(cè)試對(duì)象、測(cè)試方式、預(yù)期結(jié)果等內(nèi)容進(jìn)行界定,然后由測(cè)試設(shè)備(例如手機(jī))執(zhí)行該測(cè)試用例完成對(duì)Π控件的測(cè)試。
[0004]在上述測(cè)試Π控件的過(guò)程中發(fā)明人發(fā)現(xiàn),測(cè)試用例的編寫(xiě)通常較為專業(yè),對(duì)于普通的測(cè)試人員而言,編寫(xiě)一套完整、可用并且高效的測(cè)試用例并不是一件簡(jiǎn)單的事情。特別是在測(cè)試用例欠缺移植性的情況下,針對(duì)不同測(cè)試對(duì)象單獨(dú)編寫(xiě)測(cè)試用例并不現(xiàn)實(shí)。


【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明提供一種用戶界面控件的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng),能夠解決UI控件測(cè)試過(guò)程復(fù)雜、繁瑣的問(wèn)題。
[0006]依據(jù)本發(fā)明一個(gè)方面,提出了一種用戶界面控件的測(cè)試方法,該方法包括:
[0007]中控服務(wù)器接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;
[0008]所述中控服務(wù)器獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給測(cè)試終端;
[0009]所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);
[0010]所述測(cè)試終端根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊;
[0011]所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0012]依據(jù)本發(fā)明另一個(gè)方面,提出了一種中控服務(wù)器,該中控服務(wù)器包括:
[0013]接收單元,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;
[0014]獲取單元,用于根據(jù)所述接收單元接收的所述測(cè)試指令獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包;
[0015]發(fā)送單元,用于將所述獲取單元獲取的所述數(shù)據(jù)包下發(fā)給測(cè)試終端,以使得所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,對(duì)所述被測(cè)應(yīng)用的UI控件進(jìn)行測(cè)試。
[0016]依據(jù)本發(fā)明另一個(gè)方面,還提出了一種測(cè)試終端,該測(cè)試終端包括:
[0017]接收單元,用于接收中控服務(wù)器下發(fā)的被測(cè)應(yīng)用的數(shù)據(jù)包;
[0018]執(zhí)行單元,用于根據(jù)所述接收單元接收的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用;
[0019]獲取單元,用于在所述執(zhí)行單元運(yùn)行所述被測(cè)應(yīng)用的過(guò)程中,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);
[0020]處理單元,用于根據(jù)所述獲取單元獲取的所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊;
[0021]記錄單元,用于記錄所述處理單元點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0022]依據(jù)本發(fā)明另一個(gè)方面,提出了一種用戶界面的測(cè)試系統(tǒng),該系統(tǒng)包括中控服務(wù)器及測(cè)試終端;
[0023]所述中控服務(wù)器,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面Π測(cè)試,獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給所述測(cè)試終端;
[0024]所述測(cè)試終端,用于根據(jù)所述中控服務(wù)器下發(fā)的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊,并記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0025]本發(fā)明所采用的一種用戶界面控件的測(cè)試方法、中控服務(wù)器、測(cè)試終端及系統(tǒng),是由中控服務(wù)器接收測(cè)試指令,獲取被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送給測(cè)試終端,由測(cè)試終端獲取被測(cè)應(yīng)用界面中的控件界面坐標(biāo),根據(jù)所獲取的坐標(biāo)進(jìn)行模擬點(diǎn)擊測(cè)試,并將測(cè)試結(jié)果記錄下來(lái)。通過(guò)該方法所進(jìn)行的UI測(cè)試,測(cè)試人員只需要對(duì)中控服務(wù)器發(fā)送測(cè)試指令,然后只需要等待中控服務(wù)器與測(cè)試終端對(duì)被測(cè)應(yīng)用的自動(dòng)測(cè)試,最后在測(cè)試終端上獲取測(cè)試結(jié)果,相對(duì)于現(xiàn)有技術(shù),測(cè)試人員可以省去對(duì)測(cè)試用例的編寫(xiě),也不需要對(duì)被測(cè)試對(duì)象、測(cè)試方式、預(yù)期結(jié)果等內(nèi)容進(jìn)行界定,從而大幅降低了測(cè)試人員的工作強(qiáng)度,從根本上解決了 Π控件測(cè)試過(guò)程復(fù)雜、繁瑣的問(wèn)題。
[0026]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。

【專利附圖】

【附圖說(shuō)明】
[0027]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0028]圖1示出了本發(fā)明實(shí)施例提出的一種用戶界面的測(cè)試方法流程圖;
[0029]圖2示出了本發(fā)明實(shí)施例提出的另一種用戶界面的測(cè)試方法流程圖;
[0030]圖3示出了本發(fā)明實(shí)施例提出的一種中控服務(wù)器的結(jié)構(gòu)示意圖;
[0031]圖4示出了本發(fā)明實(shí)施例提出的另一種中控服務(wù)器的結(jié)構(gòu)示意圖;
[0032]圖5示出了本發(fā)明實(shí)施例提出的測(cè)試終端的結(jié)構(gòu)示意圖;
[0033]圖6示出了本發(fā)明實(shí)施例提出的另一種測(cè)試終端的結(jié)構(gòu)示意圖;
[0034]圖7示出了本發(fā)明實(shí)施例提出的一種用戶界面的測(cè)試系統(tǒng)示意圖。

【具體實(shí)施方式】
[0035]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0036]本發(fā)明實(shí)施例提供了一種用戶界面的測(cè)試方法,如圖1所示,該方法包括:
[0037]101、中控服務(wù)器接收測(cè)試指令,測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界Mui測(cè)試。
[0038]在測(cè)試人員通過(guò)測(cè)試平臺(tái)中選擇出作為測(cè)試對(duì)象的應(yīng)用后,中控服務(wù)器接收測(cè)試平臺(tái)下發(fā)的測(cè)試指令。本實(shí)施例主要針對(duì)UI控件的點(diǎn)擊功能進(jìn)行測(cè)試。
[0039]102、中控服務(wù)器獲取被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包下發(fā)給測(cè)試終端。
[0040]中控服務(wù)器在確定所要進(jìn)行的UI測(cè)試項(xiàng)目后,需要獲取被測(cè)應(yīng)用的數(shù)據(jù)包。通常,中控服務(wù)器中保存有用于記錄應(yīng)用數(shù)據(jù)包存儲(chǔ)路徑的映射關(guān)系表。在獲得測(cè)試指令之后,中控服務(wù)器根據(jù)該指令中攜帶的應(yīng)用標(biāo)識(shí)查找映射關(guān)系表,獲得該應(yīng)用數(shù)據(jù)包的存儲(chǔ)路徑,并進(jìn)一步根據(jù)該存儲(chǔ)路徑獲得該應(yīng)用的數(shù)據(jù)包。實(shí)際應(yīng)用中,數(shù)據(jù)包可以存儲(chǔ)在中控服務(wù)器內(nèi)部,也可以存儲(chǔ)在獨(dú)立于中控服務(wù)器的數(shù)據(jù)庫(kù)中,無(wú)論采用何種存儲(chǔ)方式,中控服務(wù)器都可以通過(guò)查找存儲(chǔ)路徑的方式獲得應(yīng)用的數(shù)據(jù)包。
[0041]本實(shí)施例主要針對(duì)安卓(Android)操作系統(tǒng)下的應(yīng)用進(jìn)行測(cè)試,因此,上述數(shù)據(jù)包往往是指對(duì)應(yīng)安卓應(yīng)用的安卓數(shù)據(jù)包(Android Package,簡(jiǎn)稱APK)。
[0042]中控服務(wù)器在獲取被測(cè)應(yīng)用的數(shù)據(jù)包后,會(huì)將該數(shù)據(jù)包下發(fā)給測(cè)試終端,由測(cè)試終端進(jìn)行保存并進(jìn)行測(cè)試。
[0043]在本實(shí)施例的一種實(shí)現(xiàn)方式中,中控服務(wù)器調(diào)用ADB(Android Debug Bridge)的PUSH命令將數(shù)據(jù)包同步到測(cè)試終端中。由測(cè)試終端對(duì)該數(shù)據(jù)包進(jìn)行存儲(chǔ),而對(duì)于存儲(chǔ)的方式可以是存儲(chǔ)在測(cè)試終端本地,也可以是存儲(chǔ)在連接在該測(cè)試終端上的存儲(chǔ)設(shè)備內(nèi),此方式主要是針對(duì)測(cè)試終端本身不具備存儲(chǔ)空間的情況。
[0044]103、測(cè)試終端根據(jù)數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo)。
[0045]測(cè)試終端在得到由中控服務(wù)器發(fā)送的被測(cè)應(yīng)用數(shù)據(jù)包后,將自動(dòng)對(duì)該數(shù)據(jù)包進(jìn)行解析處理,在獲得被測(cè)應(yīng)用的執(zhí)行文件后啟動(dòng)并運(yùn)行該應(yīng)用,同時(shí)獲取該被測(cè)應(yīng)用界面中控件的界面坐標(biāo)。本實(shí)施例中,測(cè)試終端除獲取控件的坐標(biāo)外,還會(huì)獲取VIEW的坐標(biāo),并采用與測(cè)試控件相同的方式對(duì)UI中的VIEW進(jìn)行測(cè)試。VIEW與控件的不同之處在于,界面控件是指可在窗體上放置的可視化圖形“元件”,如按鈕、文件編輯框等,具有執(zhí)行功能或通過(guò)“事件”引發(fā)代碼運(yùn)行并完成響應(yīng)的功能,而VIEW是將界面中的一個(gè)固定區(qū)塊作為一個(gè)展示區(qū),其展示的對(duì)象可以是動(dòng)態(tài)或靜態(tài)的圖文信息,通常會(huì)鏈接到下一級(jí)子界面。
[0046]104、測(cè)試終端根據(jù)界面坐標(biāo)對(duì)控件進(jìn)行模擬點(diǎn)擊。
[0047]測(cè)試終端通過(guò)軟件模擬現(xiàn)實(shí)中用戶點(diǎn)擊界面中控件的情況對(duì)被測(cè)應(yīng)用界面中的控件進(jìn)行模擬點(diǎn)擊,在進(jìn)行模擬點(diǎn)擊時(shí),測(cè)試終端通過(guò)103中所獲取的界面中控件的坐標(biāo)來(lái)確定該控件的具體位置。實(shí)際上,測(cè)試終端并不能像用戶一樣通過(guò)肉眼及人類思維直觀的判斷出控件(當(dāng)然也包括VIEW)的具體位置,本實(shí)施例中獲取控件坐標(biāo)的目的即是使測(cè)試終端可以在無(wú)法識(shí)別控件的情況下準(zhǔn)確定位并點(diǎn)擊各個(gè)控件。
[0048]105、測(cè)試終端記錄點(diǎn)擊控件產(chǎn)生的測(cè)試結(jié)果。
[0049]根據(jù)104中的模擬點(diǎn)擊事件,測(cè)試終端將記錄本次點(diǎn)擊測(cè)試的結(jié)果。具體到本發(fā)明實(shí)施例,點(diǎn)擊控件所產(chǎn)生的測(cè)試結(jié)果就是該被測(cè)應(yīng)用在本次點(diǎn)擊后是否會(huì)產(chǎn)生響應(yīng),有響應(yīng)說(shuō)明被測(cè)應(yīng)用中的該控件可以正常執(zhí)行,而無(wú)響應(yīng)則說(shuō)明被測(cè)應(yīng)用的該控件無(wú)法正常工作,會(huì)導(dǎo)致應(yīng)用進(jìn)程的崩潰。其中,應(yīng)用進(jìn)程的崩潰是指應(yīng)用程序報(bào)錯(cuò)后對(duì)應(yīng)的進(jìn)程突然消失或者對(duì)應(yīng)的服務(wù)自動(dòng)停止,造成應(yīng)用進(jìn)程崩潰的原因多種多樣,具體到本發(fā)明實(shí)施例,是在Android操作系統(tǒng)中,應(yīng)用的進(jìn)程在執(zhí)行過(guò)程中,每進(jìn)行一步操作,都會(huì)在系統(tǒng)中產(chǎn)生一個(gè)相對(duì)應(yīng)的線程來(lái)進(jìn)行處理,在處理完成后再自動(dòng)結(jié)束該線程。而當(dāng)線程的處理時(shí)間較長(zhǎng),而在同一段時(shí)間內(nèi)又開(kāi)啟了數(shù)量較多的線程時(shí),該應(yīng)用就會(huì)消耗系統(tǒng)內(nèi)的大量?jī)?nèi)存資源,而根據(jù)Android系統(tǒng)的運(yùn)行機(jī)制,系統(tǒng)會(huì)自動(dòng)停止該進(jìn)程中的一部分線程來(lái)釋放內(nèi)存資源用于其它應(yīng)用的運(yùn)行,在這個(gè)過(guò)程中,如果系統(tǒng)停止的線程中包含有該應(yīng)用的某個(gè)核心進(jìn)程時(shí),該應(yīng)用就會(huì)出現(xiàn)進(jìn)程崩潰的現(xiàn)象。
[0050]本發(fā)明實(shí)施例所采用一種用戶界面控件的測(cè)試方法,是由中控服務(wù)器接收測(cè)試指令,獲取被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送給測(cè)試終端,由測(cè)試終端獲取被測(cè)應(yīng)用界面中的控件界面坐標(biāo),根據(jù)所獲取的坐標(biāo)進(jìn)行模擬點(diǎn)擊測(cè)試,并將測(cè)試結(jié)果記錄下來(lái)。通過(guò)該方法所進(jìn)行的UI測(cè)試,測(cè)試人員只需要對(duì)中控服務(wù)器發(fā)送測(cè)試指令,然后就是等待中控服務(wù)器與測(cè)試終端對(duì)被測(cè)應(yīng)用的自動(dòng)測(cè)試,最后在測(cè)試終端上獲取測(cè)試結(jié)果,相對(duì)于現(xiàn)有技術(shù),測(cè)試人員可以省去對(duì)測(cè)試用例的編寫(xiě),也不需要對(duì)被測(cè)試對(duì)象、測(cè)試方式、預(yù)期結(jié)果等內(nèi)容進(jìn)行界定,從而大幅降低了測(cè)試人員的工作強(qiáng)度,從根本上解決了 UI控件測(cè)試過(guò)程復(fù)雜、繁瑣的問(wèn)題。
[0051]為了進(jìn)一步對(duì)上述的方法進(jìn)行細(xì)化說(shuō)明,本發(fā)明實(shí)施例還提供一種用戶界面的測(cè)試方法,如圖2所示,該方法包括:
[0052]201、中控服務(wù)器接收測(cè)試指令,測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界Mui測(cè)試。
[0053]測(cè)試指令的生成可以是由中控服務(wù)器通過(guò)Web頁(yè)面顯示包含可選應(yīng)用的列表或菜單,在列表或菜單中順序列出應(yīng)用的相關(guān)屬性信息,如應(yīng)用的名稱、提供方、應(yīng)用的大小等。在測(cè)試人員選中可選應(yīng)用時(shí),中控服務(wù)器獲得測(cè)試指令,并將選中的可選應(yīng)用確定為被測(cè)應(yīng)用。其中,中控服務(wù)器通過(guò)Web頁(yè)面所顯示的可選操作一般為單選模式,即不能同時(shí)選中兩個(gè)應(yīng)用進(jìn)行Π測(cè)試。
[0054]202、中控服務(wù)器獲取被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包下發(fā)給測(cè)試終端。
[0055]中控服務(wù)器在根據(jù)測(cè)試指令獲取被測(cè)應(yīng)用的數(shù)據(jù)包后,中控服務(wù)器將所獲取的數(shù)據(jù)包下發(fā)給測(cè)試終端。其中,下發(fā)給測(cè)試終端的具體方式可以是中控服務(wù)器通過(guò)無(wú)線網(wǎng)絡(luò)傳輸?shù)姆绞较驕y(cè)試終端直接發(fā)送,如利用WIFI網(wǎng)絡(luò)進(jìn)行的數(shù)據(jù)包發(fā)送,也可以是由中控服務(wù)器通過(guò)代理服務(wù)器間接發(fā)送給終端測(cè)試終端,例如中控服務(wù)器將數(shù)據(jù)包先發(fā)送給代理服務(wù)器,再由代理服務(wù)器發(fā)送給測(cè)試終端。代理服務(wù)器與測(cè)試終端可以通過(guò)USB接口連接或是通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行連接。以上所述的下發(fā)方式,是根據(jù)具體應(yīng)用場(chǎng)景的不同而改變的,例如,在中控服務(wù)器與測(cè)試終端距離較近或者測(cè)試應(yīng)用的任務(wù)較少時(shí)就可以采用前一種方式,而對(duì)于中控服務(wù)器與測(cè)試終端距離較遠(yuǎn),或者測(cè)試應(yīng)用的任務(wù)較多需要代理服務(wù)器分擔(dān)任務(wù)時(shí),就可以采用后一種的下發(fā)方式,本發(fā)明實(shí)施例對(duì)使用何種下發(fā)方式不作具體限定。
[0056]203、測(cè)試終端根據(jù)數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo)。
[0057]測(cè)試終端在收到中控服務(wù)器發(fā)送的數(shù)據(jù)包后,將對(duì)該數(shù)據(jù)包進(jìn)行解析,獲取數(shù)據(jù)包中被測(cè)應(yīng)用首界面的界面標(biāo)識(shí),該界面是被測(cè)應(yīng)用執(zhí)行時(shí)所顯示的第一個(gè)界面,其界面標(biāo)識(shí)記載了界面的名稱、版本等信息。同時(shí),得到被測(cè)應(yīng)用的執(zhí)行文件并且啟動(dòng)該被測(cè)應(yīng)用。
[0058]在啟動(dòng)被測(cè)應(yīng)用后,測(cè)試終端將根據(jù)解析出的被測(cè)應(yīng)用的首界面的界面標(biāo)識(shí),識(shí)別出被測(cè)應(yīng)用啟動(dòng)后的首界面(一個(gè)界面也稱作為一個(gè)Activity)。從該首界面的控件開(kāi)始,終端按照一定的順序(例如由左至右或由上至下)依次遍歷首界面以及其各級(jí)子界面中的各個(gè)控件。
[0059]在每遍歷到一個(gè)控件時(shí),測(cè)試終端都要獲取該控件的界面坐標(biāo)。本實(shí)施例中,測(cè)試終端通過(guò)調(diào)用Accessibility接口實(shí)現(xiàn)控件的遍歷以及界面坐標(biāo)的獲取。其中,AccessibiIity是一種以程序方式訪問(wèn)Π元素信息或操作這些Π元素的功能服務(wù),在本發(fā)明實(shí)施例中,測(cè)試終端可以通過(guò)AccessibiIity訪問(wèn)被測(cè)應(yīng)用中的UI界面并獲取其中控件的相關(guān)信息,包括控件類型以及控件在界面中的坐標(biāo)參數(shù)等信息。通過(guò)調(diào)用Accessibility接口來(lái)遍歷應(yīng)用界面中的控件的具體實(shí)現(xiàn)方式為:測(cè)試終端根據(jù)數(shù)據(jù)包中的首界面的界面標(biāo)識(shí),定位到起始應(yīng)用界面。再?gòu)钠鹗紤?yīng)用界面開(kāi)始,按照深度優(yōu)先的規(guī)則順次遍歷各級(jí)應(yīng)用界面中的控件。所謂深度優(yōu)先規(guī)則是指,按照某個(gè)控件指向的邏輯路徑逐級(jí)點(diǎn)擊各個(gè)子界面,直至點(diǎn)擊至最底層界面后再返回上一級(jí)界面點(diǎn)擊其他界面。示例性的,以某餐飲類應(yīng)用為例,首界面用于選擇地區(qū),其中包含“北京”、“上?!?、“深圳”、“成都”等控件。按照由左至右、由上至下的順序,測(cè)試終端首先點(diǎn)擊控件“北京”,進(jìn)入下一級(jí)子菜單,然后仍以前述順序順次點(diǎn)擊第二級(jí)界面中的控件“燒烤類”、第三級(jí)界面中的控件“自助餐”以及最后一級(jí)界面中的控件“某某餐館”,由此完成一次深度遍歷。然后,測(cè)試終端繼續(xù)點(diǎn)擊最后一級(jí)界面中對(duì)應(yīng)其他餐館的控件,直至全部點(diǎn)擊完畢后返回第三級(jí)菜單,繼續(xù)點(diǎn)擊“西餐”等其他控件。
[0060]在進(jìn)行完一次深度遍歷后,測(cè)試終端按照獲取界面坐標(biāo)的先后順序?qū)丶M(jìn)行排序,就會(huì)得到一個(gè)按照深度優(yōu)先原則排序的控件列表,在列表中記錄了該應(yīng)用中所有控件的數(shù)量以及各控件對(duì)應(yīng)的界面坐標(biāo),例如“北京” 一〉“燒烤類” 一〉“自助餐” 一〉“某某餐館”。
[0061]204、測(cè)試終端根據(jù)界面坐標(biāo)對(duì)控件進(jìn)行模擬點(diǎn)擊。
[0062]在進(jìn)行模擬點(diǎn)擊時(shí),測(cè)試終端執(zhí)行shell命令,將所獲取的控件界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行該input語(yǔ)句,由此完成一次模擬點(diǎn)擊。
[0063]需要說(shuō)明的是,對(duì)控件的模擬點(diǎn)擊不需要在獲取應(yīng)用的所有控件界面坐標(biāo)后再執(zhí)行,而是可以根據(jù)203中獲取控件界面坐標(biāo)的同時(shí)就執(zhí)行對(duì)該控件的模擬點(diǎn)擊操作。
[0064]205、測(cè)試終端記錄點(diǎn)擊控件產(chǎn)生的測(cè)試結(jié)果。
[0065]測(cè)試終端將204中的模擬點(diǎn)擊的結(jié)果記錄下來(lái),并生成一個(gè)控件測(cè)試結(jié)果列表,在該列表中除了記錄有所點(diǎn)擊過(guò)的控件的名稱和被點(diǎn)擊控件的數(shù)量外,還記錄有控件相對(duì)于應(yīng)用界面的點(diǎn)擊路徑,該點(diǎn)擊路徑是記錄測(cè)試終端由被測(cè)應(yīng)用首界面中的控件順序點(diǎn)擊到當(dāng)前所點(diǎn)擊的控件的路徑信息(例如北京” 一〉“燒烤類” 一〉“自助餐” 一〉“某某餐館”)。實(shí)際應(yīng)用中,該點(diǎn)擊路徑通常用于記錄導(dǎo)致應(yīng)用進(jìn)程崩潰的點(diǎn)擊過(guò)程。
[0066]進(jìn)一步的,上述的控件測(cè)試結(jié)果列表還可以與203中的按照深度優(yōu)先原則排序的控件列表相結(jié)合,將測(cè)試結(jié)果與控件的點(diǎn)擊路徑記錄到該表中。
[0067]206、測(cè)試終端向中控服務(wù)器上報(bào)測(cè)試結(jié)果。
[0068]在獲得測(cè)試結(jié)果后,測(cè)試終端將該結(jié)果上報(bào)給中控服務(wù)器,再有中控服務(wù)器上報(bào)給測(cè)試平臺(tái),供測(cè)試人員查看。實(shí)際應(yīng)用中,可以使用多個(gè)測(cè)試終端對(duì)同一應(yīng)用進(jìn)行UI測(cè)試,并由中控服務(wù)器對(duì)各個(gè)測(cè)試終端上報(bào)的測(cè)試結(jié)果進(jìn)行匯總?cè)ブ兀纱丝梢蕴蕹齻€(gè)體終端的隨機(jī)性因素,獲得更加穩(wěn)定、準(zhǔn)確的測(cè)試結(jié)果。
[0069]進(jìn)一步的,在實(shí)際應(yīng)用中,測(cè)試終端在按照深度優(yōu)先原則遍歷應(yīng)用中的控件,獲取控件的界面坐標(biāo)時(shí),有可能會(huì)陷入死循環(huán)的點(diǎn)擊過(guò)程。通常情況下,死循環(huán)現(xiàn)象的產(chǎn)生主要有界面中的“返回”控件引起,由于存在“返回”控件,測(cè)試終端可能會(huì)在上下級(jí)界面中反復(fù)進(jìn)行“進(jìn)入〈一〉返回”的點(diǎn)擊操作,由此陷入循環(huán),不能自拔。本實(shí)施例中,為防止死循環(huán)情況的產(chǎn)生,測(cè)試終端可以執(zhí)行如下的操作:
[0070]步驟1、測(cè)試終端對(duì)控件的模擬點(diǎn)擊次數(shù)進(jìn)行計(jì)數(shù)。
[0071]測(cè)試終端會(huì)在本地生成一個(gè)DB (data base)文件,每獲取一個(gè)控件就會(huì)在該文件中為該控件建立一條記錄。當(dāng)模擬點(diǎn)擊發(fā)生時(shí),測(cè)試終端會(huì)根據(jù)計(jì)數(shù)器的讀數(shù)對(duì)DB文件中的記錄進(jìn)行修改并保存。
[0072]步驟2、在再次進(jìn)行模擬點(diǎn)擊之前,測(cè)試終端讀取計(jì)數(shù)值。
[0073]由于存在多次點(diǎn)擊的可能,比如在同一個(gè)界面中的兩個(gè)不同控件的下一級(jí)界面相同時(shí),該下一級(jí)界面的控件就會(huì)被多次點(diǎn)擊。而在每個(gè)控件進(jìn)行模擬點(diǎn)擊后,測(cè)試終端將通過(guò)計(jì)數(shù)器記錄點(diǎn)擊的次數(shù),并在下一次模擬點(diǎn)擊之前,保持該控件點(diǎn)擊次數(shù)的計(jì)數(shù)值。
[0074]步驟3、若計(jì)數(shù)值已達(dá)到預(yù)設(shè)數(shù)量,則取消對(duì)所述控件的模擬點(diǎn)擊操作。
[0075]測(cè)試終端在點(diǎn)擊控件前,會(huì)讀取該控件的計(jì)數(shù)值,并與預(yù)設(shè)數(shù)量進(jìn)行比較,如果該計(jì)數(shù)值已達(dá)到該預(yù)設(shè)數(shù)量,測(cè)試終端將取消對(duì)控件的模擬點(diǎn)擊操作。其中,預(yù)設(shè)數(shù)量的設(shè)定可以根據(jù)由測(cè)試人員自定義設(shè)置為不小于I的正整數(shù)。通過(guò)對(duì)點(diǎn)擊次數(shù)的限定,就可以有效防止測(cè)試過(guò)程陷入死循環(huán)情況的出現(xiàn)。
[0076]進(jìn)一步的,由于測(cè)試終端通過(guò)軟件模擬點(diǎn)擊控件的方式相對(duì)于實(shí)際的硬件點(diǎn)擊測(cè)試可以節(jié)省大量的人力以及時(shí)間成本,但即便是采用模擬點(diǎn)擊的方式,對(duì)于一些界面和控件較多,層次比較復(fù)雜的應(yīng)用來(lái)說(shuō),要做完一次完整的測(cè)試也是需要很長(zhǎng)一段時(shí)間的,為了控制測(cè)試的時(shí)間,同時(shí)還可以進(jìn)一步防止測(cè)試落入死循環(huán)的情況,本發(fā)明實(shí)施例可以通過(guò)對(duì)測(cè)試時(shí)間的限定來(lái)簡(jiǎn)化測(cè)試的過(guò)程,其具體方式為:測(cè)試終端對(duì)Π測(cè)試的過(guò)程進(jìn)行計(jì)時(shí);當(dāng)Π測(cè)試的耗時(shí)超過(guò)預(yù)設(shè)時(shí)長(zhǎng)時(shí),測(cè)試終端終止Π測(cè)試過(guò)程。其中,預(yù)設(shè)時(shí)常的設(shè)定應(yīng)大于該測(cè)試由首界面中的控件點(diǎn)擊開(kāi)始到達(dá)該應(yīng)用最低層界面中的控件點(diǎn)擊過(guò)程的時(shí)長(zhǎng)。
[0077]進(jìn)一步的,在本發(fā)明的一種實(shí)現(xiàn)方式中,作為對(duì)前述以深度優(yōu)先原則遍歷方式的替換,本系統(tǒng)還支持monkey點(diǎn)擊測(cè)試的方式,該方式是通過(guò)隨機(jī)獲取應(yīng)用界面中的坐標(biāo)為控件的界面坐標(biāo),之后同樣是通過(guò)測(cè)試終端啟動(dòng)shell命令,將控件的界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行該input語(yǔ)句來(lái)執(zhí)行模擬點(diǎn)擊操作,得到測(cè)試結(jié)果。采用該方式進(jìn)行的測(cè)試,可以通過(guò)限定隨機(jī)獲取界面坐標(biāo)的次數(shù)來(lái)控制測(cè)試的時(shí)間,該測(cè)試方式更多的意義在于對(duì)該應(yīng)用UI測(cè)試的控件點(diǎn)擊承受壓力的測(cè)試,測(cè)試應(yīng)用在有限次的點(diǎn)擊過(guò)程中會(huì)不會(huì)發(fā)生應(yīng)用崩潰的情況。
[0078]進(jìn)一步的,作為對(duì)上述圖1或圖2所示方法的實(shí)現(xiàn),本發(fā)明另一實(shí)施例還提供了一種中控服務(wù)器,用以對(duì)上述圖1或圖2所示的方法進(jìn)行實(shí)現(xiàn)。如圖3所示,該中控服務(wù)器包括:接收單元31、獲取單元32以及發(fā)送單元33,其中:
[0079]接收單元31,用于接收測(cè)試指令,測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;
[0080]獲取單元32,用于根據(jù)接收單元31接收的測(cè)試指令獲取被測(cè)應(yīng)用的數(shù)據(jù)包;
[0081]發(fā)送單元33,用于將獲取單元32獲取的數(shù)據(jù)包下發(fā)給測(cè)試終端,以使得測(cè)試終端根據(jù)數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用,對(duì)被測(cè)應(yīng)用的UI控件進(jìn)行測(cè)試。
[0082]進(jìn)一步的,如圖4所示,接收單元31,包括:
[0083]處理子單元311,用于發(fā)送Web頁(yè)面顯示包含可選應(yīng)用的列表或菜單;
[0084]確定子單元312,用于在測(cè)試人員選中可選應(yīng)用時(shí),獲得測(cè)試指令,并將選中的可選應(yīng)用確定為被測(cè)應(yīng)用。
[0085]進(jìn)一步的,接收單元31,用于接收測(cè)試終端上報(bào)的測(cè)試結(jié)果。
[0086]進(jìn)一步的,作為對(duì)上述圖1或圖2所示方法的實(shí)現(xiàn),本發(fā)明另一實(shí)施例還提供了一種測(cè)試終端,用以對(duì)上述圖1或圖2所示的方法進(jìn)行實(shí)現(xiàn)。如圖5所示,該測(cè)試終端包括:接收單元51、執(zhí)行單元52、獲取單元53、處理單元54以及記錄單元55,其中:
[0087]接收單元51,用于接收中控服務(wù)器下發(fā)的被測(cè)應(yīng)用的數(shù)據(jù)包;
[0088]執(zhí)行單元52,用于根據(jù)接收單元51接收的數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用;
[0089]獲取單元53,用于在執(zhí)行單元52運(yùn)行被測(cè)應(yīng)用的過(guò)程中,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);
[0090]處理單元54,用于根據(jù)獲取單元53獲取的界面坐標(biāo)對(duì)控件進(jìn)行模擬點(diǎn)擊;
[0091]記錄單元55,用于記錄處理單元54點(diǎn)擊控件產(chǎn)生的測(cè)試結(jié)果。
[0092]進(jìn)一步的,獲取單元53,用于調(diào)用Accessibility接口遍歷應(yīng)用界面中的控件,并獲得各項(xiàng)控件的界面坐標(biāo)。
[0093]進(jìn)一步的,獲取單元53,用于:
[0094]獲取所述被測(cè)應(yīng)用的首界面的界面標(biāo)識(shí),并根據(jù)所述界面標(biāo)識(shí)定位到起始應(yīng)用界面;
[0095]從起始應(yīng)用界面開(kāi)始,按照深度優(yōu)先的規(guī)則順次遍歷各級(jí)應(yīng)用界面中的控件。
[0096]進(jìn)一步的,處理單元54,用于啟動(dòng)shell命令,將界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行input語(yǔ)句。
[0097]進(jìn)一步的,記錄單元55,用于:
[0098]記錄各級(jí)應(yīng)用界面中控件的點(diǎn)擊路徑;
[0099]當(dāng)發(fā)生進(jìn)程崩潰時(shí),根據(jù)點(diǎn)擊路徑確定導(dǎo)致進(jìn)程崩潰的點(diǎn)擊過(guò)程。
[0100]進(jìn)一步的,如圖6所示,該測(cè)試終端進(jìn)一步包括:
[0101]計(jì)數(shù)單元56,用于對(duì)處理單元54點(diǎn)擊控件的模擬點(diǎn)擊次數(shù)進(jìn)行計(jì)數(shù);
[0102]處理單元54,用于在再次進(jìn)行模擬點(diǎn)擊之前,讀取計(jì)數(shù)單元56記錄的計(jì)數(shù)值,若計(jì)數(shù)值已達(dá)到預(yù)設(shè)數(shù)量,則取消對(duì)控件的模擬點(diǎn)擊操作。
[0103]進(jìn)一步的,如圖6所示,該測(cè)試終端進(jìn)一步包括:
[0104]計(jì)時(shí)單元57,用于對(duì)執(zhí)行單元52執(zhí)行的UI測(cè)試的過(guò)程進(jìn)行計(jì)時(shí);
[0105]執(zhí)行單元52,用于當(dāng)計(jì)時(shí)單元57記錄的UI測(cè)試的耗時(shí)超過(guò)預(yù)設(shè)時(shí)長(zhǎng)時(shí),終止Π測(cè)試過(guò)程。
[0106]進(jìn)一步的,如圖6所示,該測(cè)試終端進(jìn)一步包括:
[0107]發(fā)送單元58,用于在記錄單元55記錄點(diǎn)擊控件產(chǎn)生的測(cè)試結(jié)果之后,向中控服務(wù)器上報(bào)記錄單元55記錄的測(cè)試結(jié)果。
[0108]進(jìn)一步的,作為對(duì)上述圖1或圖2所示方法的實(shí)現(xiàn),本發(fā)明另一實(shí)施例還提供了一種用戶界面的測(cè)試系統(tǒng)。如圖7所示,該系統(tǒng)包括中控服務(wù)器71及測(cè)試終端72 ;
[0109]中控服務(wù)器71,用于接收測(cè)試指令,測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面Π測(cè)試,獲取被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包下發(fā)給測(cè)試終端72 ;
[0110]測(cè)試終端72,用于根據(jù)中控服務(wù)器71下發(fā)的數(shù)據(jù)包啟動(dòng)運(yùn)行被測(cè)應(yīng)用,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),根據(jù)界面坐標(biāo)對(duì)控件進(jìn)行模擬點(diǎn)擊,并記錄點(diǎn)擊控件產(chǎn)生的測(cè)試結(jié)果。
[0111]綜上所述,本發(fā)明實(shí)施例所采用的中控服務(wù)器、測(cè)試終端及系統(tǒng),能夠由中控服務(wù)器接收測(cè)試指令,接收被測(cè)應(yīng)用的數(shù)據(jù)包,并將數(shù)據(jù)包發(fā)送給測(cè)試終端,由測(cè)試終端獲取被測(cè)應(yīng)用界面中的控件界面坐標(biāo),根據(jù)所獲取的坐標(biāo)進(jìn)行模擬點(diǎn)擊測(cè)試,同時(shí)將測(cè)試結(jié)果記錄下來(lái),并將該結(jié)果再上報(bào)給中控服務(wù)器。通過(guò)該方法所進(jìn)行的UI測(cè)試,測(cè)試人員只需要對(duì)中控服務(wù)器發(fā)送測(cè)試指令,然后只需要等待中控服務(wù)器與測(cè)試終端對(duì)被測(cè)應(yīng)用的自動(dòng)測(cè)試,最后由測(cè)試終端獲取測(cè)試結(jié)果并上報(bào)給中控服務(wù)器,測(cè)試人員可以通過(guò)中控服務(wù)器獲取最終的測(cè)試結(jié)果用以分析給被測(cè)應(yīng)用的可靠性,相對(duì)于現(xiàn)有技術(shù),使用本方案可以省去測(cè)試人員對(duì)測(cè)試用例的編寫(xiě),也不需要對(duì)被測(cè)試對(duì)象、測(cè)試方式、預(yù)期結(jié)果等內(nèi)容進(jìn)行界定,并且通過(guò)對(duì)Π界面中控件的模擬點(diǎn)擊次數(shù)的計(jì)數(shù),以及限制測(cè)試的總時(shí)長(zhǎng)還起到了簡(jiǎn)單有效的防止測(cè)試進(jìn)入死循環(huán)狀況出現(xiàn)的作用,同時(shí)大幅降低了測(cè)試人員的工作強(qiáng)度,從根本上解決了 UI控件測(cè)試過(guò)程復(fù)雜、繁瑣的問(wèn)題。
[0112]進(jìn)一步的,本發(fā)明還公開(kāi)了:
[0113]Al、一種用戶界面的測(cè)試方法,所述方法包括:
[0114]中控服務(wù)器接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;
[0115]所述中控服務(wù)器獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給測(cè)試終端;
[0116]所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);
[0117]所述測(cè)試終端根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊;
[0118]所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0119]A2、根據(jù)Al所述的方法,所述中控服務(wù)器接收測(cè)試指令,包括:
[0120]所述中控服務(wù)器通過(guò)Web頁(yè)面顯示包含可選應(yīng)用的列表或菜單;
[0121]在測(cè)試人員選中所述可選應(yīng)用時(shí),所述中控服務(wù)器獲得所述測(cè)試指令,并將選中的所述可選應(yīng)用確定為所述被測(cè)應(yīng)用。
[0122]A3、根據(jù)Al所述的方法,所述測(cè)試終端獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),包括:
[0123]所述測(cè)試終端調(diào)用Accessibility接口遍歷所述應(yīng)用界面中的控件,并獲得各項(xiàng)控件的界面坐標(biāo)。
[0124]A4、根據(jù)A3所述的方法,所述測(cè)試終端調(diào)用Accessibility接口遍歷所述應(yīng)用界面中的控件,包括:
[0125]所述測(cè)試終端獲取所述被測(cè)應(yīng)用的首界面的界面標(biāo)識(shí),并根據(jù)所述界面標(biāo)識(shí)定位到起始應(yīng)用界面;
[0126]所述測(cè)試終端從所述起始應(yīng)用界面開(kāi)始,按照深度優(yōu)先的規(guī)則順次遍歷各級(jí)應(yīng)用界面中的控件。
[0127]A5、根據(jù)Al所述的方法,所述測(cè)試終端根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊,包括:
[0128]所述測(cè)試終端啟動(dòng)shell命令,將所述界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行所述input語(yǔ)句。
[0129]A6、根據(jù)Al所述的方法,所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果,包括:
[0130]所述測(cè)試終端記錄各級(jí)應(yīng)用界面中控件的點(diǎn)擊路徑;
[0131]當(dāng)發(fā)生進(jìn)程崩潰時(shí),所述測(cè)試終端根據(jù)所述點(diǎn)擊路徑確定導(dǎo)致進(jìn)程崩潰的點(diǎn)擊過(guò)程。
[0132]A7、根據(jù)Al所述的方法,所述方法進(jìn)一步包括:
[0133]所述測(cè)試終端對(duì)所述控件的模擬點(diǎn)擊次數(shù)進(jìn)行計(jì)數(shù);
[0134]在再次進(jìn)行模擬點(diǎn)擊之前,所述測(cè)試終端讀取所述計(jì)數(shù)值;
[0135]若所述計(jì)數(shù)值已達(dá)到預(yù)設(shè)數(shù)量,則取消對(duì)所述控件的模擬點(diǎn)擊操作。
[0136]A8、根據(jù)Al所述的方法,所述方法進(jìn)一步包括:
[0137]所述測(cè)試終端對(duì)所述UI測(cè)試的過(guò)程進(jìn)行計(jì)時(shí);
[0138]當(dāng)所述Π測(cè)試的耗時(shí)超過(guò)預(yù)設(shè)時(shí)長(zhǎng)時(shí),所述測(cè)試終端終止所述Π測(cè)試過(guò)程。
[0139]A9、根據(jù)Al所述的方法,在所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果之后,所述方法進(jìn)一步包括:
[0140]所述測(cè)試終端向所述中控服務(wù)器上報(bào)所述測(cè)試結(jié)果。
[0141]B10、一種中控服務(wù)器,所述中控服務(wù)器包括:
[0142]接收單元,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試;
[0143]獲取單元,用于根據(jù)所述接收單元接收的所述測(cè)試指令獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包;
[0144]發(fā)送單元,用于將所述獲取單元獲取的所述數(shù)據(jù)包下發(fā)給測(cè)試終端,以使得所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,對(duì)所述被測(cè)應(yīng)用的UI控件進(jìn)行測(cè)試。
[0145]B11、根據(jù)BlO所述的中控服務(wù)器,所述接收單元,包括:
[0146]處理子單元,用于發(fā)送Web頁(yè)面顯示包含可選應(yīng)用的列表或菜單;
[0147]確定子單元,用于在測(cè)試人員選中所述可選應(yīng)用時(shí),獲得所述測(cè)試指令,并將選中的所述可選應(yīng)用確定為所述被測(cè)應(yīng)用。
[0148]B12、根據(jù)BlO所述的中控服務(wù)器,所述接收單元,用于接收所述測(cè)試終端上報(bào)的測(cè)試結(jié)果。
[0149]C13、一種測(cè)試終端,所述測(cè)試終端包括:
[0150]接收單元,用于接收中控服務(wù)器下發(fā)的被測(cè)應(yīng)用的數(shù)據(jù)包;
[0151]執(zhí)行單元,用于根據(jù)所述接收單元接收的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用;
[0152]獲取單元,用于在所述執(zhí)行單元運(yùn)行所述被測(cè)應(yīng)用的過(guò)程中,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo);
[0153]處理單元,用于根據(jù)所述獲取單元獲取的所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊;
[0154]記錄單元,用于記錄所述處理單元點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0155]C14、根據(jù)C13所述的測(cè)試終端,所述獲取單元,用于調(diào)用Accessibility接口遍歷所述應(yīng)用界面中的控件,并獲得各項(xiàng)控件的界面坐標(biāo)。
[0156]C15、根據(jù)C14所述的測(cè)試終端,所述獲取單元,用于:
[0157]獲取所述被測(cè)應(yīng)用的首界面的界面標(biāo)識(shí),并根據(jù)所述界面標(biāo)識(shí)定位到起始應(yīng)用界面;
[0158]從所述起始應(yīng)用界面開(kāi)始,按照深度優(yōu)先的規(guī)則順次遍歷各級(jí)應(yīng)用界面中的控件。
[0159]C16、根據(jù)C13所述的測(cè)試終端,所述處理單元,用于啟動(dòng)shell命令,將所述界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行所述input語(yǔ)句。
[0160]C17、根據(jù)C13所述的測(cè)試終端,所述記錄單元,用于:
[0161]記錄各級(jí)應(yīng)用界面中控件的點(diǎn)擊路徑;
[0162]當(dāng)發(fā)生進(jìn)程崩潰時(shí),根據(jù)所述點(diǎn)擊路徑確定導(dǎo)致進(jìn)程崩潰的點(diǎn)擊過(guò)程。
[0163]C18、根據(jù)C13所述的測(cè)試終端,所述測(cè)試終端進(jìn)一步包括:
[0164]計(jì)數(shù)單元,用于對(duì)所述處理單元點(diǎn)擊所述控件的模擬點(diǎn)擊次數(shù)進(jìn)行計(jì)數(shù);
[0165]所述處理單元,用于在再次進(jìn)行模擬點(diǎn)擊之前,讀取所述計(jì)數(shù)單元記錄的所述計(jì)數(shù)值,若所述計(jì)數(shù)值已達(dá)到預(yù)設(shè)數(shù)量,則取消對(duì)所述控件的模擬點(diǎn)擊操作。
[0166]C19、根據(jù)C13所述的測(cè)試終端,所述測(cè)試終端進(jìn)一步包括:
[0167]計(jì)時(shí)單元,用于對(duì)所述執(zhí)行單元執(zhí)行的所述UI測(cè)試的過(guò)程進(jìn)行計(jì)時(shí);
[0168]所述執(zhí)行單元,用于當(dāng)所述計(jì)時(shí)單元記錄的所述UI測(cè)試的耗時(shí)超過(guò)預(yù)設(shè)時(shí)長(zhǎng)時(shí),終止所述Π測(cè)試過(guò)程。
[0169]C20、根據(jù)C13所述的測(cè)試終端,所述測(cè)試終端進(jìn)一步包括:
[0170]發(fā)送單元,用于在所述記錄單元記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果之后,向所述中控服務(wù)器上報(bào)所述記錄單元記錄的所述測(cè)試結(jié)果。
[0171]D21、一種用戶界面的測(cè)試系統(tǒng),所述系統(tǒng)包括中控服務(wù)器及測(cè)試終端;
[0172]所述中控服務(wù)器,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面Π測(cè)試,獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給所述測(cè)試終端;
[0173]所述測(cè)試終端,用于根據(jù)所述中控服務(wù)器下發(fā)的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊,并記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
[0174]在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0175]可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
[0176]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0177]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0178]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0179]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0180]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0181]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0182]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的發(fā)明名稱(如確定網(wǎng)站內(nèi)鏈接等級(jí)的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0183] 應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
【權(quán)利要求】
1.一種用戶界面的測(cè)試方法,其特征在于,所述方法包括: 中控服務(wù)器接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試; 所述中控服務(wù)器獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給測(cè)試終端; 所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,并獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo); 所述測(cè)試終端根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊; 所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述中控服務(wù)器接收測(cè)試指令,包括: 所述中控服務(wù)器通過(guò)Web頁(yè)面顯示包含可選應(yīng)用的列表或菜單; 在測(cè)試人員選中所述可選應(yīng)用時(shí),所述中控服務(wù)器獲得所述測(cè)試指令,并將選中的所述可選應(yīng)用確定為所述被測(cè)應(yīng)用。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測(cè)試終端獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),包括: 所述測(cè)試終端調(diào)用Accessibility接口遍歷所述應(yīng)用界面中的控件,并獲得各項(xiàng)控件的界面坐標(biāo)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述測(cè)試終端調(diào)用Accessibility接口遍歷所述應(yīng)用界面中的控件,包括: 所述測(cè)試終端獲取所述被測(cè)應(yīng)用的首界面的界面標(biāo)識(shí),并根據(jù)所述界面標(biāo)識(shí)定位到起始應(yīng)用界面; 所述測(cè)試終端從所述起始應(yīng)用界面開(kāi)始,按照深度優(yōu)先的規(guī)則順次遍歷各級(jí)應(yīng)用界面中的控件。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測(cè)試終端根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊,包括: 所述測(cè)試終端啟動(dòng)shell命令,將所述界面坐標(biāo)寫(xiě)入到input語(yǔ)句中并執(zhí)行所述input語(yǔ)句。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測(cè)試終端記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果,包括: 所述測(cè)試終端記錄各級(jí)應(yīng)用界面中控件的點(diǎn)擊路徑; 當(dāng)發(fā)生進(jìn)程崩潰時(shí),所述測(cè)試終端根據(jù)所述點(diǎn)擊路徑確定導(dǎo)致進(jìn)程崩潰的點(diǎn)擊過(guò)程。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括: 所述測(cè)試終端對(duì)所述控件的模擬點(diǎn)擊次數(shù)進(jìn)行計(jì)數(shù); 在再次進(jìn)行模擬點(diǎn)擊之前,所述測(cè)試終端讀取所述計(jì)數(shù)值; 若所述計(jì)數(shù)值已達(dá)到預(yù)設(shè)數(shù)量,則取消對(duì)所述控件的模擬點(diǎn)擊操作。
8.一種中控服務(wù)器,其特征在于,所述中控服務(wù)器包括: 接收單元,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面UI測(cè)試; 獲取單元,用于根據(jù)所述接收單元接收的所述測(cè)試指令獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包; 發(fā)送單元,用于將所述獲取單元獲取的所述數(shù)據(jù)包下發(fā)給測(cè)試終端,以使得所述測(cè)試終端根據(jù)所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,對(duì)所述被測(cè)應(yīng)用的Π控件進(jìn)行測(cè)試。
9.一種測(cè)試終端,其特征在于,所述測(cè)試終端包括: 接收單元,用于接收中控服務(wù)器下發(fā)的被測(cè)應(yīng)用的數(shù)據(jù)包; 執(zhí)行單元,用于根據(jù)所述接收單元接收的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用; 獲取單元,用于在所述執(zhí)行單元運(yùn)行所述被測(cè)應(yīng)用的過(guò)程中,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo); 處理單元,用于根據(jù)所述獲取單元獲取的所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊; 記錄單元,用于記錄所述處理單元點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
10.一種用戶界面的測(cè)試系統(tǒng),其特征在于,所述系統(tǒng)包括中控服務(wù)器及測(cè)試終端; 所述中控服務(wù)器,用于接收測(cè)試指令,所述測(cè)試指令用于指示對(duì)選定的被測(cè)應(yīng)用進(jìn)行用戶界面Π測(cè)試,獲取所述被測(cè)應(yīng)用的數(shù)據(jù)包,并將所述數(shù)據(jù)包下發(fā)給所述測(cè)試終端;所述測(cè)試終端,用于根據(jù)所述中控服務(wù)器下發(fā)的所述數(shù)據(jù)包啟動(dòng)運(yùn)行所述被測(cè)應(yīng)用,獲取應(yīng)用界面中各項(xiàng)控件的界面坐標(biāo),根據(jù)所述界面坐標(biāo)對(duì)所述控件進(jìn)行模擬點(diǎn)擊,并記錄點(diǎn)擊所述控件產(chǎn)生的測(cè)試結(jié)果。
【文檔編號(hào)】G06F11/36GK104461900SQ201410805346
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】田野, 張輝, 韓競(jìng)競(jìng) 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
澎湖县| 科尔| 临泽县| 南丹县| 保康县| 崇明县| 阳新县| 呼和浩特市| 凤城市| 宜昌市| 深水埗区| 拜城县| 长岛县| 郎溪县| 山丹县| 农安县| 萨嘎县| 佳木斯市| 科技| 乾安县| 舟山市| 华坪县| 双江| 南京市| 隆子县| 璧山县| 吉水县| 抚松县| 曲水县| 雅安市| 仁化县| 万荣县| 永修县| 莫力| 遂川县| 聊城市| 义乌市| 射洪县| 胶州市| 会理县| 靖州|