專利名稱:一種自動化測試方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),特別是涉及一種自動化測試方法和系統(tǒng)。
背景技術(shù):
目前,在進(jìn)行軟件測試時,常采用自動化測試的方法。自動化測試是把以人為驅(qū)動 的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。如果采用非自動化測試的方法,則在設(shè)計了測試 用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實際 結(jié)果與期望結(jié)果的比較。隨著軟件測試技術(shù)的發(fā)展,為了節(jié)省人力、時間、硬件資源,提高測 試效率,提出了自動化測試方法。自動化測試與軟件開發(fā)過程本質(zhì)上是一致的,利用自動化 測試工具,經(jīng)過對測試需求的分析,設(shè)計出自動化測試用例,從而搭建自動化測試的框架, 設(shè)計與編寫自動化測試腳本,通過測試該腳本的正確性,從而完成該套測試腳本。
目前的自動化測試方法中,預(yù)先編寫測試框架,在該框架中為測試需要的基礎(chǔ)操 作提供接口以供調(diào)用,在測試時,測試人員根據(jù)用例操作需求,人工編寫調(diào)用上述接口的自 動化測試腳本。采用此方法,要求參與測試的腳本開發(fā)人員以及后期運行維護(hù)人員都必須 具有很高的代碼水平,自動化腳本的開發(fā)和運行維護(hù)的成本大。并且,采用此方法,在測試 時需要人工編寫腳本,從而導(dǎo)致測試過程所需時間長,測試效率低,并且,采用此方法,對測 試人員的技術(shù)要求高,從而導(dǎo)致測試方法的通用性差。發(fā)明內(nèi)容
本發(fā)明提供了一種自動化測試方法,采用該方法能夠提高自動化測試的效率和通 用性。
本發(fā)明還提供了一種自動化測試系統(tǒng),采用該系統(tǒng)能夠提高自動化測試的效率和 通用性。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
本發(fā)明提供一種自動化測試方法,包括
對自動化測試過程中涉及的每個測試對象、所述每個測試對象包含的操作方法和 參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的所述測試對象、所述操 作方法、所述參數(shù)、所述功能過程和所述靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字;
輸入由至少一個關(guān)鍵字組成的測試腳本;
對所述測試腳本進(jìn)行解析,獲取所述測試腳本中的全部關(guān)鍵字;
根據(jù)解析獲得的全部所述關(guān)鍵字,分別獲取所述關(guān)鍵字對應(yīng)的封裝后的所述測試 對象、所述參數(shù)和所述靜態(tài)元素,執(zhí)行所述關(guān)鍵字對應(yīng)的封裝后的所述操作方法和所述功 能過程。
所述輸入由至少一個關(guān)鍵字組成的測試腳本之前還包括創(chuàng)建所述測試腳本;
所述創(chuàng)建所述測試腳本之后還包括存儲所述測試腳本;和/或,查看所述測試腳 本;和/或,導(dǎo)出所述測試腳本;和/或,編輯所述測試腳本;和/或,刪除所述測試腳本;和/或,關(guān)聯(lián)至少兩個所述測試腳本;和/或,查看測試腳本的執(zhí)行結(jié)果。
所述測試腳本采用偽代碼。
本發(fā)明還提供一種自動化測試系統(tǒng),包括
封裝單元,用于對自動化測試過程中涉及的每個測試對象、所述每個測試對象包 含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的所述 測試對象、所述操作方法、所述參數(shù)、所述功能過程和所述靜態(tài)元素映射一個一一對應(yīng)的關(guān) 鍵字;
瀏覽器,用于輸入由至少一個關(guān)鍵字組成的測試腳本;
解析模塊,用于對所述測試腳本進(jìn)行解析,獲取所述測試腳本中的全部關(guān)鍵字;
執(zhí)行模塊,用于根據(jù)所述解析模塊獲取的全部所述關(guān)鍵字,分別獲取所述關(guān)鍵字 對應(yīng)的封裝后的所述測試對象、所述參數(shù)和所述靜態(tài)元素,執(zhí)行所述關(guān)鍵字對應(yīng)的封裝后 的所述操作方法和所述功能過程。
所述封裝單元包括底層支撐模塊和對象工廠模塊;
所述底層支撐模塊,用于對自動化測試過程中涉及的每個測試對象、所述每個測 試對象包含的操作方法和參數(shù)、以及每個功能過程分別進(jìn)行封裝,為每一個封裝后的所述 測試對象、所述操作方法、所述參數(shù)和所述功能過程映射一個一一對應(yīng)的關(guān)鍵字;
所述對象工廠模塊,用于存儲經(jīng)過封裝的自動化測試過程中涉及的每個靜態(tài)元素 和每個所述靜態(tài)元素對應(yīng)的關(guān)鍵字;
所述執(zhí)行模塊,具體用于根據(jù)解析模塊獲得的至少一個關(guān)鍵字,獲取底層支撐模 塊存儲的所述至少一個操作關(guān)鍵字對應(yīng)的測試對象、操作方法、參數(shù)和功能過程,分別執(zhí)行 所述操作方法和功能過程,在執(zhí)行所述操作方法和功能過程的過程中,從所述對象工廠模 塊調(diào)用所述操作方法和功能過程中涉及的靜態(tài)元素。
所述底層支撐模塊包括測試對象接口、測試幫助接口、操作系統(tǒng)對象接口、應(yīng)用 程序用戶接口;
所述測試對象接口用于實現(xiàn)窗口操作和/或控件操作;
所述測試幫助接口用于實現(xiàn)輔助功能;
所述操作系統(tǒng)對象接口用于提供系統(tǒng)對象;
所述應(yīng)用程序用戶接口用于實現(xiàn)應(yīng)用程序的用戶操作和進(jìn)程操作。
所述裝置還包括
管理模塊,用于創(chuàng)建所述測試腳本、和/或存儲所述測試腳本、和/或查看所述測 試腳本、和/或?qū)С鏊鰷y試腳本、和/或編輯所述測試腳本、和/或刪除所述測試腳本、和 /或關(guān)聯(lián)至少兩個所述測試腳本、和/或查看測試腳本的執(zhí)行結(jié)果。
所述管理模塊包括管理接口 ;
所述管理接口用于所述管理模塊與所述解析模塊交互,以檢查所述測試腳本的格 式;
和/或,所述管理接口用于所述管理模塊與所述執(zhí)行模塊交互,以觸發(fā)所述執(zhí)行 模塊啟動執(zhí)行測試腳本;
和/或,所述管理接口用于所述管理模塊與所述瀏覽器交互,以創(chuàng)建所述測試腳 本、和/或編輯所述測試腳本、和/或存儲所述測試腳本、和/或查看所述測試腳本、和/或?qū)С鏊鰷y試腳本、和/或刪除所述測試腳本、和/或關(guān)聯(lián)至少兩個所述測試腳本。
所述解析模塊包括解析接口 ;
所述解析接口連接所述執(zhí)行模塊,所述執(zhí)行模塊調(diào)用所述解析接口向所述解析模 塊傳入所述測試腳本并從所述解析模塊獲取解析結(jié)果;
和/或,所述解析接口連接所述管理模塊,所述管理模塊調(diào)用所述解析接口向所 述解析模塊傳入所述測試腳本并從所述解析模塊獲取格式檢查結(jié)果和/或解析結(jié)果;
和/或,所述解析接口連接所述瀏覽器,所述瀏覽器通過所述解析接口向所述解 析模塊傳入所述測試腳本。
所述測試腳本采用偽代碼。
由上述發(fā)明內(nèi)容可見,通過將自動化測試過程中涉及的每個測試對象、每個測試 對象包含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后 的測試對象、操作方法、參數(shù)、功能過程和靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字,測試人員 輸入所需測試的功能對應(yīng)的關(guān)鍵字的組合,根據(jù)關(guān)鍵字執(zhí)行該關(guān)鍵字對應(yīng)的經(jīng)過封裝的上 述內(nèi)容,完成測試過程,從而不必在測試過程中編寫針對本次測試的復(fù)雜的代碼,提高了自 動化測試的效率,并且,不必要求測試人員掌握現(xiàn)有的編程語言,提高了自動化測試方法和 系統(tǒng)的通用性。
圖1是本發(fā)明實施例一的自動化測試方法的流程圖2是本發(fā)明實施例二的自動化測試系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對 本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明的基本思想是將自動化測試過程中所需的每個功能對應(yīng)的代碼分別進(jìn)行 封裝并映射一個關(guān)鍵字,在測試時,測試人員只需輸入所需測試的功能對應(yīng)的關(guān)鍵字或關(guān) 鍵字的組合,即可根據(jù)關(guān)鍵字執(zhí)行該關(guān)鍵字對應(yīng)的經(jīng)過封裝的代碼,從而完成測試過程。
圖1是本發(fā)明實施例一的自動化測試方法的流程圖。如圖1所示,該方法包括如 下過程。
步驟101 :對自動化測試過程中涉及的每個測試對象、每個測試對象包含的操作 方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的測試對象、操作 方法、參數(shù)、功能過程和靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字。
在本步驟中,具體地,上述功能過程可以是一個或多個操作方法的組合。上述靜態(tài) 元素可以為窗口等靜態(tài)元素,上述操作方法和功能過程中所需的靜態(tài)元素可以從上述經(jīng)過 封裝的靜態(tài)元素中調(diào)去。
步驟102 :輸入由至少一個關(guān)鍵字組成的測試腳本。
在本步驟中,測試腳本中可以包括一個關(guān)鍵字,或者,也可以包括一組關(guān)鍵字組成 的組合。該測試腳本可以由測試人員通過瀏覽器向自動化測試系統(tǒng)中輸入,具體地,測試人 員只需要根據(jù)當(dāng)前的測試需求,采用該需求對應(yīng)的關(guān)鍵字組成測試腳本即可。
進(jìn)一步地,在本發(fā)明實施例一中,該自動化測試方法中采用的測試腳本可以采用 偽代碼。具體地,該測試腳本可以不采用現(xiàn)有技術(shù)中的編程語言進(jìn)行編寫,而采用偽代碼進(jìn) 行編寫。由于現(xiàn)有的編程語言較復(fù)雜,通過采用更為簡單的偽代碼進(jìn)行編寫,因此不必要求 測試人員掌握現(xiàn)有技術(shù)中的復(fù)雜的編程語言,而只需要通過偽代碼對關(guān)鍵字進(jìn)行簡單組合 即可。并且,采用偽代碼無需對編寫后的測試腳本進(jìn)行編譯,只需要按照預(yù)先定義的格式組 裝偽代碼,通過測試系統(tǒng)對偽代碼進(jìn)行格式檢查來確保偽代碼的格式正確即可。通過采用 偽代碼編寫測試腳本,進(jìn)一步提高了測試方法的自動化測試效率和通用性。
步驟103 :對測試腳本進(jìn)行解析,獲取測試腳本中的全部關(guān)鍵字。
在本步驟中,對測試腳本進(jìn)行解析,通過解析獲得步驟102中組成該測試腳本的 一個或一組關(guān)鍵字。
步驟104 :根據(jù)解析獲得的全部關(guān)鍵字,分別獲取關(guān)鍵字對應(yīng)的封裝后的測試對 象、參數(shù)和靜態(tài)元素,執(zhí)行關(guān)鍵字對應(yīng)的封裝后的操作方法和功能過程。
在本步驟中,根據(jù)步驟103中的解析結(jié)果,組織執(zhí)行流程,即組織執(zhí)行測試腳本中 的單條或多條腳本程序。具體地,在執(zhí)行上述經(jīng)過封裝的操作或功能過程時,所需的靜態(tài)元 素可以從上述封裝的靜態(tài)元素中調(diào)取。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地,本發(fā)明實施例一的自動化測試方法還可以 包括如下步驟中的一種或幾種的組合。
在步驟102之前,本發(fā)明實施例一的自動化測試方法中還可以包括創(chuàng)建測試腳 本。在創(chuàng)建測試腳本之后,本發(fā)明實施例一的自動化測試方法中還可以包括如下步驟中的 一種或幾種的組合存儲測試腳本、查看測試腳本、導(dǎo)出測試腳本、編輯測試腳本、刪除測試 腳本、關(guān)聯(lián)至少兩個測試腳本、查看測試腳本的執(zhí)行結(jié)果。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地,在步驟102輸入由至少一個關(guān)鍵字組成的 測試腳本之后,在步驟103對測試腳本進(jìn)行解析之前,本發(fā)明實施例一的自動化測試方法 還可以包括以下步驟檢查測試腳本的格式。
以上對本發(fā)明提出的自動化測試方法進(jìn)行了說明,下面介紹一種采用上述自動化 測試方法的自動化測試系統(tǒng)。
圖2是本發(fā)明實施例二的自動化測試系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,該系統(tǒng)至 少包括封裝單元21、瀏覽器22、解析模塊23和執(zhí)行模塊24,在該系統(tǒng)包括封裝單元21、瀏 覽器22、解析模塊23和執(zhí)行模塊24的基礎(chǔ)上,進(jìn)一步地,該系統(tǒng)中還可以包括管理模塊 25。
其中,封裝單元21對自動化測試過程中涉及的每個測試對象、每個測試對象包含 的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的測試對 象、操作方法、參數(shù)、功能過程和靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字。并且,封裝單元21 存儲上述封裝后的測試對象、操作方法、參數(shù)、功能過程和靜態(tài)元素以及各自與關(guān)鍵字的對 應(yīng)關(guān)系。
瀏覽器22用于為測試人員提供交互界面,測試人員通過該瀏覽器22向該自動化 測試系統(tǒng)輸入由至少一個關(guān)鍵字組成的測試腳本。具體地,該瀏覽器22可以采用瀏覽器22 和服務(wù)器(BiOwser/Server,簡稱B/S)架構(gòu)中的瀏覽器22。該瀏覽器22的界面可以分為 兩部分,其中,一部分根據(jù)系統(tǒng)中各個模塊的需求定義控件和布局,另一部分給各個瀏覽器22控件添加控制邏輯。進(jìn)一步地,在本發(fā)明實施例二中,該自動化測試系統(tǒng)中采用的測試腳 本可以采用偽代碼。
解析模塊23對測試腳本進(jìn)行解析,獲取測試腳本中的全部關(guān)鍵字。進(jìn)一步地,解 析模塊23還可以在對測試腳本進(jìn)行解析之前,首先檢查測試腳本的格式。解析模塊23可 以從瀏覽器22和/或執(zhí)行模塊24獲取測試腳本,并將該測試腳本的解析結(jié)果或格式檢查 結(jié)果返回給瀏覽器22和/或執(zhí)行模塊24。
執(zhí)行模塊24從解析模塊23獲取解析模塊23解析獲取的測試腳本中的全部關(guān) 鍵字,根據(jù)至少一個關(guān)鍵字,從封裝單元21分別獲取關(guān)鍵字對應(yīng)的封裝后的測試對象、參 數(shù)和靜態(tài)元素,并且,從封裝單元21獲取并執(zhí)行關(guān)鍵字對應(yīng)的封裝后的操作方法和功能過 程。具體地,執(zhí)行模塊24根據(jù)解析模塊23的解析結(jié)果,組織執(zhí)行流程,即組織執(zhí)行測試腳 本中的單條或多條腳本程序。執(zhí)行模塊24中包括執(zhí)行程序,該執(zhí)行程序可以采用Java歸 檔文件(Java Archive,簡稱JAR)包方式,使用啟動Java瀏覽器(Java web start)的部署 方式在瀏覽器22頁面上調(diào)起。
進(jìn)一步地,該系統(tǒng)中還可以包括管理模塊25。該管理模塊25用于實現(xiàn)對腳本進(jìn) 行管理的功能,具體可以包括如下功能中的一項或多項的組合創(chuàng)建測試腳本、存儲測試腳 本、查看測試腳本、導(dǎo)出測試腳本、編輯測試腳本、刪除測試腳本、關(guān)聯(lián)至少兩個測試腳本、 查看測試腳本的執(zhí)行結(jié)果。通過管理模塊25進(jìn)行創(chuàng)建測試腳本或編輯測試腳本后,將經(jīng)過 管理模塊25創(chuàng)建、編輯后的測試腳本輸入到解析模塊23。具體地,管理模塊25從瀏覽器 22獲取上述創(chuàng)建、存儲、查看、導(dǎo)出、編輯、刪除、關(guān)聯(lián)測試腳本和查看測試腳本的執(zhí)行結(jié)果 的命令,在瀏覽器22的后臺采用JAVA服務(wù)網(wǎng)頁技術(shù)(Java Server Pages,簡稱JSP)調(diào)用 管理模塊25,以完成上述創(chuàng)建、存儲、查看、導(dǎo)出、編輯、刪除、關(guān)聯(lián)測試腳本并查看測試腳本 的執(zhí)行結(jié)果。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地,該系統(tǒng)中的封裝單元21具體可以包括底 層支撐模塊211和對象工廠模塊212。
具體地,底層支撐模塊211對自動化測試過程中涉及的每個測試對象、每個測試 對象包含的操作方法和參數(shù)、以及每個功能過程分別進(jìn)行封裝,為每一個封裝后的測試對 象、操作方法、參數(shù)和功能過程映射一個一一對應(yīng)的關(guān)鍵字。
對象工廠模塊212存儲經(jīng)過封裝的自動化測試過程中涉及的每個靜態(tài)元素和每 個靜態(tài)元素對應(yīng)的關(guān)鍵字。對象工廠模塊212中的封裝后的靜態(tài)元素用于在底層支撐模塊 211中的操作和/或功能過程執(zhí)行的過程中被調(diào)用。
在封裝單元21包括底層支撐模塊211和對象工廠模塊212的情況下,相應(yīng)地,執(zhí) 行模塊24根據(jù)從解析模塊23獲得的解析模塊23解析獲取的全部關(guān)鍵字,獲取底層支撐模 塊211存儲的至少一個操作關(guān)鍵字對應(yīng)的測試對象、操作方法、參數(shù)和功能過程,按照測試 腳本中的關(guān)鍵字順序,分別執(zhí)行關(guān)鍵字對應(yīng)的操作方法和功能過程,在執(zhí)行操作方法和功 能過程的過程中,所需的靜態(tài)元素從對象工廠模塊212中調(diào)用。
在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地,自動化測試系統(tǒng)中的上述各個模塊需要提 供相應(yīng)的接口,各個模塊通過調(diào)用相應(yīng)接口來完成自身的各種功能。例如
解析模塊23中包括解析接口(IScriptParse接口),該解析接口用于解析測試腳 本;該測試腳本可以采用偽代碼編寫,則該解析接口還可以進(jìn)一步用于檢查測試腳本的格式。該解析模塊23通過該解析接口接收測試腳本。具體地,該解析接口可以應(yīng)用于下述三 種場景中的任意一種或多種的組合第一,該解析接口可以與執(zhí)行模塊24連接,執(zhí)行模塊 24通過調(diào)用該解析接口向解析模塊23傳入測試腳本,并通過該解析接口獲取解析結(jié)果,以 根據(jù)解析結(jié)果執(zhí)行測試腳本。第二,該解析接口可以與管理模塊25連接,管理模塊25通過 調(diào)用該解析接口向解析模塊23傳入測試腳本,并通過該解析接口獲取格式檢查結(jié)果和/或 解析結(jié)果。第三,該解析接口可以與瀏覽器22連接,通過該解析接口從瀏覽器22傳入測試 腳本。在實際應(yīng)用中,可以根據(jù)具體應(yīng)用的需要,設(shè)計該解析接口的連接對象,該解析接口 可以與執(zhí)行模塊24、管理模塊25和瀏覽器22中的任意一種連接,也可以與其中兩者或三者 連接。
底層支撐模塊211中包括測試對象接口(ITestObject接口)、測試幫助接口 (ITestAssistant接口)、操作系統(tǒng)對象接口(ISystemObject接口 )和應(yīng)用程序用戶接口 (IUser接口)。測試對象接口用于實現(xiàn)窗口操作和/或控件操作。測試幫助接口用于實現(xiàn) 輔助功能,例如模擬鼠標(biāo)鍵盤操作等輔助功能。操作系統(tǒng)對象接口用于提供系統(tǒng)對象,例如 提供系統(tǒng)文件、注冊表、時間、環(huán)境變量等系統(tǒng)對象。應(yīng)用程序用戶接口用于實現(xiàn)應(yīng)用程序 的用戶操作和進(jìn)程操作。進(jìn)一步地,上述測試對象接口、操作系統(tǒng)對象接口和應(yīng)用程序用戶 接口需要定義一個判斷對象是否有效的靜態(tài)方法,并且為每一個對象映射一個一一對應(yīng)的 關(guān)鍵字,以供偽碼格式檢查使用。
管理模塊25包括管理接口(IScripManagment接口),上述管理模塊25的功能均 通過該管理接口或其擴展子接口實現(xiàn)。具體地,管理接口可以包括三部分功能。第一,管理 模塊25的管理接口用于與解析模塊23交互,對測試腳本的格式進(jìn)行檢查。第二,管理模塊 25的管理接口用于與執(zhí)行模塊24交互,觸發(fā)執(zhí)行模塊24啟動執(zhí)行測試腳本。第三,管理模 塊25通過管理接口與瀏覽器22交互,對測試腳本進(jìn)行管理,例如,可以包括如下對測試腳 本進(jìn)行的管理操作創(chuàng)建測試腳本、和/或編輯測試腳本、和/或存儲測試腳本、和/或查看 測試腳本、和/或?qū)С鰷y試腳本、和/或刪除測試腳本、和/或關(guān)聯(lián)至少兩個測試腳本。在 實際應(yīng)用中,根據(jù)實際應(yīng)用的需要,該管理接口可以包括上述三種功能中的任意一種或幾 種的組合。
具體地,在瀏覽器22給各個網(wǎng)頁控件或網(wǎng)絡(luò)控件(簡稱Web控件)添加控制邏輯 時,需要上述管理接口和解析接口的支持。
在對象工廠模塊212中,提供獲取全部接口對象的靜態(tài)方法。上述各個模塊中,對 其各自所依賴的接口均定義設(shè)置函數(shù)(簡稱setter),由對象工廠在構(gòu)造時傳入依賴,實現(xiàn) 依賴倒轉(zhuǎn)。
根據(jù)上述本發(fā)明具體實施方式
可見,通過將自動化測試過程中所需的每個測試對 象、所述每個測試對象包含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝, 為每一個封裝后的測試對象、操作方法、參數(shù)、功能過程和靜態(tài)元素映射一個一一對應(yīng)的關(guān) 鍵字,在測試時,測試人員只需輸入所需測試的功能對應(yīng)的關(guān)鍵字或關(guān)鍵字的組合,即可根 據(jù)關(guān)鍵字執(zhí)行該關(guān)鍵字對應(yīng)的經(jīng)過封裝的代碼,從而完成測試過程。采用該自動化測試方 法和系統(tǒng),不必在測試過程中編寫針對本次測試的復(fù)雜的代碼,從而提高了自動化測試的 效率,并且,可以支持普通測試人員完成測試過程,而不必要求測試人員掌握現(xiàn)有的編程語 言,從而提高了測試方法和系統(tǒng)的通用性。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種自動化測試方法,其特征在于,包括 對自動化測試過程中涉及的每個測試對象、所述每個測試對象包含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的所述測試對象、所述操作方法、所述參數(shù)、所述功能過程和所述靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字; 輸入由至少一個關(guān)鍵字組成的測試腳本; 對所述測試腳本進(jìn)行解析,獲取所述測試腳本中的全部關(guān)鍵字; 根據(jù)解析獲得的全部所述關(guān)鍵字,分別獲取所述關(guān)鍵字對應(yīng)的封裝后的所述測試對象、所述參數(shù)和所述靜態(tài)元素,執(zhí)行所述關(guān)鍵字對應(yīng)的封裝后的所述操作方法和所述功能過程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述輸入由至少一個關(guān)鍵字組成的測試腳本之前還包括創(chuàng)建所述測試腳本; 所述創(chuàng)建所述測試腳本之后還包括存儲所述測試腳本;和/或,查看所述測試腳本;和/或,導(dǎo)出所述測試腳本;和/或,編輯所述測試腳本;和/或,刪除所述測試腳本;和/或,關(guān)聯(lián)至少兩個所述測試腳本;和/或,查看測試腳本的執(zhí)行結(jié)果。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述測試腳本采用偽代碼。
4.一種自動化測試系統(tǒng),其特征在于,包括 封裝單元,用于對自動化測試過程中涉及的每個測試對象、所述每個測試對象包含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的所述測試對象、所述操作方法、所述參數(shù)、所述功能過程和所述靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字; 瀏覽器,用于輸入由至少一個關(guān)鍵字組成的測試腳本; 解析模塊,用于對所述測試腳本進(jìn)行解析,獲取所述測試腳本中的全部關(guān)鍵字; 執(zhí)行模塊,用于根據(jù)所述解析模塊獲取的全部所述關(guān)鍵字,分別獲取所述關(guān)鍵字對應(yīng)的封裝后的所述測試對象、所述靜態(tài)元素,執(zhí)行所述關(guān)鍵字對應(yīng)的封裝后的所述操作方法和所述功能過程。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于, 所述封裝單元包括底層支撐模塊和對象工廠模塊; 所述底層支撐模塊,用于對自動化測試過程中涉及的每個測試對象、所述每個測試對象包含的操作方法和參數(shù)、以及每個功能過程分別進(jìn)行封裝,為每一個封裝后的所述測試對象、所述操作方法、所述參數(shù)和所述功能過程映射一個一一對應(yīng)的關(guān)鍵字; 所述對象工廠模塊,用于存儲經(jīng)過封裝的自動化測試過程中涉及的每個靜態(tài)元素和每個所述靜態(tài)元素對應(yīng)的關(guān)鍵字; 所述執(zhí)行模塊,具體用于根據(jù)解析模塊獲得的至少一個關(guān)鍵字,獲取底層支撐模塊存儲的所述至少一個操作關(guān)鍵字對應(yīng)的測試對象、操作方法、參數(shù)和功能過程,分別執(zhí)行所述操作方法和功能過程,在執(zhí)行所述操作方法和功能過程的過程中,從所述對象工廠模塊調(diào)用所述操作方法和功能過程中涉及的靜態(tài)元素。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述底層支撐模塊包括測試對象接口、測試幫助接口、操作系統(tǒng)對象接口、應(yīng)用程序用戶接口 ;所述測試對象接口用于實現(xiàn)窗口操作和/或控件操作; 所述測試幫助接口用于實現(xiàn)輔助功能; 所述操作系統(tǒng)對象接口用于提供系統(tǒng)對象; 所述應(yīng)用程序用戶接口用于實現(xiàn)應(yīng)用程序的用戶操作和進(jìn)程操作。
7.根據(jù)權(quán)利要求4至6中任意一項所述的系統(tǒng),其特征在于,所述裝置還包括 管理模塊,用于創(chuàng)建所述測試腳本、和/或存儲所述測試腳本、和/或查看所述測試腳本、和/或?qū)С鏊鰷y試腳本、和/或編輯所述測試腳本、和/或刪除所述測試腳本、和/或關(guān)聯(lián)至少兩個所述測試腳本、和/或查看測試腳本的執(zhí)行結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述管理模塊包括管理接口; 所述管理接口用于所述管理模塊與所述解析模塊交互,以檢查所述測試腳本的格式; 和/或,所述管理接口用于所述管理模塊與所述執(zhí)行模塊交互,以觸發(fā)所述執(zhí)行模塊啟動執(zhí)行測試腳本; 和/或,所述管理接口用于所述管理模塊與所述瀏覽器交互,以創(chuàng)建所述測試腳本、和/或編輯所述測試腳本、和/或存儲所述測試腳本、和/或查看所述測試腳本、和/或?qū)С鏊鰷y試腳本、和/或刪除所述測試腳本、和/或關(guān)聯(lián)至少兩個所述測試腳本。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述解析模塊包括解析接口; 所述解析接口連接所述執(zhí)行模塊,所述執(zhí)行模塊調(diào)用所述解析接口向所述解析模塊傳入所述測試腳本并從所述解析模塊獲取解析結(jié)果; 和/或,所述解析接口連接所述管理模塊,所述管理模塊調(diào)用所述解析接口向所述解析模塊傳入所述測試腳本并從所述解析模塊獲取格式檢查結(jié)果和/或解析結(jié)果; 和/或,所述解析接口連接所述瀏覽器,所述瀏覽器通過所述解析接口向所述解析模塊傳入所述測試腳本。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于, 所述測試腳本采用偽代碼。
全文摘要
本發(fā)明公開了一種自動化測試方法,對自動化測試過程中涉及的每個測試對象、每個測試對象包含的操作方法和參數(shù)、每個功能過程以及靜態(tài)元素分別進(jìn)行封裝,為每一個封裝后的測試對象、操作方法、參數(shù)、功能過程和靜態(tài)元素映射一個一一對應(yīng)的關(guān)鍵字,輸入由至少一個關(guān)鍵字組成的測試腳本,對測試腳本進(jìn)行解析,獲取測試腳本中的全部關(guān)鍵字,根據(jù)解析獲得的關(guān)鍵字,分別獲取關(guān)鍵字對應(yīng)的封裝后的測試對象、參數(shù)和靜態(tài)元素,執(zhí)行關(guān)鍵字對應(yīng)的封裝后的操作方法和功能過程。本發(fā)明還公開了一種自動化測試系統(tǒng)。采用本發(fā)明公開的自動化測試方法和系統(tǒng),能夠提高自動化測試的效率和通用性。
文檔編號G06F11/36GK103019928SQ201110296140
公開日2013年4月3日 申請日期2011年9月27日 優(yōu)先權(quán)日2011年9月27日
發(fā)明者劉顯健, 孫冬梅 申請人:北京新媒傳信科技有限公司