两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于反射的自動化測試方法

文檔序號:8430644閱讀:394來源:國知局
一種基于反射的自動化測試方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種自動化測試領(lǐng)域技術(shù),特別是一種基于反射的自動化測試方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的自動化測試領(lǐng)域,測試用例一般通過直接編寫腳本來描述與執(zhí)行。但基于 腳本的開發(fā)語法較為復(fù)雜,且不直觀、可維護(hù)性較差。與腳本相比,圖形化的測試用例開發(fā) 方法更為簡單快捷、直觀和易維護(hù)。圖形化測試用例設(shè)計一般由測試用例設(shè)計人員通過組 合各種測試單元模塊來完成,如何驅(qū)動測試用例的執(zhí)行,是一個關(guān)鍵問題。
[0003] 專利"一種自動化測試系統(tǒng)及測試腳本的生成和運行方法"(申請?zhí)?CN200710086936)提出一種圖形化界面供測試人員選擇測試動作(相當(dāng)于測試單元模塊), 并設(shè)置相應(yīng)的參數(shù),然后通過測試腳本生成模塊提取和顯示測試動作庫中包含的測試動作 信息,并根據(jù)選定的測試動作和設(shè)置的測試動作的參數(shù)生成測試腳本,最終執(zhí)行測試腳本。 這種將測試單元模塊序列翻譯成中間腳本,再驅(qū)動腳本的執(zhí)行的方法具有代表性。但該方 法不足之處在于需要處理測試動作(測試單元模塊)到測試腳本的映射關(guān)系,生成語法正 確的腳本,比較復(fù)雜。同時,測試用例的執(zhí)行實際是通過執(zhí)行測試腳本實現(xiàn)的,需要事先開 發(fā)相應(yīng)的腳本函數(shù),并依靠腳本解釋器來解釋執(zhí)行腳本,擴(kuò)展性較差、復(fù)雜度較高,且解釋 執(zhí)行的效率較低。
[0004] 專利"一種基于測試原子的衛(wèi)星自動化測試方法"(申請?zhí)朇N201010597273. 0)提 出了一種基于測試原子的衛(wèi)星自動化測試方法,通過對測試用例的抽象提煉,歸納出可獨 立執(zhí)行的最小測試單元,把這種測試單元定義為測試原子,在該基礎(chǔ)上搭建自動化測試平 臺,測試過程中的測試用例由這些測試原子組合而成,在自動化測試平臺上自動執(zhí)行測試 用例。該發(fā)明將衛(wèi)星待測項目進(jìn)行分解形成多個最小的測試方法序列,使用測試腳本編輯 工具,從測試原子庫中選擇需要的測試原子并按測試順序進(jìn)行排列形成與最小測試方法序 列相一致的測試腳本,將形成的所有測試腳本集合在一起形成測試腳本庫??梢娫摪l(fā)明同 樣是基于生成的中間腳本來驅(qū)動執(zhí)行測試用例的。

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

[0005] 本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供了一種基于反射的自動化 測試方法,無需將組成測試用例的測試單元模塊序列翻譯為中間腳本,能夠直接根據(jù)測試 用例中每個測試單元模塊的測試業(yè)務(wù)Java類并使用Java反射技術(shù)直接執(zhí)行該測試業(yè)務(wù) Java 類。
[0006] 本發(fā)明的技術(shù)解決方案是:一種基于反射的自動化測試方法,包括如下步驟:
[0007] (1)對被測系統(tǒng)的所有測試業(yè)務(wù)進(jìn)行封裝得到對應(yīng)的測試單元模塊后存入測試單 元庫;所述測試單元模塊包括名稱、綁定的Java類名及可定制參數(shù),其中,名稱為測試單元 模塊代表的測試業(yè)務(wù),綁定的Java類名為用于執(zhí)行該測試單元模塊測試業(yè)務(wù)的Java類的 類名,可定制參數(shù)為執(zhí)行該測試單元模塊時需要的輸入數(shù)據(jù);
[0008] (2)對每個測試單元模塊編寫對應(yīng)的Java代碼并進(jìn)行編譯,其中,測試單元模塊 對應(yīng)的代碼中Java類名與該測試單元模塊的綁定的Java類名相同;
[0009] (3)選取一個或多個測試單元模塊后組成測試用例,將得到的所有的測試用例保 存至數(shù)據(jù)庫;
[0010] (4)從數(shù)據(jù)庫中依次讀取測試用例,并根據(jù)當(dāng)前測試用例中每個測試單元模塊的 可定制參數(shù),分別創(chuàng)建Object □類型的參數(shù)數(shù)組;
[0011] (5)根據(jù)當(dāng)前用例中每個測試單元模塊的綁定的Java類名,通過Java反射機(jī)制, 分別創(chuàng)建Java類的Class對象,然后將步驟(4)創(chuàng)建的參數(shù)數(shù)組作為newlnstance()方 法的參數(shù),并執(zhí)行Class對象的newlnstance ()方法后得到當(dāng)前用例中每個測試單元模塊 的綁定的Java類名對應(yīng)的Java對象;
[0012] (6)依次調(diào)用當(dāng)前測試用例中各個測試單元模塊的Java對象的run()方法執(zhí)行, 遍歷數(shù)據(jù)庫中測試用例直至測試用例均被執(zhí)行完成。
[0013] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
[0014] (1)本發(fā)明與現(xiàn)有技術(shù)相比,避免了從組成測試用例的測試單元模塊序列到腳本 的翻譯轉(zhuǎn)換過程,可以直接根據(jù)測試單元模塊動態(tài)執(zhí)行測試業(yè)務(wù)Java類,執(zhí)行簡單且易擴(kuò) 展;
[0015] (2)本發(fā)明與現(xiàn)有技術(shù)相比,無需額外的腳本解釋器,能夠直接編譯執(zhí)行測試單元 模塊,執(zhí)行效率更高;
[0016] (3)本發(fā)明與現(xiàn)有技術(shù)相比,實現(xiàn)測試單元模塊功能的測試業(yè)務(wù)Java類使用Java 語言開發(fā),與腳本相比,可以實現(xiàn)復(fù)雜的功能。
【附圖說明】
[0017] 圖1為本發(fā)明與圖形化測試用例傳統(tǒng)執(zhí)行方法的技術(shù)對比圖;
[0018] 圖2為本發(fā)明基于反射的自動化測試方法原理圖。
【具體實施方式】
[0019] 本發(fā)明提出一種基于反射的自動化測試方法,對傳統(tǒng)的傳統(tǒng)的圖形化測試用例執(zhí) 行技術(shù)進(jìn)行改進(jìn),如圖1所示為本發(fā)明與圖形化測試用例傳統(tǒng)執(zhí)行方法的技術(shù)對比圖。圖1 中上方為傳統(tǒng)的圖形化測試用例執(zhí)行技術(shù),經(jīng)歷了從用例模塊翻譯到中間腳本再到執(zhí)行的 過程,圖1下方為本發(fā)明基于反射的用例執(zhí)行方式,可直接根據(jù)模塊信息并基于反射技術(shù) 實時執(zhí)行測試用例,如圖2所示,本發(fā)明具體步驟包括:
[0020] (1)針對被測系統(tǒng)的所有典型的不可再拆分的測試業(yè)務(wù),使用多個對應(yīng)的測試單 元模塊封裝對應(yīng)的測試業(yè)務(wù),測試單元模塊可在建立測試用例時重復(fù)使用,由3個字段組 成:名稱、綁定的Java類名以及可定制參數(shù),其中,名稱用于說明測試單元模塊所代表的測 試業(yè)務(wù);綁定的Java類名是一個用于執(zhí)行該測試單元模塊具體測試過程的Java類的類名; 可定制參數(shù)是執(zhí)行該測試單元模塊時需要的輸入數(shù)據(jù)。
[0021] (2)將所有測試單元模塊存入測試單元庫,其中測試單元庫是所有測試單元模塊 的集合。
[0022] (3)為每個測試單元模塊編寫對應(yīng)的Java代碼,其中1個測試單元模塊對應(yīng)1個 Java類,代碼中Java類名應(yīng)與測試單元模塊的綁定的Java類名(包括包名)相同,并且對 應(yīng)的Java代碼須實現(xiàn)run ()方法,在run ()方法中實現(xiàn)測試單元模塊的測試功能。
[0023] (4)將編寫好的Java類代碼進(jìn)行編譯。
[0024] (5)根據(jù)測試需要,從測試單元庫中選取特定的測試單元模塊,作為測試用例的一 個步驟。通過若干測試單元模塊的組合,形成測試用例并將測試用例保存至數(shù)據(jù)庫。
[0025] (6)從數(shù)據(jù)庫中讀取測試用例的測試用例信息,其中測試用例信息是組成該測試 用例的每個測試單元模塊信息(包括名稱,綁定的Java類名以及可定制參數(shù))組成的序 列。
[0026] (7)根據(jù)每個測試單元模塊的可定制參數(shù),創(chuàng)建Object□類型的參數(shù)數(shù)組。
[0027] (8)根據(jù)每個測試單元模塊綁定的Java類名,通過Java反射機(jī)制,倉ij建Java類的 Class對象。
[0028] (9)執(zhí)行Class對象的newlnstance()方法,并將步驟(7)中創(chuàng)建的參數(shù)數(shù)組 作為newlnstance ()方法的參數(shù),從而最終創(chuàng)建測試單元模塊綁定的Java類名所對應(yīng)的 Java對象。
[0029] (10)調(diào)用Java對象的run ()方法,從而執(zhí)行當(dāng)前步驟的測試。
[0030] (11)當(dāng)一個測試用例的測試單元模塊序列逐個按照上述步驟被執(zhí)行完成后,就完 成了整個測試用例的執(zhí)行。
[0031] 下面結(jié)合實施例對本發(fā)明做更進(jìn)一步說明。
[0032] (1)實現(xiàn)一個圖形化的測試單元模塊,該模塊用于判斷被測對象的一項指標(biāo)值是 否符合上下限要求,該模塊由3部分組成:
[0033]【模塊名稱】
[0034] 判斷指標(biāo)值上下限
[0035] 【模塊對應(yīng)的測試業(yè)務(wù)Java類名】
[0036] com.test.Paramjudge(Java類名)
[0037] 【可由用戶指定的參數(shù)】
[0038] 魯指標(biāo)序號
[0039] ?指標(biāo)波道
[0040] ?指標(biāo)預(yù)期上限
[0041] ?指標(biāo)預(yù)期下限
[0042] ?判讀超時時間(秒)
[0043] 通過編程語言的圖形化控件,實現(xiàn)該模塊,效果如下:
[0044]
【主權(quán)項】
1. 一種基于反射的自動化測試方法,其特征在于包括如下步驟: (1) 對被測系統(tǒng)的所有測試業(yè)務(wù)進(jìn)行封裝得到對應(yīng)的測試單元模塊后存入測試單元 庫;所述測試單元模塊包括名稱、綁定的Java類名及可定制參數(shù),其中,名稱為測試單元模 塊代表的測試業(yè)務(wù),綁定的Java類名為用于執(zhí)行該測試單元模塊測試業(yè)務(wù)的Java類的類 名,可定制參數(shù)為執(zhí)行該測試單元模塊時需要的輸入數(shù)據(jù); (2) 對每個測試單元模塊編寫對應(yīng)的Java代碼并進(jìn)行編譯,其中,測試單元模塊對應(yīng) 的代碼中Java類名與該測試單元模塊的綁定的Java類名相同; (3) 選取一個或多個測試單元模塊后組成測試用例,將得到的所有的測試用例保存至 數(shù)據(jù)庫; (4) 從數(shù)據(jù)庫中依次讀取測試用例,并根據(jù)當(dāng)前測試用例中每個測試單元模塊的可定 制參數(shù),分別創(chuàng)建Object □類型的參數(shù)數(shù)組; (5) 根據(jù)當(dāng)前用例中每個測試單元模塊的綁定的Java類名,通過Java反射機(jī)制,分別 創(chuàng)建Java類的Class對象,然后將步驟(4)創(chuàng)建的參數(shù)數(shù)組作為newlnstance()方法的參 數(shù),并執(zhí)行Class對象的newlnstance ()方法后得到當(dāng)前用例中每個測試單元模塊的綁定 的Java類名對應(yīng)的Java對象; (6) 依次調(diào)用當(dāng)前測試用例中各個測試單元模塊的Java對象的run ()方法執(zhí)行,遍歷 數(shù)據(jù)庫中測試用例直至測試用例均被執(zhí)行完成。
【專利摘要】一種基于反射的自動化測試方法,首先得到被測系統(tǒng)的所有測試單元模塊,并對每個測試單元模塊編寫對應(yīng)的Java代碼后進(jìn)行編譯;然后選取需要的測試單元模塊組成測試用例,并將測試用例及對應(yīng)測試用例信息存至數(shù)據(jù)庫;最后從數(shù)據(jù)庫中依次讀取測試用例,并根據(jù)測試用例中的測試單元模塊創(chuàng)建Object[]類型的參數(shù)數(shù)組、Java類的Class對象及對應(yīng)的Java對象后執(zhí)行完成測試。本發(fā)明與現(xiàn)有技術(shù)相比,避免了從測試用例到腳本的翻譯轉(zhuǎn)換過程,可以直接根據(jù)測試單元模塊動態(tài)執(zhí)行測試,同時無需額外的腳本解釋器,執(zhí)行效率高且易擴(kuò)展。
【IPC分類】G06F11-36
【公開號】CN104750606
【申請?zhí)枴緾N201510095017
【發(fā)明人】呂偉, 宋宏江, 何曉宇, 孫波, 張海祥
【申請人】北京空間飛行器總體設(shè)計部
【公開日】2015年7月1日
【申請日】2015年3月3日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
靖边县| 秀山| 黄平县| 安图县| 阳曲县| 乌兰察布市| 运城市| 闽侯县| 岳阳县| 西华县| 泸州市| 灵武市| 新和县| 临泽县| 开阳县| 边坝县| 玛纳斯县| 若羌县| 贵港市| 耒阳市| 丰城市| 孝义市| 鲜城| 陕西省| 丘北县| 娄底市| 梨树县| 弥渡县| 仁化县| 德昌县| 赣州市| 浦江县| 定兴县| 勐海县| 淮南市| 南华县| 襄垣县| 双柏县| 洛隆县| 本溪| 鹤山市|