專利名稱:Android應(yīng)用程序測(cè)試方法和測(cè)試裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及程序測(cè)試領(lǐng)域,尤其涉及一種Android應(yīng)用程序測(cè)試方法和測(cè)試裝置。
背景技術(shù):
軟件測(cè)試,一直都是應(yīng)用程序開(kāi)發(fā)中非常關(guān)鍵也是非常繁瑣的一環(huán),對(duì)Android(安卓)應(yīng)用程序的測(cè)試來(lái)說(shuō)尤其如此。隨著基于Android操作系統(tǒng)的智能設(shè)備的日益普及,Android應(yīng)用程序數(shù)量也越來(lái)越多,功能越來(lái)越復(fù)雜,針對(duì)Android應(yīng)用程序的功能測(cè)試、穩(wěn)定性測(cè)試也顯得愈發(fā)重要。由于Android興起較晚,Android測(cè)試手段相對(duì)于其它的軟件測(cè)試來(lái)說(shuō)相對(duì)落后,目前大量的Android應(yīng)用程序的測(cè)試都是依賴于人工完成,這些測(cè)試工作不僅重復(fù)性較高,且人力投入比較大;因此迫切的需要Android自動(dòng)化測(cè)試技術(shù)來(lái)提高測(cè)試效率,節(jié)省測(cè)試的人力物力投入。目前Android自動(dòng)化測(cè)試工具有Monkey (猴子工具,谷歌提供的一種自動(dòng)化隨機(jī)測(cè)試工具)、MonkeyRunner (猴子跑步工具,另一種自動(dòng)化隨機(jī)測(cè)試工具)等,測(cè)試人員利用這些工具編寫測(cè)試腳本時(shí)需依賴于編程的實(shí)現(xiàn)。而現(xiàn)實(shí)情況是,對(duì)于測(cè)試人員,其編程基礎(chǔ)往往比較薄弱,很難有效的利用這些工具,自動(dòng)化用例編寫成本和維護(hù)成本都較大,因此需要一種更為方便測(cè)試人員應(yīng)用的、無(wú)需編程的Android自動(dòng)化測(cè)試框架來(lái)幫助測(cè)試人員完成自動(dòng)化測(cè)試。公開(kāi)號(hào)為CN102521118的專利“一種Android程序的自動(dòng)測(cè)試方法”、公開(kāi)號(hào)為CN101957793的專利“一種面向Android及其衍生系統(tǒng)的軟件操作錄制回放方法”以及公開(kāi)號(hào)為CN102419732的專利“基于android平臺(tái)的自動(dòng)化測(cè)試方法及測(cè)試工具”,均通過(guò)錄制-回放的方式實(shí)現(xiàn)Android應(yīng)用程序的自動(dòng)化測(cè)試,即首先通過(guò)錄制操作事件并生成android平臺(tái)可執(zhí)行腳本的腳本錄制步驟;其次在設(shè)備對(duì)象接收到執(zhí)行腳本的命令后執(zhí)行所述可執(zhí)行腳本的腳本執(zhí)行步驟。這種錄制-回放式的自動(dòng)化測(cè)試方法操作相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,無(wú)需編程,但嚴(yán)重依賴與屏幕的尺寸和坐標(biāo),一旦屏幕尺寸發(fā)生改變或界面布局發(fā)生變化,則測(cè)試人員需重新錄制腳本;因此,這種錄制-回放的測(cè)試方式仍然會(huì)比較麻煩,不夠便捷。此外,公開(kāi)號(hào)為CN102141960的專利“一種基于Android的自動(dòng)化測(cè)試方法”將測(cè)試用例生成APK文件,調(diào)用Monkey指令實(shí)現(xiàn)自動(dòng)化。該方法操作界面可視化。但此方法在編寫測(cè)試用例時(shí),由于是通過(guò)打包成APK(Android Application Package,安卓應(yīng)用程序安裝包)的方式,對(duì)編程技能要求較高,需要測(cè)試用例編寫人員熟悉Android應(yīng)用開(kāi)發(fā)才能編寫測(cè)試用例。綜上所述,現(xiàn)有技術(shù)的Android應(yīng)用程序的測(cè)試方法不夠便捷,需要一種更為方便測(cè)試人員應(yīng)用的、無(wú)需編程的Android自動(dòng)化測(cè)試方法。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種Android應(yīng)用程序測(cè)試方法和測(cè)試裝置,可以更為方便地實(shí)現(xiàn)對(duì)Android應(yīng)用程序的測(cè)試。根據(jù)本發(fā)明的一個(gè)方面,提供了一種Android應(yīng)用程序測(cè)試方法,包括從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;其中,所述操作步驟的關(guān)鍵字包括序號(hào)、操作類型、操作對(duì)象;所述操作對(duì)象的配置值為UI元素的標(biāo)識(shí)或文本信息;依據(jù)解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作。進(jìn)一步,所述操作步驟的關(guān)鍵字還包括校驗(yàn)值,所述校驗(yàn)值的配置值為期望Π元素的標(biāo)識(shí)或文本信息;在執(zhí)行操作步驟的測(cè)試后,還包括將該操作步驟的校驗(yàn)值的配置值與所述元素操作工具返回的執(zhí)行結(jié)果進(jìn)行比對(duì);若所述執(zhí)行結(jié)果中包含有該操作步驟的校驗(yàn)值的配置值,則確認(rèn)該操作步驟的測(cè)試結(jié)果為成功;否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗。進(jìn)一步,在所述確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗后,還包括通過(guò)所述元素操作工具對(duì)被測(cè)的Android應(yīng)用程序進(jìn)行截屏操作,保留屏幕信肩、O較佳地,所述操作步驟的關(guān)鍵字還包括輸入值;以及所述對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試,還包括若該操作步驟的操作類型的配置值為input,則所述元素操作工具還根據(jù)該操作步驟的輸入值的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行輸入操作。較佳地,所述測(cè)試用例是基于可擴(kuò)展標(biāo)示語(yǔ)言XML的;以及在所述依次執(zhí)行各操作步驟的測(cè)試之前,還包括從所述測(cè)試用例中解析出如下關(guān)鍵字的配置值超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔;以及在所述執(zhí)行各操作步驟的測(cè)試時(shí),還包括監(jiān)控測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)超時(shí)時(shí)間的配置值則提出告警信息;依據(jù)解析出的步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔;依據(jù)解析出的循環(huán)次數(shù)的配置值,控制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種Android應(yīng)用程序測(cè)試裝置,包括測(cè)試用例解析模塊,用于從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;其中,所述操作步驟的關(guān)鍵字包括序號(hào)、操作類型、操作對(duì)象;所述操作對(duì)象的配置值為UI元素的標(biāo)識(shí)或文本信息;
測(cè)試執(zhí)行模塊,用于依據(jù)所述測(cè)試用例解析模塊解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作。進(jìn)一步,所述裝置還包括
測(cè)試用例生成模塊,用于根據(jù)測(cè)試者輸入的各操作步驟的關(guān)鍵字的配置值,生成所述測(cè)試用例;測(cè)試用例存儲(chǔ)模塊,用于存儲(chǔ)所述測(cè)試用例生成模塊生成的測(cè)試用例;以及所述測(cè)試用例解析模塊還用于從所述測(cè)試用例存儲(chǔ)模塊獲取所述測(cè)試用例。較佳地,所述操作步驟的關(guān)鍵字還包括校驗(yàn)值,所述校驗(yàn)值的配置值為期望Π元素的標(biāo)識(shí)或文本信息;以及測(cè)試執(zhí)行模塊還用于在所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)Π元素進(jìn)行相應(yīng)操作后,獲取所述元素操作工具返回的執(zhí)行結(jié)果;以及所述裝置還包括測(cè)試結(jié)果判定模塊,用于從所述測(cè)試執(zhí)行模塊獲取所述執(zhí)行結(jié)果,并將該操作步驟的校驗(yàn)值的配置值與所述執(zhí)行結(jié)果進(jìn)行比對(duì);若所述執(zhí)行結(jié)果中包含有該操作步驟的校驗(yàn)值的配置值,則確認(rèn)該操作步驟的測(cè)試結(jié)果為成功;否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗。進(jìn)一步,所述裝置還包括測(cè)試結(jié)果顯示模塊,用 于獲取所述測(cè)試結(jié)果判定模塊確認(rèn)的各操作步驟的測(cè)試結(jié)果,并以HTML頁(yè)面形式進(jìn)行顯示。進(jìn)一步,所述測(cè)試用例生成模塊還用于還根據(jù)測(cè)試者輸入的如下關(guān)鍵字的配置值生成所述測(cè)試用例超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔;以及所述測(cè)試用例解析模塊還用于從所述測(cè)試用例中解析出所述超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值;以及所述測(cè)試執(zhí)行模塊還用于獲取所述測(cè)試用例解析模塊解析出的超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值;并在所述依次執(zhí)行各操作步驟的測(cè)試時(shí),監(jiān)控測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)所述超時(shí)時(shí)間的配置值則提出告警信息;依據(jù)所述步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔;依據(jù)所述循環(huán)次數(shù)的配置值,控制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。本發(fā)明實(shí)施例的技術(shù)方案中,由于測(cè)試人員可以方便地配置基于關(guān)鍵字的測(cè)試用例;而通過(guò)對(duì)測(cè)試用例中的關(guān)鍵字進(jìn)行解析,并在底層調(diào)用元素操作工具實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用程序中的Π元素的操作,從而自動(dòng)完成測(cè)試過(guò)程。這樣,測(cè)試人員只需進(jìn)行簡(jiǎn)單的關(guān)鍵字配置,不需要進(jìn)行復(fù)雜的編程就可生成測(cè)試用例進(jìn)行測(cè)試;而且,即使屏幕尺寸發(fā)生改變或界面布局發(fā)生變化,仍然可使用之前配置了關(guān)鍵字的測(cè)試用例進(jìn)行測(cè)試,不需重新生成測(cè)試用例,大大為測(cè)試人員提供了測(cè)試的便捷性。
圖1為本發(fā)明實(shí)施例的支持多種協(xié)議的基于消息的測(cè)試方法流程圖;圖2為本發(fā)明實(shí)施例的支持多種協(xié)議的基于消息的測(cè)試系統(tǒng)結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例的Android應(yīng)用程序測(cè)試方法流程 圖4為本發(fā)明實(shí)施例的測(cè)試驅(qū)動(dòng)模塊內(nèi)部結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。然而,需要說(shuō)明的是,說(shuō)明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對(duì)本發(fā)明的一個(gè)或多個(gè)方面有一個(gè)透徹的理解,即便沒(méi)有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。本申請(qǐng)使用的“模塊”、“系統(tǒng)”等術(shù)語(yǔ)旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來(lái)說(shuō),計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個(gè)或多個(gè)模塊可以位于執(zhí)行中的一個(gè)進(jìn)程和/或線程內(nèi),一個(gè)模塊也可以位于一臺(tái)計(jì)算機(jī)上和/或分布于兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。本發(fā)明的發(fā)明人對(duì)Android應(yīng)用程序的測(cè)試過(guò)程進(jìn)行分析,發(fā)現(xiàn)對(duì)Android應(yīng)用程序的測(cè)試可以分解為多個(gè)操作步驟,在每個(gè)操作步驟中分別針對(duì)某個(gè)UI元素進(jìn)行操作,例如,針對(duì)某個(gè)UI元素進(jìn)行click (點(diǎn)擊)、或input (輸入)操作等?;谠摲治觯景l(fā)明提供的基于關(guān)鍵字的測(cè)試用例中,測(cè)試人員針對(duì)每個(gè)操作步驟配置的關(guān)鍵字包括序號(hào)(index)、操作類型(operation type)、操作對(duì)象(target)、輸入值(value)等。而測(cè)試人員對(duì)測(cè)試用例中的關(guān)鍵字進(jìn)行配置,即設(shè)置測(cè)試用例中的關(guān)鍵字的值,便可完成測(cè)試用例的生成。本發(fā)明實(shí)施例提供的測(cè)試裝置可以自動(dòng)解析測(cè)試用例,根據(jù)測(cè)試用例中的關(guān)鍵字在底層調(diào)用元素操作工具,如MonkeyRunner、Monkey等,執(zhí)行測(cè)試并返回執(zhí)行結(jié)果,完成測(cè)試。除了調(diào)用MonkeyRunner或Monkey工具封裝的各種接口,也可以直接調(diào)用Adb Shell指令(ADB殼命令)作為元素操作 工具,來(lái)完成對(duì)UI元素的各種操作。ADB (Android DebugBridge,安卓調(diào)試橋)殼命令是android提供的一套命令行工具。為便于描述,本文中將可以在底層對(duì)Android應(yīng)用程序中的UI(User Interface,用戶界面)元素進(jìn)行操作的工具統(tǒng)稱為元素操作工具。由于技術(shù)人員只需進(jìn)行簡(jiǎn)單的關(guān)鍵字配置,不需要進(jìn)行復(fù)雜的編程就可生成測(cè)試用例進(jìn)行測(cè)試,使得技術(shù)人員可以更為便捷地進(jìn)行Android應(yīng)用程序的測(cè)試;而且,相對(duì)于錄制-回放的測(cè)試方法,不需錄制腳本,即使屏幕尺寸發(fā)生改變或界面布局發(fā)生變化,仍然可使用之前配置了關(guān)鍵字的測(cè)試用例進(jìn)行測(cè)試,不需重新生成測(cè)試用例,大大為測(cè)試人員提供了測(cè)試的便捷性。下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案。本發(fā)明實(shí)施例的技術(shù)方案中,生成基于關(guān)鍵字的測(cè)試用例的方法流程,如圖1所示,包括如下步驟SlOl :測(cè)試人員配置測(cè)試用例中各操作步驟的關(guān)鍵字。在本步驟中,測(cè)試人員按測(cè)試過(guò)程中各操作步驟執(zhí)行的順序,依次配置各操作步驟的關(guān)鍵字。測(cè)試人員可以通過(guò)軟件提供的測(cè)試用例生成界面,輸入各操作步驟的關(guān)鍵字的配置值;具體地,測(cè)試人員可以通過(guò)測(cè)試用例生成界面進(jìn)行各操作步驟的關(guān)鍵字的如下配置:輸入整數(shù)數(shù)值作為操作步驟的序號(hào)的配置值,操作步驟的序號(hào)的配置值用以表示操作步驟執(zhí)行的順序;例如,依次輸入的各操作步驟的序號(hào)的配置值分別為1、2、3、4、5……輸入操作類型的名稱或標(biāo)識(shí),如click、input等,作為操作步驟的操作類型的配置值;輸入U(xiǎn)I元素的標(biāo)識(shí)(ID)或文本信息作為操作步驟的操作對(duì)象的配置值;若配置的操作步驟的操作類型的值為input (輸入),則還需配置該操作步驟的輸入值,用以在對(duì)Π元素進(jìn)行input操作時(shí),作為input操作的輸入值。S102 :根據(jù)測(cè)試人員配置的關(guān)鍵字生成測(cè)試用例。根據(jù)配置的各操作步驟的關(guān)鍵字所生成的測(cè)試用例具體可以是基于XML(Extensive Makeup Language,可擴(kuò)展標(biāo)示語(yǔ)言)格式的,或者文本格式的,或者腳本語(yǔ)言形式的。較佳地,基于XML的測(cè)試用例更便于解析。應(yīng)用上述步驟生成的測(cè)試用例進(jìn)行Android應(yīng)用程序測(cè)試的系統(tǒng),如圖2所示,包括測(cè)試裝置101和被測(cè)設(shè)備102。測(cè)試裝置101根據(jù)上述步驟生成的測(cè)試用例,對(duì)被測(cè)設(shè)備102中的Android應(yīng)用程序進(jìn)行測(cè)試;具體的測(cè)試方 法流程如圖3所示,包括如下步驟S301 :測(cè)試裝置101與被測(cè)設(shè)備102建立連接后,測(cè)試裝置101發(fā)送指令啟動(dòng)被測(cè)設(shè)備102中被測(cè)的Android應(yīng)用程序。在本步驟中,測(cè)試裝置101發(fā)送adb connect指令連接到被測(cè)設(shè)備102后,再向被測(cè)設(shè)備102發(fā)送am start指令啟動(dòng)被測(cè)的Android應(yīng)用程序。S302 :測(cè)試裝置101解析出測(cè)試用例中各操作步驟的關(guān)鍵字的配置值。在本步驟中,針對(duì)每個(gè)操作步驟,測(cè)試裝置101解析出測(cè)試用例中該操作步驟的關(guān)鍵字的配置值,即解析出該操作步驟的序號(hào)、操作類型、操作對(duì)象、輸入值的配置值。S303 :測(cè)試裝置101根據(jù)解析出的操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試。具體地,測(cè)試裝置101根據(jù)解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行對(duì)各操作步驟的測(cè)試。對(duì)其中一個(gè)操作步驟執(zhí)行測(cè)試的具體過(guò)程為根據(jù)解析出的該操作步驟的操作類型、操作對(duì)象的配置值,調(diào)用元素操作工具,比如MonkeyRunner工具;元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI (user interface,用戶界面)元素進(jìn)行相應(yīng)操作;例如,調(diào)用MonkeyRunner工具后,MonkeyRunner工具根據(jù)為操作對(duì)象所配置的UI元素的標(biāo)識(shí)或文本信息,以及為操作類型配置的操作類型名稱或標(biāo)識(shí),對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作,例如對(duì)某個(gè)相應(yīng)UI元素進(jìn)行點(diǎn)擊(click)操作,完成測(cè)試過(guò)程中的該操作步驟。對(duì)于操作類型的配置值為input (輸入)的操作步驟,對(duì)該操作步驟執(zhí)行測(cè)試的具體過(guò)程為調(diào)用MonkeyRunner工具后,MonkeyRunner工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,還根據(jù)該操作步驟的輸入值的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素,根據(jù)輸入值的配置值進(jìn)行輸入操作。S304 :測(cè)試裝置101獲取測(cè)試執(zhí)行結(jié)果,根據(jù)測(cè)試用例中的操作步驟的檢驗(yàn)值(verify),判斷出測(cè)試結(jié)果并記錄。進(jìn)一步,針對(duì)每個(gè)操作步驟,測(cè)試用例中的操作步驟的關(guān)鍵字還可包括檢驗(yàn)值(verify);測(cè)試人員在上述步驟SlOl中也可對(duì)操作步驟的檢驗(yàn)值進(jìn)行配置測(cè)試人員可以通過(guò)測(cè)試用例生成界面,輸入期望UI元素的標(biāo)識(shí)或文本信息作為操作步驟的檢驗(yàn)值。在上述步驟S303根據(jù)解析出的操作步驟的操作類型、操作對(duì)象的配置值,調(diào)用元素操作工具執(zhí)行了一個(gè)操作步驟的測(cè)試后,元素操作工具還可返回該操作步驟的執(zhí)行結(jié)果;例如,調(diào)用MonkeyRunner工具后,MonkeyRunner工具返回一個(gè)UI元素集合,以及該集合中每個(gè)Π元素的屬性信息,作為該操作步驟的執(zhí)行結(jié)果。測(cè)試裝置101在獲取元素操作工具返回的執(zhí)行結(jié)果后,將該操作步驟的檢驗(yàn)值的配置值與執(zhí)行結(jié)果進(jìn)行比對(duì);若比對(duì)出執(zhí)行結(jié)果中包含有該操作步驟的檢驗(yàn)值的配置值,即執(zhí)行結(jié)果中包含有期望UI元素的標(biāo)識(shí)或文本信息,則認(rèn)為執(zhí)行結(jié)果為期望的執(zhí)行結(jié)果,確認(rèn)該操作步驟的測(cè)試結(jié)果為成功,可記錄該操作步驟的測(cè)試結(jié)果為Pass,即該操作步驟的測(cè)試結(jié)果為通過(guò);否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗,記錄該操作步驟的測(cè)試結(jié)果為失敗Fail。較佳地,在確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗后,測(cè)試裝置101通過(guò)元素操作工具對(duì)被測(cè)的Android應(yīng)用程序進(jìn)行截屏操作(screenshot),保留出錯(cuò)時(shí)的屏幕信息,便于測(cè)試結(jié)束后進(jìn)行分析。S305 :清理測(cè)試場(chǎng)景。在依次執(zhí)行測(cè)試用例中的各操作步驟的測(cè)試完畢后,為保證后續(xù)的測(cè)試用例不會(huì)受到影響,則進(jìn)行清理測(cè)試場(chǎng)景的操作,具體包括關(guān)閉當(dāng)前的被測(cè)的Android應(yīng)用程序;若有出錯(cuò)界面,還要關(guān)閉出錯(cuò)界面。S306 :顯示根據(jù)測(cè)試用例執(zhí)行測(cè)試的測(cè)試結(jié)果。具體地,將上述各操作步驟的測(cè)試結(jié)果,作為根據(jù)測(cè)試用例執(zhí)行測(cè)試的測(cè)試結(jié)果進(jìn)行顯示。較佳地,可通過(guò)HTML (Hypertext Markup Language,超文本標(biāo)記語(yǔ)言)頁(yè)面的形式進(jìn)行測(cè)試結(jié)果的顯示 針對(duì)每個(gè)測(cè)試用例顯示的測(cè)試結(jié)果包括一個(gè)Global Result (測(cè)試總結(jié)果)以及多個(gè)Step Results (操作步驟的測(cè)試結(jié)果)。其中Global Result代表該測(cè)試用例最終的測(cè)試結(jié)果(Pass代表執(zhí)行通過(guò),F(xiàn)ail代表失敗);Step Results則是測(cè)試用例中每個(gè)操作步驟的測(cè)試結(jié)果(Pass代表執(zhí)行通過(guò),F(xiàn)ail代表失敗)。此外,測(cè)試結(jié)果的HTML頁(yè)面上還有測(cè)試結(jié)果報(bào)表的鏈接;通過(guò)該鏈接,可以查看測(cè)試結(jié)果報(bào)表,在測(cè)試結(jié)果報(bào)表中集成了在測(cè)試過(guò)程中保存的出錯(cuò)時(shí)的屏幕信息,以及在測(cè)試過(guò)程中測(cè)試裝置101通過(guò)向被測(cè)設(shè)備102發(fā)送Iogcat指令獲取的Logcat日志,在測(cè)試過(guò)程中測(cè)試裝置101通過(guò)向被測(cè)設(shè)備102發(fā)送dumpsys指令獲取的CPU內(nèi)存使用情況等信息。測(cè)試人員通過(guò)保存的出錯(cuò)時(shí)的屏幕信息可以直觀觀察測(cè)試出錯(cuò)的界面,通過(guò)Logcat日志、CPU (Central Processing Unit,中央處理機(jī))內(nèi)存使用等信息便于定位出錯(cuò)信息。更優(yōu)地,測(cè)試用例中的關(guān)鍵字還可包括超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔等;測(cè)試人員在上述步驟SlOl中還可對(duì)關(guān)鍵字超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔進(jìn)行配置;即通過(guò)測(cè)試用例生成界面,輸入超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值。測(cè)試裝置101在上述步驟S302中還可從測(cè)試用例中解析出超時(shí)時(shí)間的配置值、循環(huán)次數(shù)的配置值、步驟間隔的配置值;測(cè)試裝置101依據(jù)解析出的超時(shí)時(shí)間的配置值,監(jiān)控上述步驟S303中依次執(zhí)行各操作步驟的測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)超時(shí)時(shí)間的配置值則提出告警信息;測(cè)試裝置101依據(jù)解析出的步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔;測(cè)試裝置101依據(jù)解析出的循環(huán)次數(shù)的配置值,控制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。圖4示出了上述的測(cè)試裝置101中的內(nèi)部結(jié)構(gòu)框圖,包括測(cè)試用例解析模塊401、測(cè)試執(zhí)行模塊402、測(cè)試用例生成模塊403、測(cè)試用例存儲(chǔ)模塊404。測(cè)試用例生成模塊403用于根據(jù)測(cè)試者輸入的測(cè)試用例中的各操作步驟的關(guān)鍵字的配置值,生成所述測(cè)試用例;進(jìn)一步,測(cè)試用例生成模塊403還可接收如下關(guān)鍵字的配置值超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔;并還根據(jù)這些關(guān)鍵字來(lái)生成所述測(cè)試用例。具體地,測(cè)試用例解析模塊401可提供測(cè)試用例生成界面,測(cè)試人員通過(guò)測(cè)試用例生成界面輸入各操作步驟的關(guān)鍵字的配置值,以及超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔等關(guān)鍵字的配置值。測(cè)試用例存儲(chǔ)模塊404用于存儲(chǔ)所述測(cè)試用例生成模塊生成的測(cè)試用例。測(cè)試用例解析模塊401用于從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;其中,所述操作步驟的關(guān)鍵字包括序號(hào)、操作類型、操作對(duì)象;所述操作對(duì)象的配置值為UI元素的標(biāo)識(shí)或文本信息;進(jìn)一步,測(cè)試用例解析模塊401還用于從所述測(cè)試用例中解析出所述超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值。測(cè)試執(zhí)行模塊402用于依據(jù)測(cè)試用例解析模塊401解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)Π元素進(jìn)行相應(yīng)操作。進(jìn)一步,測(cè)試執(zhí)行模塊402還用于獲取測(cè)試用例解析模塊401解析出的超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值;并在所述依次執(zhí)行各操作步驟的測(cè)試時(shí),監(jiān)控測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)所述超時(shí)時(shí)間的配置值則提出告警信息;依據(jù)所述步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔;依據(jù)所述循環(huán)次數(shù)的配置值,控 制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。進(jìn)一步,測(cè)試執(zhí)行模塊402還用于在所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作后,獲取所述元素操作工具返回的執(zhí)行結(jié)果。進(jìn)一步,測(cè)試裝置101中還包括測(cè)試結(jié)果判定模塊405、測(cè)試結(jié)果顯示模塊406。測(cè)試結(jié)果判定模塊405用于從測(cè)試執(zhí)行模塊402獲取所述執(zhí)行結(jié)果,并將該操作步驟的校驗(yàn)值的配置值與所述執(zhí)行結(jié)果進(jìn)行比對(duì);若所述執(zhí)行結(jié)果中包含有該操作步驟的校驗(yàn)值的配置值,則確認(rèn)該操作步驟的測(cè)試結(jié)果為成功;否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗。測(cè)試結(jié)果顯示模塊406用于獲取測(cè)試結(jié)果判定模塊405確認(rèn)的各操作步驟的測(cè)試結(jié)果,并以HTML頁(yè)面形式進(jìn)行顯示。本發(fā)明實(shí)施例的技術(shù)方案中,由于測(cè)試用例基于關(guān)鍵字構(gòu)成,測(cè)試人員可以方便地配置基于關(guān)鍵字的測(cè)試用例;通過(guò)對(duì)測(cè)試用例中的關(guān)鍵字進(jìn)行解析,并在底層調(diào)用元素操作工具實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用程序中的UI元素的操作,可以自動(dòng)完成測(cè)試過(guò)程。這樣,測(cè)試人員只需進(jìn)行簡(jiǎn)單的關(guān)鍵字配置,不需要進(jìn)行復(fù)雜的編程就可生成測(cè)試用例進(jìn)行測(cè)試;而且,即使屏幕尺寸發(fā)生改變或界面布局發(fā)生變化,仍然可使用之前配置了關(guān)鍵字的測(cè)試用例進(jìn)行測(cè)試,不需重新生成測(cè)試用例,大大為測(cè)試人員提供了測(cè)試的便捷性。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種Android應(yīng)用程序測(cè)試方法,包括 從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;其中,所述操作步驟的關(guān)鍵字包括序號(hào)、操作類型、操作對(duì)象;所述操作對(duì)象的配置值為UI元素的標(biāo)識(shí)或文本信息; 依據(jù)解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述操作步驟的關(guān)鍵字還包括校驗(yàn)值,所述校驗(yàn)值的配置值為期望UI元素的標(biāo)識(shí)或文本信息; 在執(zhí)行操作步驟的測(cè)試后,還包括 將該操作步驟的校驗(yàn)值的配置值與所述元素操作工具返回的執(zhí)行結(jié)果進(jìn)行比對(duì);若所述執(zhí)行結(jié)果中包含有該操作步驟的校驗(yàn)值的配置值,則確認(rèn)該操作步驟的測(cè)試結(jié)果為成功;否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗。
3.如權(quán)利要求2所述的方法,其特征在于,在所述確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗后,還包括 通過(guò)所述元素操作工具對(duì)被測(cè)的Android應(yīng)用程序進(jìn)行截屏操作,保留屏幕信息。
4.如權(quán)利要求1-3任一所述的方法,其特征在于,所述操作步驟的關(guān)鍵字還包括輸入值;以及 所述對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試,還包括若該操作步驟的操作類型的配置值為input,則所述元素操作工具還根據(jù)該操作步驟的輸入值的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)Π元素進(jìn)行輸入操作。
5.如權(quán)利要求4所述的方法,其特征在于,所述測(cè)試用例是基于可擴(kuò)展標(biāo)示語(yǔ)言XML的;以及 在所述依次執(zhí)行各操作步驟的測(cè)試之前,還包括 從所述測(cè)試用例中解析出如下關(guān)鍵字的配置值超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔;以及 在所述執(zhí)行各操作步驟的測(cè)試時(shí),還包括 監(jiān)控測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)超時(shí)時(shí)間的配置值則提出告警信息; 依據(jù)解析出的步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔; 依據(jù)解析出的循環(huán)次數(shù)的配置值,控制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。
6.一種Android應(yīng)用程序測(cè)試裝置,包括 測(cè)試用例解析模塊,用于從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;其中,所述操作步驟的關(guān)鍵字包括序號(hào)、操作類型、操作對(duì)象;所述操作對(duì)象的配置值為UI元素的標(biāo)識(shí)或文本信息; 測(cè)試執(zhí)行模塊,用于依據(jù)所述測(cè)試用例解析模塊解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作。
7.如權(quán)利要求6所述的裝置,其特征在于,還包括 測(cè)試用例生成模塊,用于根據(jù)測(cè)試者輸入的各操作步驟的關(guān)鍵字的配置值,生成所述測(cè)試用例;測(cè)試用例存儲(chǔ)模塊,用于存儲(chǔ)所述測(cè)試用例生成模塊生成的測(cè)試用例;以及 所述測(cè)試用例解析模塊還用于從所述測(cè)試用例存儲(chǔ)模塊獲取所述測(cè)試用例。
8.如權(quán)利要求7所述的裝置,其特征在于,所述操作步驟的關(guān)鍵字還包括校驗(yàn)值,所述校驗(yàn)值的配置值為期望UI元素的標(biāo)識(shí)或文本信息;以及 測(cè)試執(zhí)行模塊還用于在所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作后,獲取所述元素操作工具返回的執(zhí)行結(jié)果;以及 所述裝置還包括 測(cè)試結(jié)果判定模塊,用于從所述測(cè)試執(zhí)行模塊獲取所述執(zhí)行結(jié)果,并將該操作步驟的校驗(yàn)值的配置值與所述執(zhí)行結(jié)果進(jìn)行比對(duì);若所述執(zhí)行結(jié)果中包含有該操作步驟的校驗(yàn)值的配置值,則確認(rèn)該操作步驟的測(cè)試結(jié)果為成功;否則,確認(rèn)該操作步驟的測(cè)試結(jié)果為失敗。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括 測(cè)試結(jié)果顯示模塊,用于獲取所述測(cè)試結(jié)果判定模塊確認(rèn)的各操作步驟的測(cè)試結(jié)果,并以HTML頁(yè)面形式進(jìn)行顯示。
10.如權(quán)利要求7-9任一所述的裝置,其特征在于, 所述測(cè)試用例生成模塊還用于還根據(jù)測(cè)試者輸入的如下關(guān)鍵字的配置值生成所述測(cè)試用例超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔;以及 所述測(cè)試用例解析模塊還用于從所述測(cè)試用例中解析出所述超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值;以及 所述測(cè)試執(zhí)行模塊還用于獲取所述測(cè)試用例解析模塊解析出的超時(shí)時(shí)間、循環(huán)次數(shù)、步驟間隔的配置值;并在所述依次執(zhí)行各操作步驟的測(cè)試時(shí),監(jiān)控測(cè)試所耗時(shí)間;若監(jiān)控的時(shí)間超過(guò)所述超時(shí)時(shí)間的配置值則提出告警信息;依據(jù)所述步驟間隔的配置值,控制執(zhí)行各操作步驟之間的時(shí)間間隔;依據(jù)所述循環(huán)次數(shù)的配置值,控制執(zhí)行各操作步驟的測(cè)試的循環(huán)次數(shù)。
全文摘要
本發(fā)明公開(kāi)了一種Android應(yīng)用程序測(cè)試方法和測(cè)試裝置,所述方法包括從測(cè)試用例中解析出各操作步驟的關(guān)鍵字的配置值;依據(jù)解析出的各操作步驟的序號(hào)的配置值,依次執(zhí)行各操作步驟的測(cè)試;對(duì)其中一個(gè)操作步驟執(zhí)行的測(cè)試為調(diào)用元素操作工具,所述元素操作工具根據(jù)該操作步驟的操作類型和操作對(duì)象的配置值,對(duì)被測(cè)的Android應(yīng)用程序中的相應(yīng)UI元素進(jìn)行相應(yīng)操作。這樣,測(cè)試人員可以方便地配置基于關(guān)鍵字的測(cè)試用例;通過(guò)對(duì)測(cè)試用例中的關(guān)鍵字進(jìn)行解析,并在底層調(diào)用相關(guān)工具實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用程序中的UI元素的操作,從而自動(dòng)完成測(cè)試過(guò)程;從而大大為測(cè)試人員提供了測(cè)試的便捷性。
文檔編號(hào)G06F11/36GK103049371SQ20121044187
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年11月7日 優(yōu)先權(quán)日2012年11月7日
發(fā)明者夏培勇 申請(qǐng)人:青島海信傳媒網(wǎng)絡(luò)技術(shù)有限公司