專利名稱:一種終端性能的檢測方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試技術(shù)領(lǐng)域,具體涉及一種終端性能的檢測方法和裝置。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)的興起,智能手機(jī)等移動終端已經(jīng)逐漸成為人們?nèi)粘I钪胁豢扇鄙俚墓ぞ咧?。然而,目前,各個不同的廠家開發(fā)生產(chǎn)的移動終端各有不同,因而也無法直接對各不同廠家的不同移動終端進(jìn)行比對分析,無法對各不同廠家的不同移動終端的性能做評估并進(jìn)行選型。針對上述問題,現(xiàn)有一些測試軟件能夠比較全面地對移動終端的性能進(jìn)行測試,便于對各不同廠家的不同移動終端的性能進(jìn)行比對評估。目前能夠測試的移動終端的性能具體可以包括CPU整數(shù)性能、CPU浮點(diǎn)性能、2D (二維,Two Dimensions)繪圖性能、3D (三維,Three Dimensions)繪圖性能、數(shù)據(jù)庫性能、SD卡(安全數(shù)碼卡,Secure Digital MemoryCard)速度等等。由于一種終端性能通常對應(yīng)一個測試用例,故終端性能的測試往往需要進(jìn)行多個測試用例的測試?,F(xiàn)有終端性能的檢測方法通常為,針對一個測試用例編寫相應(yīng)的代碼段,其中測試用例之間的代碼段具有一定的關(guān)聯(lián)(如下一測試用例的代碼段需要依賴于上一測試用例的執(zhí)行結(jié)果等等)。采用現(xiàn)有終端性能的檢測方法,如果測試需求發(fā)生了變化則檢測流程所需的眾多步驟很有可能都需要改動,這就涉及到整體的代碼段改動。例如,如果需要調(diào)整多個測試用例的執(zhí)行順序,則需要調(diào)整相關(guān)聯(lián)測試用例的多個代碼段的位置,比較容易出錯;又如,如果需要增加新的測試用例,則需要重新編寫一個完整測試流程所對應(yīng)的代碼段,而一個完整測試流程涉及的操作非常多,例如可以包括初始化、時間控制、界面控制、測評算法等等??傊?,現(xiàn)有終端性能的檢測方法具有不靈活和擴(kuò)展性差的問題,這樣,如果在產(chǎn)品開發(fā)過程中應(yīng)用現(xiàn)有終端性能的檢測方法,則容易增加產(chǎn)品的開發(fā)周期,降低產(chǎn)品的開發(fā)效率??傊?,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠降低產(chǎn)品的開發(fā)周期,提高產(chǎn)品的開發(fā)效率。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種終端性能的檢測方法和裝置。依據(jù)本發(fā)明的一個方面,提供了一種終端性能的檢測方法,包括創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)包括當(dāng)前測試用例的測試用例執(zhí)行類名稱;
對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。可選地,所述方法還包括將實(shí)例化得到的測試用例對象添加至列表,所述列表中測試用例對象的初始執(zhí)行標(biāo)志為未執(zhí)行;從所述列表中獲取執(zhí)行標(biāo)志為未執(zhí)行的測試用例對象;針對所述未執(zhí)行的測試用例對象,依據(jù)其所關(guān)聯(lián)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;執(zhí)行完成的測試用例對象對應(yīng)的執(zhí)行標(biāo)志為已執(zhí)行??蛇x地,所述測試執(zhí)行基類包括用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;其中,所述全屏測試基類由Android系統(tǒng)的Activity類派生而來;則所述測試用例執(zhí)行類包括從所述全屏測試基類派生出的全屏測試用例執(zhí)行類和從所述非全屏測試基類派生出的非全屏測試用例執(zhí)行類。所述測試用例的信息中包括有當(dāng)前測試用例是否為全屏測試用例的檢測方法;則所述調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟,包括通過調(diào)用所述測試用例對象中當(dāng)前測試用例是否為全屏測試用例的檢測方法,檢測所述測試用例對象對應(yīng)測試用例是否為全屏測試用例;在所述測試用例對象對應(yīng)測試用例為全屏測試用例時,調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;在所述測試用例對象對應(yīng)測試用例為非全屏測試用例時,調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例??蛇x地,所述調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟,包括從當(dāng)前活動創(chuàng)建并啟動一個全屏測試類的對象,由該全屏測試類的對象執(zhí)行相應(yīng)的測試用例,并返回相應(yīng)的測試結(jié)果給當(dāng)前活動;當(dāng)前活動獲取該新全屏測試類的對象返回的測試結(jié)果??蛇x地,所述調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行終端性能的測試,包括對所述非全屏測試用例執(zhí)行類進(jìn)行實(shí)例化得到相應(yīng)的非全屏測試用例對象;創(chuàng)建后臺測試線程,將所述非全屏測試用例對象傳遞進(jìn)該后臺測試線程;啟動該后臺測試線程執(zhí)行相應(yīng)的測試用例??蛇x地,所述測試執(zhí)行基類的成員函數(shù)包括用于描述測試流程的測試流程函數(shù);從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試流程函數(shù)以執(zhí)行相應(yīng)測試用例的測試流程??蛇x地,所述測試執(zhí)行基類的成員函數(shù)包括如下測試屬性函數(shù)中的一項(xiàng)或多項(xiàng)用于描述執(zhí)行當(dāng)前測試用例前需要等待的時間的第一等待函數(shù),用于描述當(dāng)前測試用例的執(zhí)行輪數(shù)的輪數(shù)函數(shù),及,用于描述執(zhí)行每輪當(dāng)前測試用例前需要等待的時間的第二等待函數(shù);
從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試屬性函數(shù)以執(zhí)行相應(yīng)測試用例的測試屬性。依據(jù)本發(fā)明的另一個方面,提供了一種終端性能的檢測裝置,包括基類創(chuàng)建模塊,適于創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;派生模塊,適于針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)包括當(dāng)前測試用例的測試用例執(zhí)行類名稱;實(shí)例化模塊,適于對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;對象執(zhí)行類獲取模塊,適于針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類;及對象測試用例執(zhí)行模塊,適于調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。本發(fā)明的一種終端性能的檢測方法和裝置具有如下有益效果本發(fā)明通過采用面向?qū)ο蟮姆椒ǎ罁?jù)終端性能的檢測屬性抽象得到用于描述測試用例的信息的測試信息基類,及用于執(zhí)行測試用例的測試執(zhí)行基類;這樣,只需針對測試用例配合使用所述測試信息基類的派生類和測試執(zhí)行基類的派生類的實(shí)例化對象即可執(zhí)行任意的測試用例,而多個測試用例的調(diào)度只需調(diào)度對應(yīng)所述測試信息基類的派生類的實(shí)例化對象即可;因此,采用本發(fā)明的方案,如果測試需求發(fā)生了變化,則只需改動相應(yīng)的實(shí)例化對象即可。例如,如果需要調(diào)整多個測試用例的執(zhí)行順序,只需調(diào)整多個測試用例對應(yīng)所述測試信息基類的派生類的實(shí)例化對象的執(zhí)行順序即可,而無需調(diào)整具體的代碼段,也就能夠避免出現(xiàn)代碼段出錯的現(xiàn)象;又如,如果需要增加新測試用例,只需針對該新測試用例配合使用所述測試信息基類的派生類和測試執(zhí)行基類的派生類的實(shí)例化對象即可,而無需重新編寫一個完整測試流程所對應(yīng)的代碼段;總之,本發(fā)明終端性能的測試方案,能夠靈活地進(jìn)行多個測試用例,以及,能夠方便地適應(yīng)測試用例的任意增加、刪除或順序調(diào)整,總之,本發(fā)明能夠提高終端性能測試的靈活性和擴(kuò)展性。在產(chǎn)品開發(fā)過程中應(yīng)用本發(fā)明終端性能的檢測方法,則能夠降低產(chǎn)品的開發(fā)周期,提聞廣品的開發(fā)效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖;圖2示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖;圖3示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖4示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測裝置的結(jié)構(gòu)圖;圖5示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測結(jié)果顯示方法的流程圖;圖6示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能檢測結(jié)果的展現(xiàn)方法示意圖;圖7示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能檢測結(jié)果的展現(xiàn)方法示意圖;以及圖8示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能檢測結(jié)果的展現(xiàn)裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參照圖1,示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖,具體可以包括步驟101、創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;步驟102、針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)具體可以包括有當(dāng)前測試用例的測試用例執(zhí)行類名稱;步驟103、對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;步驟104、針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。本發(fā)明實(shí)施例可以應(yīng)用于智能手機(jī)、平板電腦、筆記本電腦、PDA (個人數(shù)字助理,Personal DigitalAssistant)等移動終端性能的檢測,也可以應(yīng)用于臺式電腦等固定終端性能的檢測,本發(fā)明實(shí)施例對具體的終端不加以限制?,F(xiàn)有終端性能的檢測方法采用的是面向過程的設(shè)計(jì),這里的面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時候一個一個依次調(diào)用就可以了。對于終端性能的檢測,這樣的行為在面向過程的設(shè)計(jì)中分散在了眾多步驟中,有利于設(shè)計(jì)人員依據(jù)實(shí)際情況進(jìn)行各種各樣的簡化,但是具有擴(kuò)展性和靈活性差的缺點(diǎn),具體表現(xiàn)在如果測試需求發(fā)生了變化,則檢測流程所需的眾多步驟很有可能都需要改動,這就涉及到整體的代碼段改動等等,而整體的代碼段改動容易增加產(chǎn)品的開發(fā)周期,降低產(chǎn)品的開發(fā)效率。而本發(fā)明終端性能的檢測方法采用的是面向?qū)ο蟮脑O(shè)計(jì),這里的面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。在面向?qū)ο蟮脑O(shè)計(jì)中,終端性能的檢測這樣的行為只可能在其實(shí)例化對象中出現(xiàn),故如果測試需求發(fā)生了變化,則只需改動相應(yīng)的實(shí)例化對象即可,改動只是局部的。
在具體實(shí)現(xiàn)中,本發(fā)明通過采用面向?qū)ο蟮某橄蠓椒?,依?jù)終端性能的檢測屬性抽象得到用于描述測試用例的信息的測試信息基類,及用于執(zhí)行測試用例的測試執(zhí)行基類;這樣,通過采用面向?qū)ο蟮睦^承方法,只需針對測試用例配合使用所述測試信息基類的派生類和測試執(zhí)行基類的派生類的實(shí)例化對象即可執(zhí)行任意的測試用例。其中,對于抽象得到的測試信息基類,可以通過使用成員變量和成員函數(shù)來描述測試用例的信息;對于抽象得到的測試執(zhí)行基類,可以通過使用成員變量和成員函數(shù)來描述測試用例的執(zhí)行信息,這里測試用例的執(zhí)行信息中可以包括具體的測試流程,例如,一個完整的測試流程具體可以包括初始化、時間控制、界面控制、測評算法、釋放空間等等。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述測試執(zhí)行基類的成員函數(shù)具體可以包括用于描述測試流程的測試流程函數(shù);從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試流程函數(shù)以執(zhí)行相應(yīng)測試用例的測試流程。依據(jù)繼承機(jī)制,對于從所述測試信息基類派生出對應(yīng)的測試用例信息類,其可以自動繼承所述測試信息基類的成員變量和成員函數(shù),并且,其還可以通過構(gòu)造函數(shù)來傳遞相應(yīng)測試用例的參數(shù);這里,測試用例的參數(shù)具體可以包括有當(dāng)前測試用例的測試用例執(zhí)行類名稱。另外,可以理解,依據(jù)繼承機(jī)制,測試用例信息類和測試用例執(zhí)行類作為子類,在派生時,可以根據(jù)需要覆蓋父類的成員函數(shù)來實(shí)現(xiàn)相應(yīng)測試用例的私有信息,例如,測試用例執(zhí)行類可以在測試流程函數(shù)中執(zhí)行對應(yīng)測試用例的評測流程算法等等。由于測試用例信息類是從所述測試信息基類派生,測試用例執(zhí)行類是從所述測試執(zhí)行基類派生而來,這樣,配合使用所述測試用例信息類和測試用例執(zhí)行類的實(shí)例化對象即可執(zhí)行任意的測試用例。本發(fā)明具有如下優(yōu)點(diǎn)采用本發(fā)明的方案,如果測試需求發(fā)生了變化,則只需改動相應(yīng)的實(shí)例化對象即可。例如,如果需要調(diào)整多個測試用例的執(zhí)行順序,只需調(diào)整多個測試用例對應(yīng)所述測試信息基類的派生類的實(shí)例化對象的執(zhí)行順序即可,而無需調(diào)整具體的代碼段,也就能夠避免出現(xiàn)代碼段出錯的現(xiàn)象;又如,如果需要增加新測試用例,只需針對該新測試用例配合使用所述測試信息基類的派生類和測試執(zhí)行基類的派生類的實(shí)例化對象即可,而無需重新編寫一個完整測試流程所對應(yīng)的代碼段;總之,本發(fā)明終端性能的測試方案,能夠靈活地進(jìn)行多個測試用例,以及,能夠方便地適應(yīng)測試用例的任意增加、刪除或順序調(diào)整,總之,本發(fā)明能夠提高終端性能測試的靈活性和擴(kuò)展性。參照圖2,示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖,具體可以包括步驟201、創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;步驟202、針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)具體可以包括有當(dāng)前測試用例的測試用例執(zhí)行類名稱;步驟203、對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;步驟204、將實(shí)例化得到的測試用例對象添加至列表,所述列表中測試用例對象的初始執(zhí)行標(biāo)志為未執(zhí)行;步驟205、從所述列表中獲取執(zhí)行標(biāo)志為未執(zhí)行的測試用例對象;步驟206、針對所述未執(zhí)行的測試用例對象,依據(jù)其所關(guān)聯(lián)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;執(zhí)行完成的測試用例對象對應(yīng)的執(zhí)行標(biāo)志為已執(zhí)行。本發(fā)明實(shí)施例將所有的測試用例對象添加至列表,在終端性能的檢測過程中,只需逐一獲取未執(zhí)行的測試用例對象,并針對所獲取的測試用例對象找到對應(yīng)的測試用例執(zhí)行類,就可以通過執(zhí)行相應(yīng)的測試用例得到想要的終端性能檢測結(jié)果。在具體實(shí)現(xiàn)中,可以通過遍歷列表的方式獲取所述列表中獲取執(zhí)行標(biāo)志為未執(zhí)行的測試用例對象。并且,可以理解,可以在執(zhí)行完一個測試用例對象后,將其執(zhí)行標(biāo)志修改為已執(zhí)行。參照圖3,示出了根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的流程圖,具體可以包括步驟301、創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;所述測試執(zhí)行基類具體可以包括用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;其中,所述全屏測試基類由Android系統(tǒng)的Activity類派生而來;所述測試用例的信息中具體可以包括有當(dāng)前測試用例是否為全屏測試用例的檢測方法;步驟302、針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)具體可以包括有當(dāng)前測試用例的測試用例執(zhí)行類名稱;所述測試用例執(zhí)行類具體可以包括從所述全屏測試基類派生出的全屏測試用例執(zhí)行類和從所述非全屏測試基類派生出的非全屏測試用例執(zhí)行類;步驟303、對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;步驟304、針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類;步驟305、通過調(diào)用所述測試用例對象中當(dāng)前測試用例是否為全屏測試用例的檢測方法,檢測所述測試用例對象對應(yīng)測試用例是否為全屏測試用例;步驟306、在所述測試用例對象對應(yīng)測試用例為全屏測試用例時,調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;步驟307、在所述測試用例對象對應(yīng)測試用例為非全屏測試用例時,調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。目前的移動終端大多使用Android操作系統(tǒng),首先對Android操作系統(tǒng)中Activity (活動)的原理進(jìn)行說明。Android操作系統(tǒng)中,一個Activity是一個應(yīng)用程序組件,其可用于提供一個屏幕,其還可用于交互以完成某項(xiàng)任務(wù),例如撥號、拍照、發(fā)送email、看地圖等;通常,每一個Activity被給予一個窗口,在該窗口上面可以繪制用戶接口,窗口通常充滿屏幕,但也可以小于屏幕而浮于其它窗口之上。
目前能夠測試的移動終端的性能具體可以包括CPU整數(shù)性能、CPU浮點(diǎn)性能、2D繪圖性能、3D繪圖性能、數(shù)據(jù)庫性能、存儲系統(tǒng)等等。其中,2D繪圖性能、3D繪圖性能的測試屬于前臺全屏的測試,前臺全屏的測試需要在自己的Activity中運(yùn)行;而CPU整數(shù)性能、(PU浮點(diǎn)性能、數(shù)據(jù)庫、存儲系統(tǒng)等性能的測試屬于后臺非全屏的測試,后臺非全屏的測試不需要在自己的Activity中運(yùn)行。因此,本發(fā)明實(shí)施例依據(jù)終端性能的測試屬性,抽象出用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;并且,由于全屏測試基類需要在自己的Activity中運(yùn)行,故需要由Android系統(tǒng)的Activity類派生而來;另外,還可以針對測試用例,從全屏測試基類和非全屏測試基類派出對應(yīng)的全屏測試用例執(zhí)行類和非全屏測試用例執(zhí)行類,并對其進(jìn)行調(diào)用以執(zhí)行相應(yīng)的測試用例。需要說明的是,由于所述測試信息基類可以通過使用成員變量和成員函數(shù)來描述測試用例的信息,故在實(shí)際應(yīng)用中,可以采用成員函數(shù)來描述當(dāng)前測試用例是否為全屏測試用例的檢測方法。例如,在本發(fā)明的一種應(yīng)用示例中,可以采用成員函數(shù)pub I i c BooleanisBackgroundO來檢測當(dāng)前測試用例是否為全屏測試用例,若是,則返回false,表示是全屏測試用例,否則返回true,表示是非全屏測試用例。這樣,步驟305便可以使用所述測試用例對象的指針調(diào)用該成員函數(shù),并返回相應(yīng)的結(jié)果。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟306,具體可以包括步驟S101、從當(dāng)前活動創(chuàng)建并啟動一個全屏測試類的對象,由該全屏測試類的對象執(zhí)行相應(yīng)的測試用例,并返回相應(yīng)的測試結(jié)果給當(dāng)前活動;步驟S 102、當(dāng)前活動獲取該新全屏測試類的對象返回的測試結(jié)果。這里,當(dāng)前活動用于表示全屏測試用例執(zhí)行類的調(diào)用者,該當(dāng)前活動一般表現(xiàn)為用于顯示測試界面的主窗口 ;在全屏測試用例執(zhí)行類的調(diào)用過程中,該當(dāng)前活動主要用于通過創(chuàng)建并啟動一個全屏測試類的對象來啟動全屏測試所需的Activity,并且,等待該全屏測試類的對象返回相應(yīng)的測試結(jié)果。在具體實(shí)現(xiàn)中,可以通過startActivityForResult (Intent intent, intrequestCode)從當(dāng)前活動創(chuàng)建并啟動一個全屏測試類的對象。其中,Intent為Android的意圖類,intent是意圖類的一個對象,其用于傳遞啟動一個全屏測試類的對象所需的參數(shù),該參數(shù)中指定有需要啟動的全屏測試類的對象的類名(該類名也即步驟304中測試用例執(zhí)行類名)fequestCode的值是自定義的,可用于識別需要啟動的全屏測試類的對象。對于全屏測試類而言,由于其針對測試用例從所述全屏測試基類派生得到,故其描述有具體的測試流程;該全屏測試類的對象可依據(jù)全屏測試類實(shí)例化得到,其可以依據(jù)所描述的測試流程,執(zhí)行相應(yīng)的測試用例。在具體實(shí)現(xiàn)中,該全屏測試類的對象可以通過setResult(int resultCode,Intent data)保存測試結(jié)果,并通過調(diào)用當(dāng)前活動的onActivityResult (intrequestCode, int resultCode, Intent data)來返回所保存的測試結(jié)果。其中,如果該全屏測試類的對象可能有幾種不同的測試結(jié)果返回,可以用resultCode參數(shù)予以識別區(qū)分,data 用于表不返回的數(shù)據(jù),onActivityResult (int requestCode, int resultCode, Intentdata)為當(dāng)前活動的回調(diào)函數(shù)。
進(jìn)一步,當(dāng)前活動可以依據(jù)resultCode參數(shù)和data參數(shù),獲取該新全屏測試類的對象返回的測試結(jié)果。在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟307,具體可以包括步驟S201、對所述非全屏測試用例執(zhí)行類進(jìn)行實(shí)例化得到相應(yīng)的非全屏測試用例對象;步驟S202、創(chuàng)建后臺測試線程,將所述非全屏測試用例對象傳遞進(jìn)該后臺測試線程;步驟S203、啟動該后臺測試線程執(zhí)行相應(yīng)的測試用例。假設(shè)所述非全屏測試用例執(zhí)行類的名稱為BackgroundTest,當(dāng)前測試用例對象的指針為 pointer,則步驟 S201 可以通過 BackgroundTester tester=pointer.getBackgroundTester (intent)來實(shí)現(xiàn),其中,intent負(fù)責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述;由于非全屏測試是在后臺運(yùn)行,為了不影響前臺界面更新,,所以需要一個后臺測試線程來完成,在本發(fā)明的一種應(yīng)用示例中,步驟S202可以通過BackgroundTestThread thread=newBackgroundTestThread(tester)來實(shí)現(xiàn)。其中,BackgroundTestThread 為從Thread類派生出的線程類,并且,在實(shí)例化BackgroundTestThread的對象thread的過程中,可以在BackgroundTestThread的構(gòu)造函數(shù)中傳遞所述非全屏測試用例對象,由所述非全屏測試用例對象在run O方法中進(jìn)行測試,并通知前臺界面;這里,run O方法在一種循環(huán)下,使線程一直運(yùn)行,直到不滿足條件為止。步驟S203 可以通過 thread, start ()來實(shí)現(xiàn),在執(zhí)行 thread, start ()后,thread會自動執(zhí)行run()方法;可以理解,在執(zhí)行thread, start ()之前,還可以通過thread.setPriority (Thread. MAX_PRI0RITY)將thread的優(yōu)先級設(shè)置為最大,使其優(yōu)先執(zhí)行。在上述方法實(shí)施例中,對各個方法實(shí)施例的描述都各有側(cè)重,某個方法實(shí)施例中沒有詳述的部分,可以參見其他方法實(shí)施例的相關(guān)描述即可。并且,本領(lǐng)域技術(shù)人員易于想到的是上述方法實(shí)施例的任意組合應(yīng)用都是可行的,但是由于篇幅限制,本說明書在此就不一一詳述了。最后,需要補(bǔ)充的是,在本發(fā)明的一種優(yōu)選實(shí)施例中,所述測試執(zhí)行基類的成員函數(shù)具體可以包括如下測試屬性函數(shù)中的一項(xiàng)或多項(xiàng)用于描述執(zhí)行當(dāng)前測試用例前需要等待的時間的第一等待函數(shù),用于描述當(dāng)前測試用例的執(zhí)行輪數(shù)的輪數(shù)函數(shù),及,用于描述執(zhí)行每輪當(dāng)前測試用例前需要等待的時間的第二等待函數(shù);從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試屬性函數(shù)以執(zhí)行相應(yīng)測試用例的測試屬性。在實(shí)際應(yīng)用中,一個測試用例可能需要測試多輪。以CPU浮點(diǎn)性能的測試為例,為了使測試結(jié)果更穩(wěn)定,就需要多執(zhí)行幾輪;也即,本發(fā)明實(shí)施例中,執(zhí)行輪數(shù)針對的是同一個測試用例;第二等待函數(shù)也就是每輪測試用例之間的等待時間;另外,由于測試用例的個性,可能需要一定時間來做準(zhǔn)備工作,如測試流程中的初始化和釋放空間等工作都算準(zhǔn)備工作,因此,為了提高測試結(jié)果的穩(wěn)定性,第一等待函數(shù)可用于表示不同測試用例之間的等待時間。
可以理解,本領(lǐng)域技術(shù)人員可以根據(jù)時間需要,設(shè)置所述第一等待函數(shù)和第二等待時間對應(yīng)的時間數(shù)值,本發(fā)明對此不加以限制。另外,為了便于測試人員對于測試的監(jiān)控,在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述測試用例的信息中還可以包括有當(dāng)前測試用例的描述信息;則所述方法還可以包括步驟S301、獲取所述測試用例對象對應(yīng)的測試用例的描述信息;步驟S302、將所述測試用例對象對應(yīng)的測試用例的描述信息顯示到測試界面上;步驟S303、更新所述測試界面上的進(jìn)度信息。假設(shè)測試信息基類的成員函數(shù)getTitleO用于返回測試用例描述,假設(shè)當(dāng)前測試用例對象的指針為pointer,那么,步驟S301可以通過String tag=pointer. getTitle O來實(shí)現(xiàn),步驟 302 可以通過 txtltem. setText (String, format (strProgressArg, tag, index,list, size ()))來實(shí)現(xiàn),步驟 S303 可以通過 benchHandler. post (progressUpdater)來實(shí)現(xiàn)。其中,txtltem 是一個 TextView 控件;setTextO用于設(shè)置欲要顯示的文字;benchHandler 是一個消息處理 Handler,因?yàn)榉?UI (用戶界面,User Interface)線程中不能更新Π控件,所 以必須通過消息來處理;post ()用于發(fā)送一個消息;progressUpdater 是一個 UpdateProgressHandler,它派生自 Runnable,是 Java線程的另一種實(shí)現(xiàn)方式,post O需要一個Runnable對象作為參數(shù),它的具體作用就是通知benchHandler來更新界面。本優(yōu)選實(shí)施例通過在測試界面上顯示測試用例的描述信息及測試用例的執(zhí)行進(jìn)度信息,以實(shí)現(xiàn)測試的監(jiān)控。為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,在此提供根據(jù)本發(fā)明一個實(shí)施例的一種終端性能的檢測方法的示例,具體可以包括步驟S401、創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;所述測試執(zhí)行基類具體可以包括用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;其中,所述全屏測試基類由Android系統(tǒng)的Activity類派生而來;所述測試用例的信息中具體可以包括有當(dāng)前測試用例是否為全屏測試用例的檢測方法;參照表1,示出了根據(jù)本發(fā)明一個實(shí)施例的一種測試信息基類Case的成員變量的示例。表I
成員變量名稱I成員變量類型 I成員變量描述
TagString測試用例名稱
PackageString測試用例包名
權(quán)利要求
1.一種終端性能的檢測方法,其特征在于,包括 創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例; 針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)包括當(dāng)前測試用例的測試用例執(zhí)行類名稱; 對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象; 針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。
2.如權(quán)利要求1所述的方法,其特征在于,還包括 將實(shí)例化得到的測試用例對象添加至列表,所述列表中測試用例對象的初始執(zhí)行標(biāo)志為未執(zhí)行; 從所述列表中獲取執(zhí)行標(biāo)志為未執(zhí)行的測試用例對象; 針對所述未執(zhí)行的測試用例對象,依據(jù)其所關(guān)聯(lián)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;執(zhí)行完成的測試用例對象對應(yīng)的執(zhí)行標(biāo)志為已執(zhí)行。
3.如權(quán)利要求1所述的方法,其特征在于,所述測試執(zhí)行基類包括用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;其中,所述全屏測試基類由Android系統(tǒng)的Activity類派生而來; 則所述測試用例執(zhí)行類包括從所述全屏測試基類派生出的全屏測試用例執(zhí)行類和從所述非全屏測試基類派生出的非全屏測試用例執(zhí)行類。
所述測試用例的信息中包括有當(dāng)前測試用例是否為全屏測試用例的檢測方法; 則所述調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟,包括 通過調(diào)用所述測試用例對象中當(dāng)前測試用例是否為全屏測試用例的檢測方法,檢測所述測試用例對象對應(yīng)測試用例是否為全屏測試用例; 在所述測試用例對象對應(yīng)測試用例為全屏測試用例時,調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例; 在所述測試用例對象對應(yīng)測試用例為非全屏測試用例時,調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。
4.如權(quán)利要求3所述的方法,其特征在于,所述調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行終端性能的測試的步驟,包括 從當(dāng)前活動創(chuàng)建并啟動一個全屏測試類的對象,由該全屏測試類的對象執(zhí)行相應(yīng)的測試用例,并返回相應(yīng)的測試結(jié)果給當(dāng)前活動; 當(dāng)前活動獲取該新全屏測試類的對象返回的測試結(jié)果。
5.如權(quán)利要求3所述的方法,其特征在于,所述調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行終端性能的測試,包括 對所述非全屏測試用例執(zhí)行類進(jìn)行實(shí)例化得到相應(yīng)的非全屏測試用例對象; 創(chuàng)建后臺測試線程,將所述非全屏測試用例對象傳遞進(jìn)該后臺測試線程; 啟動該后臺測試線程執(zhí)行相應(yīng)的測試用例。
6.如權(quán)利要求1所述的方法,其特征在于,所述測試執(zhí)行基類的成員函數(shù)包括用于描述測試流程的測試流程函數(shù);從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試流程函數(shù)以執(zhí)行相應(yīng)測試用例的測試流程。
7.如權(quán)利要求1所述的方法,其特征在于,所述測試執(zhí)行基類的成員函數(shù)包括如下測試屬性函數(shù)中的一項(xiàng)或多項(xiàng)用于描述執(zhí)行當(dāng)前測試用例前需要等待的時間的第一等待函數(shù),用于描述當(dāng)前測試用例的執(zhí)行輪數(shù)的輪數(shù)函數(shù),及,用于描述執(zhí)行每輪當(dāng)前測試用例前需要等待的時間的第二等待函數(shù); 從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試屬性函數(shù)以執(zhí)行相應(yīng)測試用例的測試屬性。
8.—種終端性能的檢測裝置,其特征在于,包括 基類創(chuàng)建模塊,適于創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例; 派生模塊,適于針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)包括當(dāng)前測試用例的測試用例執(zhí)行類名稱; 實(shí)例化模塊,適于對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象; 對象執(zhí)行類獲取模塊,適于針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類;及 對象測試用例執(zhí)行模塊,適于調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括 對象添加模塊,適于將實(shí)例化得到的測試用例對象添加至列表,所述列表中測試用例對象的初始執(zhí)行標(biāo)志為未執(zhí)行; 未執(zhí)行對象獲取模塊,適于從所述列表中獲取執(zhí)行標(biāo)志為未執(zhí)行的測試用例對象;未執(zhí)行對象執(zhí)行模塊,適于針對所述未執(zhí)行的測試用例對象,依據(jù)其所關(guān)聯(lián)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例;執(zhí)行完成的測試用例對象對應(yīng)的執(zhí)行標(biāo)志為已執(zhí)行。
10.如權(quán)利要求8所述的裝置,其特征在于,所述測試執(zhí)行基類包括用于執(zhí)行全屏測試用例的全屏測試基類和用于執(zhí)行非全屏測試用例的非全屏測試基類;其中,所述全屏測試基類由Android系統(tǒng)的Activity類派生而來; 則所述測試用例執(zhí)行類包括從所述全屏測試基類派生出的全屏測試用例執(zhí)行類和從所述非全屏測試基類派生出的非全屏測試用例執(zhí)行類。
所述測試用例的信息中還包括有當(dāng)前測試用例是否為全屏測試用例的檢測方法; 則所述對象測試用例執(zhí)行模塊包括 全屏檢測子模塊,適于通過調(diào)用所述測試用例對象中當(dāng)前測試用例是否為全屏測試用例的檢測方法,檢測所述測試用例對象對應(yīng)測試用例是否為全屏測試用例; 全屏調(diào)用子模塊,適于在所述測試用例對象對應(yīng)測試用例為全屏測試用例時,調(diào)用對應(yīng)的全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例; 非全屏調(diào)用子模塊,適于在所述測試用例對象對應(yīng)測試用例為非全屏測試用例時,調(diào)用對應(yīng)的非全屏測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。
11.如權(quán)利要求10所述的裝置,其特征在于,所述全屏調(diào)用子模塊包括 對象創(chuàng)建單元,適于從當(dāng)前活動創(chuàng)建并啟動一個全屏測試類的對象,由該全屏測試類的對象執(zhí)行相應(yīng)的測試用例,并返回相應(yīng)的測試結(jié)果給當(dāng)前活動; 結(jié)果獲取單元,適于當(dāng)前活動獲取該新全屏測試類的對象返回的測試結(jié)果。
12.如權(quán)利要求10所述的裝置,其特征在于,所述非全屏調(diào)用子模塊包括 非全屏實(shí)例化單元,適于對所述非全屏測試用例執(zhí)行類進(jìn)行實(shí)例化得到相應(yīng)的非全屏測試用例對象; 線程創(chuàng)建傳遞單元,適于創(chuàng)建后臺測試線程,將所述非全屏測試用例對象傳遞進(jìn)該后臺測試線程; 線程啟動單元,適于啟動該后臺測試線程執(zhí)行相應(yīng)的測試用例。
13.如權(quán)利要求8所述的裝置,其特征在于,所述測試執(zhí)行基類的成員函數(shù)包括用于描述測試流程的測試流程函數(shù);從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試流程函數(shù)以執(zhí)行相應(yīng)測試用例的測試流程。
14.如權(quán)利要求8所述的裝置,其特征在于,所述測試執(zhí)行基類的成員函數(shù)包括如下測試屬性函數(shù)中的一項(xiàng)或多項(xiàng)用于描述執(zhí)行當(dāng)前測試用例前需要等待的時間的第一等待函數(shù),用于描述當(dāng)前測試用例的執(zhí)行輪數(shù)的輪數(shù)函數(shù),及,用于描述執(zhí)行每輪當(dāng)前測試用例前需要等待的時間的第二等待函數(shù); 從所述測試執(zhí)行基類派生出的測試用例執(zhí)行類覆蓋所述測試屬性函數(shù)以執(zhí)行相應(yīng)測試用例的測試屬性。
全文摘要
本發(fā)明公開了一種終端性能的檢測方法和裝置,其中的方法具體包括創(chuàng)建測試信息基類和測試執(zhí)行基類;其中,所述測試信息基類用于描述測試用例的信息,所述測試執(zhí)行基類用于執(zhí)行測試用例;針對測試用例,從所述測試信息基類派生出對應(yīng)的測試用例信息類,及,從所述測試執(zhí)行基類派生出對應(yīng)的測試用例執(zhí)行類;其中,所述測試用例信息類在構(gòu)造函數(shù)中傳遞的參數(shù)包括當(dāng)前測試用例的測試用例執(zhí)行類名稱;對所述測試用例信息類進(jìn)行實(shí)例化得到相應(yīng)的測試用例對象;針對所述測試用例對象,依據(jù)其對應(yīng)的測試用例執(zhí)行類名稱獲取對應(yīng)的測試用例執(zhí)行類,并調(diào)用所獲取的測試用例執(zhí)行類執(zhí)行相應(yīng)的測試用例。本發(fā)明能夠降低產(chǎn)品的開發(fā)周期,提高產(chǎn)品的開發(fā)效率。
文檔編號G06F11/36GK103064785SQ20121051325
公開日2013年4月24日 申請日期2012年12月4日 優(yōu)先權(quán)日2012年12月4日
發(fā)明者霍小東 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司