本發(fā)明涉及軟件自動化測試技術(shù)領域,具體地說是一種自動化測試框架。
背景技術(shù):
如何提升產(chǎn)品的質(zhì)量和競爭力,高效的軟件測試無疑發(fā)揮著舉足輕重的作用。自動化測試就是希望能夠通過自動化測試工具或其他手段,按照測試工程師的預定計劃進行自動的測試,目的是減輕手工測試的勞動量,從而達到提高軟件質(zhì)量的目的。軟件自動化測試框架是軟件自動化測試的能否成功的關(guān)鍵。
自動化測試框架,即是應用于自動化測試所用的框架。按照框架的定義,自動化測試框架要么是提供可重用的基礎自動化測試模塊,如:selenium、watir等,它們主要提供最基礎的自動化測試功能,比如打開一個程序,模擬鼠標和鍵盤來點擊或操作被測試對象,最后驗證被測對象的屬性以判斷程序的正確性;要么是可以提供自動化測試執(zhí)行和管理功能的架構(gòu)模塊,如:phoenixframework,robot,staf等,它們本身不提供基礎的自動化測試支持,只是用于組織、管理和執(zhí)行那些獨立的自動化測試用例,測試完成后統(tǒng)計測試結(jié)果,通常這類框架一般都會集成一個基礎自動化測試模塊,如:robot框架就可以集成selenium框架,phoenixframework集成的也是selenium框架。
而目前,一般的公司軟件自動化測試都是盲目的,將系統(tǒng)測試的用例直接轉(zhuǎn)化為自動化測試腳本,一個腳本對應一個用例,腳本之間獨立、不可共享,造成腳本編寫復雜、可維護性差,往往造成自動化測試半途而廢的后果,造成人力、物力的浪費。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務是提供一種基于關(guān)鍵字驅(qū)動的自動化測試框架,提高自動化測試的成功率。
本發(fā)明的技術(shù)任務是按以下方式實現(xiàn)的,一種自動化測試框架,包括測試用例管理系統(tǒng)、控制系統(tǒng)和第三方自動化測試工具;
其中,所述的測試用例管理系統(tǒng)支持測試者依據(jù)測試需求設計測試用例,并構(gòu)建關(guān)鍵字表,存放于數(shù)據(jù)庫,便于控制系統(tǒng)與第三方自動化測試工具的訪問;
所述的控制系統(tǒng)負責對數(shù)據(jù)庫的操作、測試數(shù)據(jù)處理及傳輸數(shù)據(jù)控制;
所述的第三方自動化測試工具,負責執(zhí)行自動化測試任務,解析關(guān)鍵字表,并根據(jù)關(guān)鍵字驅(qū)動測試腳本進行自動化測試,返回處理結(jié)果給控制系統(tǒng),輸出測試報告。
進一步的,優(yōu)選的方法為,所述的控制系統(tǒng),用于從數(shù)據(jù)庫中讀取數(shù)據(jù),驅(qū)動第三方工具讀取關(guān)鍵字表,驅(qū)動測試腳本執(zhí)行。
進一步的,優(yōu)選的方法為,所述的測試用例管理系統(tǒng)包括測試用例設計模塊,關(guān)鍵字管理模塊、生成測試請求模塊以及生成關(guān)鍵字表模塊;
所述的測試用例設計模塊,用于依據(jù)測試需求,進行測試用例的設計;
所述的關(guān)鍵字管理模塊,用于關(guān)鍵字管理;
所述的生成測試請求模塊,用于生成測試請求;
所述的生成關(guān)鍵字表模塊,用于生成以關(guān)鍵字表。
進一步的,優(yōu)選的方法為,所述的控制系統(tǒng)包括控制模塊、讀取關(guān)鍵字表模塊及導航腳本模塊;
其中,所述的控制模塊,為后臺系統(tǒng),負責整個框架的數(shù)據(jù)傳輸控制;
所述的讀取關(guān)鍵字表模塊,用于讀取關(guān)鍵字表;
所述的導航腳本模塊,為了便于后期關(guān)鍵字腳本的維護,負責建立測試關(guān)鍵字表的樹形結(jié)構(gòu)。
進一步的,優(yōu)選的方法為,所述的第三方自動化測試工具包括驅(qū)動腳本模塊、功能支持腳本模塊和數(shù)據(jù)處理腳本模塊。
一種自動化測試框架的設計方法,具體方法如下:
s1、測試用例管理系統(tǒng)支持測試者依據(jù)測試需求設計測試用例,并構(gòu)建關(guān)鍵字表,存放于數(shù)據(jù)庫,便于控制系統(tǒng)與第三方自動化測試工具的訪問;
s2、控制系統(tǒng)負責對數(shù)據(jù)庫的操作、測試數(shù)據(jù)處理及傳輸數(shù)據(jù)控制;
s3、第三方自動化測試工具,負責執(zhí)行自動化測試任務,解析關(guān)鍵字表,并根據(jù)關(guān)鍵字驅(qū)動測試腳本進行自動化測試,返回處理結(jié)果給控制系統(tǒng),輸出測試報告。
本發(fā)明的一種自動化測試框架和現(xiàn)有技術(shù)相比,有益效果為:
1、測試用例、關(guān)鍵字表、功能測試腳本分層次映射管理,清晰、便于維護;
2、關(guān)鍵字驅(qū)動測試,使得編程基礎不太好的測試人員也可以進行自動化測試腳本的設計和編寫;
3、存在導航功能,便于關(guān)鍵字表在項目間的共享;
4、控制模塊負責整個框架的運作及數(shù)據(jù)處理,并對測試者透明,便于框架的使用。
附圖說明
附圖1為一種自動化測試框架的流程圖。
具體實施方式
實施例1:
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖1對本發(fā)明做進一步地詳細描述:
框架包含測試用例管理系統(tǒng)、控制系統(tǒng)及第三方自動化測試工具。
測試用例管理系統(tǒng)支持測試者依據(jù)測試需求設計測試用例,并構(gòu)建關(guān)鍵字表,存放于數(shù)據(jù)庫;測試用例管理系統(tǒng)包括測試用例設計模塊、關(guān)鍵字管理模塊、生成測試請求模塊、生成關(guān)鍵字表模塊。
測試用例設計就是將一個測試用例中的幾個不同的測試點拆分并且將其單個點的測試步驟進行了封裝,形成了一個模塊。
例如:一個測試用例要對一個登錄程序進行測試,其中包括:用戶名輸入、密碼輸入、以及確定登錄;
那么就可以將用戶名輸入、密碼輸入、確定登錄、取消登錄四個操作分別封裝在四個不同的模塊中。測試時,只需調(diào)用其模塊即可。這樣的話,當一個模塊有變化,你只需單獨維護那個模塊即可,也可以根據(jù)模塊的不同組合成不同的測試用例。
關(guān)鍵字管理就是一種面向?qū)ο蟮乃枷耄纾簈tp、rft中,對象可以為一個數(shù)據(jù)或者一個關(guān)鍵字,對對象的抓取,可以將其測試對象封裝為一個關(guān)鍵字,即可以將gui元素封裝成了一個個關(guān)鍵字,這樣可以對其關(guān)鍵對象進行各種操作了,不同的對象可以驅(qū)動不同的測試流向與結(jié)果。
簡單的應用的方式可以用一個excel表,里面包括“對象類型”“對象名稱”“對象操作名稱”“判斷方式”“預期結(jié)果”。這樣的話,可以通過導入不同的對象類型和名稱、不同的對象操作來構(gòu)建成了一個測試用例表了。
測試工程師依據(jù)測試需求,進行測試用例的設計,生成以關(guān)鍵字為驅(qū)動的測試用例表,存放于數(shù)據(jù)庫,便于控制系統(tǒng)與第三方自動化測試工具訪問。
控制系統(tǒng)負責對數(shù)據(jù)庫的操作、測試數(shù)據(jù)處理及傳輸數(shù)據(jù)控制??刂葡到y(tǒng)包括但不限于從數(shù)據(jù)庫中讀取數(shù)據(jù),驅(qū)動第三方工具讀取關(guān)鍵字表,驅(qū)動測試腳本執(zhí)行等;控制系統(tǒng)包括控制模塊、讀取關(guān)鍵字表模塊及導航腳本模塊。其中控制模塊對于測試者是透明的,為后臺系統(tǒng),負責整個框架的數(shù)據(jù)傳輸控制,例如驅(qū)動第三方自動化測試工具腳本讀取關(guān)鍵字表、訪問數(shù)據(jù)庫等。導航腳本負責建立測試關(guān)鍵字表的樹形結(jié)構(gòu),便于后期關(guān)鍵字腳本的維護。
第三方自動化測試工具,包括驅(qū)動腳本模塊、功能支持腳本模塊和數(shù)據(jù)處理腳本模塊。第三方自動化測試工具負責讀取關(guān)鍵字表,創(chuàng)建自動化測試腳本,并負責執(zhí)行實際的功能測試,輸出測試報告。
本發(fā)明還保護一種自動化測試框架的設計方法,具體方法如下:
s1、測試用例管理系統(tǒng)支持測試者依據(jù)測試需求設計測試用例,并構(gòu)建關(guān)鍵字表,存放于數(shù)據(jù)庫,便于控制系統(tǒng)與第三方自動化測試工具的訪問;
s2、控制系統(tǒng)負責對數(shù)據(jù)庫的操作、測試數(shù)據(jù)處理及傳輸數(shù)據(jù)控制;
s3、第三方自動化測試工具,負責執(zhí)行自動化測試任務,解析關(guān)鍵字表,并根據(jù)關(guān)鍵字驅(qū)動測試腳本進行自動化測試,返回處理結(jié)果給控制系統(tǒng),輸出測試報告。
本發(fā)明通過測試用例管理系統(tǒng)、控制系統(tǒng)及第三方自動化測試工具,將測試用例、關(guān)鍵字表、測試腳本單獨管理,分層映射。形成關(guān)鍵字驅(qū)動的自動化測試框架。
通過上面具體實施方式,所述技術(shù)領域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的幾種具體實施方式。在公開的實施方式的基礎上,所述技術(shù)領域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。