實(shí)現(xiàn)智能終端ui自動(dòng)化測試的系統(tǒng)及方法
【專利摘要】本發(fā)明涉及一種實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法,用于對智能終端執(zhí)行用戶界面測試,其中包括:錄制模塊,用以從所述的智能終端獲取用戶操作信息,并錄制成操作指令腳本,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;回放模塊,用以將操作指令腳本轉(zhuǎn)化為操作指令,并發(fā)送至所述的智能終端;以使所述的智能終端根據(jù)所述的操作指令執(zhí)行測試。采用該種結(jié)構(gòu)的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法,不僅有效地實(shí)現(xiàn)了對同種智能終端多次測試的大大簡化,并且實(shí)現(xiàn)了對于不同的智能終端的兼容,可以在具有不同分辨率的智能終端上執(zhí)行同一個(gè)測試腳本,可以做到一次錄制,在不同的智能終端上進(jìn)行多次快速的自動(dòng)化測試。
【專利說明】
實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及UI測試技術(shù)領(lǐng)域,尤其涉及智能終端ui測試技術(shù)領(lǐng)域,具體是指一種實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法?!颈尘凹夹g(shù)】
[0002]用戶界面(User interfaCe,UI)測試是指測試用戶界面的功能模塊的布局是否合理,整體風(fēng)格是否一致,以及各個(gè)控件的放置位置是否符合客戶使用習(xí)慣等,目的是確保用戶界面會(huì)通過測試對象的功能來為用戶提供相應(yīng)的訪問或?yàn)g覽功能。因此UI測試對于各種智能終端如手機(jī)、平板電腦等的廣泛應(yīng)用十分重要。同時(shí),由于智能終端的種類和數(shù)量繁多,單純的人工測試成本和耗時(shí)會(huì)很大,由此催生了UI自動(dòng)化測試。
[0003]現(xiàn)有技術(shù)中的UI自動(dòng)化測試通常基于屏幕錄制,事件(比如點(diǎn)擊)定位基于屏幕坐標(biāo)?;胤艜r(shí)根據(jù)屏幕坐標(biāo)還原事件,實(shí)現(xiàn)UI自動(dòng)化測試。如圖1所示,現(xiàn)有技術(shù)中的UI自動(dòng)化測試的過程一般為:控制服務(wù)器獲取被測程序的數(shù)據(jù)包,將數(shù)據(jù)包下發(fā)給測試終端;測試終端根據(jù)數(shù)據(jù)包獲取用戶界面中各項(xiàng)控件的界面坐標(biāo);測試終端根據(jù)界面坐標(biāo)對控件進(jìn)行模擬操作;測試終端記錄控件產(chǎn)生的測試結(jié)果。這種方式可以省去測試人員對測試用例的編寫,在一定程度上降低了測試人員的工作強(qiáng)度。
[0004]然而隨著科技的不斷發(fā)展和用戶不同需求的增長,智能終端的種類越來越多?,F(xiàn)有技術(shù)中的UI自動(dòng)化測試只是解決了對于同種類型,尤其是顯示屏具有相同尺寸和相同分辨率的智能終端多次測試的簡化,而沒有解決在不同的智能終端上的測試兼容問題。由于智能終端的多樣化,不同的智能終端通常有多種屏幕分辨率,這樣同一回放腳本在不同分辨率的終端上回放時(shí),無法真實(shí)還原事件,必須針對不同分辨率錄制不同的腳本,從這一角度來看仍然是增加了工作量。因此,UI測試的兼容問題顯得刻不容緩。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點(diǎn),提供了一種能夠?qū)崿F(xiàn)一次錄制可以在不同智能終端上自動(dòng)化測試、提高多種不同分辨率用戶界面的測試兼容性的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法具有如下構(gòu)成:
[0007]該實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),用于對智能終端執(zhí)行用戶界面測試,所述的系統(tǒng)包括:
[0008]錄制模塊,用以從所述的智能終端獲取用戶操作信息,并錄制成操作指令腳本,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;和
[0009]回放模塊,用以將操作指令腳本轉(zhuǎn)化為操作指令,并發(fā)送至所述的智能終端;以使所述的智能終端根據(jù)所述的操作指令執(zhí)行測試。
[0010]可選地,回放模塊在將操作指令腳本轉(zhuǎn)化為操作指令之后,將操作指令分成每條并按照腳本中的順序依次發(fā)送給所述的智能終端。
[0011]所述的智能終端用以根據(jù)所述的操作指令執(zhí)行測試。
[0012]可選地,所述的系統(tǒng)還可以包括測試評價(jià)模塊,用以根據(jù)測試結(jié)果進(jìn)行測試評價(jià)。
[0013]本發(fā)明的技術(shù)方案通過選用控件ID作為控件在錄制和回放過程中的標(biāo)志,其在智能終端操作系統(tǒng)中具有唯一性和不可替換性并且不受分辨率的影響,從而不僅有效地實(shí)現(xiàn)了對同種智能終端多次測試的大大簡化,并且實(shí)現(xiàn)了對于不同的智能終端的兼容。
[0014]為了更好地實(shí)現(xiàn)錄制過程中控制ID的獲取以及回放過程中測試事件的構(gòu)造,可選地,所述的系統(tǒng)還包括如下功能模塊:
[0015]測試代理模塊,用以獲取與操作關(guān)聯(lián)的控件ID,將所述的控件ID和操作數(shù)據(jù)發(fā)送至所述的錄制模塊,以及根據(jù)所述的操作指令構(gòu)造測試事件;和
[0016]控制存儲(chǔ)模塊,用以獲取用戶的操作數(shù)據(jù),并根據(jù)所述的測試事件執(zhí)行測試。
[0017]可選地,所述的測試代理模塊包括:
[0018]通訊單元,用以與所述的錄制模塊和回放模塊進(jìn)行通訊;
[0019]操作監(jiān)聽單元,用以通過所述的控制存儲(chǔ)模塊監(jiān)聽用戶的操作,并在智能終端存儲(chǔ)中查詢與操作關(guān)聯(lián)的控件ID;
[0020]事件模擬單元,用以將所述的操作指令解析成控件ID和操作數(shù)據(jù),并構(gòu)造測試事件,以及將測試事件插入智能終端的程序執(zhí)行隊(duì)列。
[0021]其中,本發(fā)明的智能終端可以是智能手機(jī)、平板電腦、機(jī)頂盒等多種具有智能操作系統(tǒng)的設(shè)備,應(yīng)用范圍十分廣泛,通訊單元可以采用多種方式,例如USB或網(wǎng)絡(luò)與測試主機(jī)進(jìn)行通訊。
[0022]本發(fā)明的操作指令腳本中不僅可以記錄控件坐標(biāo),還需要記錄控件ID。事件模擬單元在構(gòu)造測試事件的過程中,同樣也需要通過所述的控制存儲(chǔ)模塊查找指令中控件ID所對應(yīng)的控件。
[0023]本發(fā)明技術(shù)方案還提供一種實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,所述的方法包括以下步驟:
[0024](1)所述的智能終端將用戶操作信息發(fā)送至所述的錄制模塊,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;
[0025](2)所述的錄制模塊將所述的用戶操作信息錄制成操作指令腳本;
[0026](3)所述的回放模塊將操作指令腳本轉(zhuǎn)化為操作指令發(fā)送至所述的智能終端;
[0027](4)所述的智能終端根據(jù)所述的操作指令執(zhí)行測試。
[0028]由上述技術(shù)方案可知,通過測試代理模塊、存儲(chǔ)模塊和控制模塊基于測試框架來獲取控制ID,在測試工作中,測試代理模塊、存儲(chǔ)模塊和控制模塊協(xié)同配合,在測試之前不必再特別編寫測試用例,錄制模塊可以根據(jù)需要錄制智能終端發(fā)送過來的數(shù)據(jù)得到測試腳本,大大提高了測試效率,即使智能終端具有不同的分辨率,也能普遍適用于同一種測試方法,而不會(huì)因?yàn)榭丶鴺?biāo)的改變而導(dǎo)致測試出錯(cuò),適用于大規(guī)模的推廣應(yīng)用。【附圖說明】
[0029]圖1為現(xiàn)有技術(shù)中UI自動(dòng)化測試的方法的示意圖。
[0030]圖2為本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)的結(jié)構(gòu)示意圖。[0031 ]圖3為本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法的流程圖。
[0032]圖4為本發(fā)明的方法中錄制過程的示意圖。[〇〇33]圖5為本發(fā)明的方法中回放過程的示意圖。[〇〇34]圖6為本發(fā)明的通過測試框架獲取控件ID的示意圖。[〇〇35]附圖標(biāo)記:
[0036]1〇〇錄制模塊
[0037]200回放模塊[〇〇38]300測試代理模塊
[0039]301通訊單元[〇〇4〇] 302操作監(jiān)聽單元 [〇〇41 ]303事件模擬單元
[0042]400存儲(chǔ)模塊
[0043]500控制模塊【具體實(shí)施方式】[〇〇44]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實(shí)施例來進(jìn)行進(jìn)一步的描述。
[0045]為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案的基本原理為:錄制模塊100將用戶對界面的操作錄制下來,保存于操作指令腳本文件中,錄制模塊1〇〇在錄制過程中需要獲取與操作關(guān)聯(lián)的控件ID;回放模塊200調(diào)用操作指令腳本文件,把操作指令腳本文件轉(zhuǎn)換成操作指令,操作指令中包含與操作關(guān)聯(lián)的控件ID,并發(fā)送操作指令到智能終端完成測試事件模擬。
[0046]下面對本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法進(jìn)行進(jìn)一步細(xì)化的描述:
[0047]首先對于本發(fā)明的系統(tǒng)進(jìn)行介紹。如圖2所示,本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)包括錄制模塊100和回放模塊200,錄制模塊100和回放模塊200可以根據(jù)需要選擇設(shè)置在智能終端或測試主機(jī)中,圖2中給出了一個(gè)將錄制模塊100和回放模塊200設(shè)置于測試主機(jī)的實(shí)施例,在實(shí)際應(yīng)用中不限于這種設(shè)置方式,其中:
[0048]錄制模塊100,用以從所述的智能終端獲取用戶操作信息,并錄制成操作指令腳本,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;和回放模塊200,用以將操作指令腳本轉(zhuǎn)化為操作指令,并發(fā)送至所述的智能終端;所述的智能終端用以根據(jù)所述的操作指令執(zhí)行測試。
[0049]本發(fā)明的錄制模塊100在錄制操作指令腳本時(shí),獲取的用戶操作信息中需要包含與操作關(guān)聯(lián)的控件ID。軟件開發(fā)過程中,控件ID—般的生成方式為:當(dāng)添加一個(gè)控件時(shí),集成開發(fā)環(huán)境會(huì)以控件名加一個(gè)序號來自動(dòng)生成ID。因此每個(gè)控件只會(huì)有一個(gè)與之對應(yīng)的控件ID,該控件ID從而具有唯一性和不可替代性。
[0050]在一種較佳的實(shí)施方式中,所述的系統(tǒng)還包括測試代理模塊300、控制模塊500和存儲(chǔ)模塊400,同樣地,這三個(gè)模塊可以根據(jù)需要設(shè)置在智能終端或測試主機(jī)中,其中: [〇〇51]測試代理模塊300,用以獲取與操作關(guān)聯(lián)的控件ID,將所述的控件ID和操作數(shù)據(jù)發(fā)送至所述的錄制模塊100,以及根據(jù)所述的操作指令構(gòu)造測試事件;存儲(chǔ)模塊400,可以為智能終端操作系統(tǒng)的系統(tǒng)模塊,用以獲取用戶的操作數(shù)據(jù),查詢智能操作系統(tǒng)信息;控制模塊 500,可以構(gòu)造事件數(shù)據(jù)來模擬用戶輸入,根據(jù)所述的測試事件執(zhí)行測試。[〇〇52] 本發(fā)明通過測試代理模塊300查詢事件坐標(biāo)上對應(yīng)的控件ID,控件ID在整個(gè)系統(tǒng)中唯一,可以唯一定位。錄制模塊100在錄制操作指令腳本時(shí),不僅記錄坐標(biāo),還記錄控件 ID。而回放模塊200在將操作指令腳本翻譯成操作指令時(shí),查詢控件ID的坐標(biāo)位置,可以還原事件坐標(biāo),從而達(dá)到操作相同控件的目的。[〇〇53]其中,測試代理模塊300可以根據(jù)屏幕坐標(biāo)查詢控件ID,也可以根據(jù)控件ID查詢控件的坐標(biāo)和大小。[〇〇54]此處對智能終端中模塊的劃分是功能性的劃分,即根據(jù)智能終端需要具有的功能進(jìn)行了一個(gè)更細(xì)致的分類。而其他具有這些功能的技術(shù)方案,即使選用了不同的功能劃分, 即劃分成不同的功能模塊,也能實(shí)現(xiàn)本發(fā)明的目的和技術(shù)效果,而這些包含了上述功能的技術(shù)方案,也屬于本發(fā)明的保護(hù)范圍之內(nèi)。
[0055]為了更清楚地說明本發(fā)明的技術(shù)方案,對所述的測試代理模塊300的功能進(jìn)行進(jìn)一步的劃分,所述的測試代理模塊300包括通訊單元301、操作監(jiān)聽單元302和事件模擬單元 303,其中:[0〇56] 通訊單元301,用以與所述的錄制模塊100和回放模塊200進(jìn)行通訊;操作監(jiān)聽單元 302,用以通過所述的存儲(chǔ)模塊400監(jiān)聽用戶的操作,并在智能終端存儲(chǔ)中查詢與操作關(guān)聯(lián)的控件ID;事件模擬單元303,用以將所述的操作指令解析成控件ID和操作數(shù)據(jù),獲取控件信息,并構(gòu)造測試事件,以及將測試事件插入智能終端的程序執(zhí)行隊(duì)列。[0〇57]在一種較佳的實(shí)施方式中,所述的通訊單元301可以通過Socket建立的監(jiān)聽服務(wù)端接收所述的操作指令。所述的通訊單元301可以通過TCP或UDP與所述的錄制模塊100和回放模塊200進(jìn)行通訊,通訊方式采用客戶端/服務(wù)端的通訊模型。測試Agent通訊模塊可用 socket編程接口實(shí)現(xiàn)。[〇〇58]然而在實(shí)際應(yīng)用中,所述的智能終端與測試主機(jī)的通訊還可以采用其他更適合的方式,可以由使用者根據(jù)需求和環(huán)境進(jìn)行選擇。智能終端和測試主機(jī)之間可以通過無線、 USB、藍(lán)牙、紅外等方式傳輸數(shù)據(jù)。通訊單元301獲取操作指令的方式也可以更改,只要能實(shí)時(shí)從回放模塊200中獲取到進(jìn)行測試的操作指令即可實(shí)現(xiàn)本技術(shù)方案。
[0059]測試代理模塊300需要有智能終端的系統(tǒng)權(quán)限,能夠監(jiān)聽系統(tǒng)事件,在系統(tǒng)層攔截系統(tǒng)事件,即所有事件都會(huì)經(jīng)過測試代理模塊300。操作監(jiān)聽單元302查詢智能終端操作系統(tǒng)的存儲(chǔ)模塊400,得到被操作UI的控件ID,組成操作指令,交給通信單元。
[0060]在一種較佳的實(shí)施方式中,所述的系統(tǒng)還包括可以設(shè)置于智能終端或測試主機(jī)的測試評價(jià)模塊,所述的智能終端還用以將測試執(zhí)行結(jié)果發(fā)送至所述的測試評價(jià)模塊,所述的測試評價(jià)模塊用以根據(jù)所述的測試執(zhí)行結(jié)果進(jìn)行測試評價(jià)。
[0061]在實(shí)際應(yīng)用中,對測試執(zhí)行結(jié)果評價(jià)的方式有很多,用戶可以根據(jù)測評的重點(diǎn)不同進(jìn)行選擇。在本發(fā)明的一種【具體實(shí)施方式】中,所述的測試執(zhí)行結(jié)果需要包括當(dāng)前活動(dòng)的 UI屬性信息,所述的測試評價(jià)模塊用以將當(dāng)前活動(dòng)的UI屬性信息與基準(zhǔn)數(shù)據(jù)進(jìn)行對比并判斷測試是否通過,如果UI屬性信息在基準(zhǔn)數(shù)據(jù)的預(yù)設(shè)范圍之內(nèi),則判斷測試通過,否則判斷測試不通過。
[0062]在一種較佳的實(shí)施方式中,所述的用戶操作信息還可以包括與操作關(guān)聯(lián)的控件的坐標(biāo)和大小,更方便對控件進(jìn)行定位和測試。
[0063]在一種較佳的實(shí)施方式中,所述的智能終端包括但不限于手機(jī)、平板電腦、筆記本電腦或機(jī)頂盒,所述的測試主機(jī)包括但不限于PC、工作站或服務(wù)器。本發(fā)明的技術(shù)方案可以用于多種不同智能終端的自動(dòng)化測試,應(yīng)用范圍十分廣泛。智能終端需要具有智能操作系統(tǒng),智能終端和測試主機(jī)之間可以通過USB、網(wǎng)絡(luò)進(jìn)行通訊。[〇〇64]基于上述系統(tǒng),本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法的流程如圖3所示,包括如下步驟:
[0065](1)所述的智能終端將用戶操作信息發(fā)送至所述的錄制模塊100,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;
[0066](2)所述的錄制模塊100將所述的用戶操作信息錄制成操作指令腳本;
[0067](3)所述的回放模塊200將操作指令腳本轉(zhuǎn)化為操作指令發(fā)送至所述的智能終端;
[0068](4)所述的智能終端根據(jù)所述的操作指令執(zhí)行測試。
[0069]在一種較佳的實(shí)施方式中,所述的步驟(4)后,還包括以下步驟:
[0070](5)所述的測試評價(jià)模塊根據(jù)測試結(jié)果進(jìn)行測試評價(jià)。
[0071]下面以一個(gè)具體實(shí)施例來進(jìn)一步介紹本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法:
[0072]本發(fā)明的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法主要包括兩大部分:錄制過程和回放過程。[0〇73]1、錄制過程
[0074]如圖4所示,錄制模塊100實(shí)現(xiàn)用戶操作的錄制。錄制過程分為四個(gè)階段,基本過程描述如下:[〇〇75](1)智能終端的測試代理模塊300與測試主機(jī)建立連接并通信;
[0076](2)在智能終端啟動(dòng)被測程序,進(jìn)入初始界面,在錄制模塊100界面上點(diǎn)擊錄制。錄制模塊100通知測試代理模塊300進(jìn)入錄制模式,測試代理模塊300從智能終端操作系統(tǒng)的存儲(chǔ)模塊400獲取智能終端上的所有操作輸入。[〇〇77](3)測試代理模塊300從智能終端操作系統(tǒng)的存儲(chǔ)模塊400查詢被操作UI元素的控件ID。將控件ID、事件、時(shí)長等數(shù)據(jù)傳給錄制模塊100。[〇〇78]測試代理模塊300和錄制模塊100之間傳遞數(shù)據(jù)的類型可以根據(jù)實(shí)際需要修改,事件的各種相關(guān)數(shù)據(jù)可以采用通用的格式進(jìn)行錄制,從而實(shí)現(xiàn)不同智能終端上測試腳本的通用兼容性,也可以附加對于某種智能終端特有的格式數(shù)據(jù),實(shí)現(xiàn)智能終端UI不同種類的功能測試。
[0079](4)在錄制模塊100界面上點(diǎn)擊結(jié)束錄制,錄制模塊100生成操作指令腳本文件,錄制過程結(jié)束。
[0080]該操作指令腳本中由于包含了具有系統(tǒng)唯一性的控件ID,以及具有通用格式和內(nèi)容的事件數(shù)據(jù),可以實(shí)現(xiàn)同一個(gè)測試腳本很好地應(yīng)用于各種不同智能終端的測試,而不必針對不同的智能終端編寫不同的測試腳本,節(jié)省了錄制時(shí)間,也節(jié)省了多個(gè)測試腳本與多種智能終端之間查找匹配的時(shí)間,大大提高了測試效率。
[0081]2、回放過程[〇〇82]回放模塊200完成測試腳本的自動(dòng)化執(zhí)行?;胤拍K200的UI操作模擬通過測試主機(jī)和智能終端的交互來完成,智能終端的測試代理模塊300通過Socket建立一個(gè)監(jiān)聽服務(wù)端,監(jiān)聽測試主機(jī)PC端發(fā)來的指令,并模擬事件動(dòng)作的執(zhí)行。本實(shí)施例中的測試代理模塊 300有兩個(gè)主要功能:一是與測試主機(jī)通信,二是監(jiān)聽動(dòng)作。
[0083]如圖5所示,一個(gè)操作指令的操作模擬需要以下四個(gè)步驟來完成:
[0084](1)所述的回放模塊200根據(jù)所述的操作指令腳本中記錄的操作順序進(jìn)行回放,程序從腳本中讀取到操作指令,通過socket依次發(fā)送操作指令給測試代理模塊300;[〇〇85]其中,回放模塊200發(fā)送給測試代理模塊300的操作指令是一個(gè)四元組,表現(xiàn)形式為:
[0086](ControlID,EventType,Act1n,EventData)
[0087]每個(gè)操作指令表示一個(gè)用戶操作,它精確的反應(yīng)了操作的控件和用戶對控件進(jìn)行的操作。
[0088]其中,Control ID為UI元素的ID,具有系統(tǒng)唯一性和不可替換性;EventType表示事件類型,包括key事件、mot 1n事件和time事件。其中key表示點(diǎn)擊鍵盤輸入類型。Mot1n表示click、拖拽類型,time表示定時(shí)事件類型;Act 1n表示事件動(dòng)作,比如key事件有key down、key up;EventData表示事件關(guān)聯(lián)的數(shù)據(jù),比如key類型為keycode。
[0089]此處只是操作指令的一個(gè)簡單的示例。實(shí)際應(yīng)用中,操作指令包含的內(nèi)容、格式、 事件類型的分類、事件動(dòng)作的分類以及事件關(guān)聯(lián)的數(shù)據(jù)均可以由測試人員自主定義,只要能夠包含控制ID,且包含的其他數(shù)據(jù)可以還原用戶之前的操作即可。
[0090](2)當(dāng)所述的測試代理模塊300接收一條指令后,首先檢查操作指令是否符合定義。由于操作指令均有統(tǒng)一的格式和定義,測試代理模塊300可以很容易地從一條操作指令中對信息進(jìn)行分類,分別從操作指令中分離出控件ID、EventType、Act1n、EventData信息。 [〇〇91]然后所述的測試代理模塊300根據(jù)控件ID,通過所述的存儲(chǔ)模塊400查詢智能操作系統(tǒng)中對應(yīng)的控件,進(jìn)一步查詢到系統(tǒng)中控件的位置,通過位置信息和動(dòng)作,構(gòu)造系統(tǒng)事件;本發(fā)明的測試代理模塊300可以在錄制過程中通過控件的坐標(biāo)查詢得到控件ID,也可以在回放過程中通過控件ID查詢得到控件的坐標(biāo);
[0092](3)所述的測試代理模塊300將構(gòu)建的系統(tǒng)事件依次插入到智能終端系統(tǒng)的消息隊(duì)列中。智能終端系統(tǒng)處理到這些事件的時(shí)候,完成模擬;[〇〇93](4)指令執(zhí)行完畢后,所述的測試代理模塊300返回執(zhí)行結(jié)果給測試主機(jī)PC端。同時(shí),在回放程序執(zhí)行過程中,系統(tǒng)要判斷檢查點(diǎn)。檢查點(diǎn)處,執(zhí)行完動(dòng)作后系統(tǒng)要獲取當(dāng)前 Activity的UI屬性信息,所述的測試評價(jià)模塊將信息和基準(zhǔn)數(shù)據(jù)進(jìn)行對比,判斷測試是否通過。在實(shí)際應(yīng)用中,測試評價(jià)的方法還可以采用其他方式,并且可以由測試者自主選擇, 用以匹配不同類型的UI功能測試。
[0094]在所述的測試代理模塊300監(jiān)聽事件和模擬系統(tǒng)事件的功能中,都需要獲取控件 ID,這個(gè)在本實(shí)施例中可以通過測試框架來實(shí)現(xiàn)。比如Robotium,它提供了模擬各種手勢操作(點(diǎn)擊、長按、滑動(dòng)等)、查找和斷言機(jī)制的API(API為操作系統(tǒng)留給應(yīng)用程序的一個(gè)調(diào)用接口,應(yīng)用程序通過調(diào)用操作系統(tǒng)的API而使操作系統(tǒng)去執(zhí)行應(yīng)用程序的命令),能夠?qū)Ω鞣N控件進(jìn)行操作。
[0095]如圖6所示,在本實(shí)施例中,測試代理模塊300的實(shí)現(xiàn)借助于測試框架提供的接口, 在事件監(jiān)聽時(shí)查詢控件ID,在事件模擬單元303中,解析出控件ID、事件信息,通過測試框架接口,發(fā)往智能終端系統(tǒng)的事件隊(duì)列。在實(shí)際應(yīng)用中,本發(fā)明的技術(shù)方案不限于采用該種方式獲取控件ID和執(zhí)行測試事件。
[0096]采用了該發(fā)明中的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng)及方法,具有如下有益效果:
[0097](1)采用本發(fā)明的技術(shù)方案,通過選用控件ID作為控件在錄制和回放過程中的標(biāo)志,其在智能終端操作系統(tǒng)中具有唯一性和不可替換性并且不受分辨率的影響,從而不僅有效地實(shí)現(xiàn)了對同種智能終端多次測試的大大簡化,并且實(shí)現(xiàn)了對于不同的智能終端的兼容,可以在具有不同分辨率的智能終端上執(zhí)行同一個(gè)測試腳本,可以做到一次錄制,在不同的智能終端上進(jìn)行多次快速的自動(dòng)化測試;[〇〇98] (2)本發(fā)明的方法特別適用于UI自動(dòng)化回歸測試;回歸測試是指修改了舊代碼后, 重新進(jìn)行測試以確認(rèn)修改沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤,自動(dòng)回歸測試將大幅降低系統(tǒng)測試、維護(hù)升級等階段的成本,其作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測試過程中占有很大的工作量比重,軟件開發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測試,在漸進(jìn)和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進(jìn)行的更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進(jìn)回歸測試的效率和有效性是非常有意義的;
[0099](3)本發(fā)明的回放模塊在發(fā)送操作指令時(shí),設(shè)置檢查點(diǎn),由測試主機(jī)根據(jù)測試程序反饋回來的測試結(jié)果與基準(zhǔn)數(shù)據(jù)對比進(jìn)行綜合評價(jià),保證整個(gè)測試過程的順利進(jìn)行,并且在關(guān)鍵點(diǎn)充分了解測試情況,達(dá)到UI功能測試的目的;
[0100](4)本發(fā)明的技術(shù)方案中通過測試代理模塊、存儲(chǔ)模塊和控制模塊基于測試框架來獲取控制ID,在測試工作中,測試代理模塊、存儲(chǔ)模塊和控制模塊協(xié)同配合,在測試之前不必再特別編寫測試用例,錄制模塊可以根據(jù)需要錄制智能終端發(fā)送過來的數(shù)據(jù)得到測試腳本,大大提高了測試效率,可以廣泛應(yīng)用于各種智能終端如手機(jī)、平板電腦等的UI自動(dòng)化測試,具有更廣泛的應(yīng)用范圍。
[0101]在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
【主權(quán)項(xiàng)】
1.一種實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),用于對智能終端執(zhí)行用戶界面測試,其特 征在于,所述的系統(tǒng)包括:錄制模塊,用以從所述的智能終端獲取用戶操作信息,并錄制成操作指令腳本,所述的 用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;和回放模塊,用以將操作指令腳本轉(zhuǎn)化為操作指令,并發(fā)送至所述的智能終端;以使所述 的智能終端根據(jù)所述的操作指令執(zhí)行測試。2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的系統(tǒng) 還包括:測試代理模塊,用以獲取與操作關(guān)聯(lián)的控件ID,將所述的控件ID和操作數(shù)據(jù)發(fā)送至所 述的錄制模塊,以及根據(jù)所述的操作指令構(gòu)造測試事件;和存儲(chǔ)模塊,用以獲取用戶的操作數(shù)據(jù)并存儲(chǔ);控制模塊,用以根據(jù)所述的測試事件執(zhí)行智能終端用戶界面測試。3.根據(jù)權(quán)利要求2所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的測試 代理模塊包括:通訊單元,用以與所述的錄制模塊和回放模塊進(jìn)行通訊;操作監(jiān)聽單元,用以通過所述的存儲(chǔ)模塊監(jiān)聽用戶的操作,并在智能終端存儲(chǔ)中查詢 與操作關(guān)聯(lián)的控件ID;事件模擬單元,用以將所述的操作指令解析成控件ID和操作數(shù)據(jù),并構(gòu)造測試事件,以 及將測試事件插入智能終端的程序執(zhí)行隊(duì)列。4.根據(jù)權(quán)利要求3所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的通訊 單元通過Socket建立的監(jiān)聽服務(wù)端接收所述的操作指令;或者所述的通訊單元通過TCP或 UDP與所述的錄制模塊和回放模塊進(jìn)行通訊,通訊方式采用客戶端/服務(wù)端的通訊模型。5.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的系統(tǒng) 還包括測試評價(jià)模塊,所述的智能終端還用以將測試執(zhí)行結(jié)果發(fā)送至所述的測試評價(jià)模 塊,所述的測試評價(jià)模塊用以根據(jù)所述的測試執(zhí)行結(jié)果進(jìn)行測試評價(jià)。6.根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的測試 執(zhí)行結(jié)果包括當(dāng)前活動(dòng)的UI屬性信息,所述的測試評價(jià)模塊用以將當(dāng)前活動(dòng)的UI屬性信息 與基準(zhǔn)數(shù)據(jù)進(jìn)行對比,如果UI屬性信息在基準(zhǔn)數(shù)據(jù)的預(yù)設(shè)范圍之內(nèi),則判斷測試通過,否則 判斷測試不通過。7.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的操作 數(shù)據(jù)包括操作類型、操作動(dòng)作和與操作關(guān)聯(lián)的數(shù)據(jù),所述的操作類型包括鍵盤輸入類型操 作、點(diǎn)擊/拖拽類型操作和定時(shí)事件類型操作。8.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的用戶 操作信息還包括與操作關(guān)聯(lián)的控件的坐標(biāo)和大小。9.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的系統(tǒng),其特征在于,所述的智能 終端為手機(jī)、平板電腦、筆記本電腦或機(jī)頂盒。10.—種基于權(quán)利要求1至9中任一項(xiàng)所述的系統(tǒng)實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法, 其特征在于,所述的方法包括以下步驟:(1)所述的智能終端將用戶操作信息發(fā)送至所述的錄制模塊,所述的用戶操作信息包括操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID;(2)所述的錄制模塊將所述的用戶操作信息錄制成操作指令腳本;(3)所述的回放模塊將操作指令腳本轉(zhuǎn)化為操作指令發(fā)送至所述的智能終端;(4)所述的智能終端根據(jù)所述的操作指令執(zhí)行測試。11.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的系 統(tǒng)還包括測試代理模塊和存儲(chǔ)模塊,所述的步驟(1 ),包括以下步驟:(1-1)所述的存儲(chǔ)模塊獲取用戶的操作數(shù)據(jù);(1-2)所述的測試代理模塊通過所述的存儲(chǔ)模塊查詢與操作關(guān)聯(lián)的控件ID;(1-3)所述的測試代理模塊將所述的操作數(shù)據(jù)和與操作關(guān)聯(lián)的控件ID發(fā)送至所述的錄 制豐吳塊。12.根據(jù)權(quán)利要求11所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的測 試代理模塊包括操作監(jiān)聽單元,所述的步驟(1-2),包括以下步驟:(1-2-1)所述的操作監(jiān)聽單元通過所述的存儲(chǔ)模塊監(jiān)聽用戶的操作;(1-2-2)所述的操作監(jiān)聽單元在智能終端存儲(chǔ)中查詢與操作關(guān)聯(lián)的控件ID。13.根據(jù)權(quán)利要求11所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的系 統(tǒng)還包括控制模塊,所述的步驟(4),包括以下步驟:(4-1)所述的測試代理模塊根據(jù)操作指令構(gòu)造測試事件;(4-2)所述的控制模塊根據(jù)所述的測試事件執(zhí)行測試。14.根據(jù)權(quán)利要求13所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的測 試代理模塊包括通訊單元和事件模擬單元,所述的步驟(4-1),包括以下步驟:(4-1-1)所述的通訊單元接收所述的操作指令;(4-1-2)所述的事件模擬單元將所述的操作指令解析成控件ID和操作數(shù)據(jù);(4-1-3)所述的事件模擬單元構(gòu)造測試事件;(4-1-4)所述的事件模擬單元將測試事件插入智能終端的程序執(zhí)行隊(duì)列。15.根據(jù)權(quán)利要求14所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的通 訊單元接收所述的操作指令,具體為:所述的通訊單元通過Socket建立的監(jiān)聽服務(wù)端接收所述的操作指令。16.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的步 驟(3),包括以下步驟:(3-1)所述的回放模塊將所述的操作指令腳本轉(zhuǎn)化為操作指令;(3-2)所述的回放模塊根據(jù)腳本中的順序?qū)⑺龅牟僮髦噶钜来伟l(fā)送至所述的智能終端。17.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的系 統(tǒng)還包括測試評價(jià)模塊,所述的步驟(4)之后,還包括以下步驟:(5-1)所述的智能終端將測試執(zhí)行結(jié)果發(fā)送至所述的測試評價(jià)模塊;(5-2)所述的測試評價(jià)模塊根據(jù)所述的測試執(zhí)行結(jié)果進(jìn)行測試評價(jià)。18.根據(jù)權(quán)利要求17所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的測 試執(zhí)行結(jié)果包括當(dāng)前活動(dòng)的UI屬性信息,所述的測試評價(jià)模塊根據(jù)所述的測試執(zhí)行結(jié)果進(jìn) 行測試評價(jià),具體為:所述的測試評價(jià)模塊將當(dāng)前活動(dòng)的UI屬性信息與基準(zhǔn)數(shù)據(jù)進(jìn)行對比,如果UI屬性信息 在基準(zhǔn)數(shù)據(jù)的預(yù)設(shè)范圍之內(nèi),則判斷測試通過,否則判斷測試不通過。19.根據(jù)權(quán)利要求17所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的步 驟(5-2)之后,還包括以下步驟:(5-3)所述的回放模塊判斷所述的操作指令腳本中是否執(zhí)行完畢,如果是,則結(jié)束退 出,否則繼續(xù)步驟(3)。20.根據(jù)權(quán)利要求19所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的 (5-1)和(5-2)之間,還包括以下步驟:(5-1-1)所述的測試評價(jià)模塊判斷當(dāng)前節(jié)點(diǎn)是否為系統(tǒng)預(yù)設(shè)檢查點(diǎn),如果是,則繼續(xù)步 驟(5-2),否則繼續(xù)步驟(5-3)。21.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)智能終端UI自動(dòng)化測試的方法,其特征在于,所述的操 作數(shù)據(jù)包括操作類型、操作動(dòng)作和與操作關(guān)聯(lián)的數(shù)據(jù),所述的操作類型包括鍵盤輸入類型 操作、點(diǎn)擊/拖拽類型操作和定時(shí)事件類型操作。
【文檔編號】G06F11/36GK106021099SQ201610311161
【公開日】2016年10月12日
【申請日】2016年5月12日
【發(fā)明人】陳正勇
【申請人】上海聯(lián)彤網(wǎng)絡(luò)通訊技術(shù)有限公司