輕量級自動化測試框架-QTPBa_第1頁
輕量級自動化測試框架-QTPBa_第2頁
輕量級自動化測試框架-QTPBa_第3頁
輕量級自動化測試框架-QTPBa_第4頁
輕量級自動化測試框架-QTPBa_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

輕量級自動化測試框架

—QTPBased輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第1頁!目錄

問題描述解決方案框架圖示數(shù)據(jù)的組織驅(qū)動的邏輯優(yōu)勢和缺點參考資料輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第2頁!問題描述前段時間,完成了一些自動化測試的工作,發(fā)現(xiàn)了幾個問題:腳本文件過大

經(jīng)過檢查分析,主要是兩方面原因?qū)е?,一是對象庫的文件,默認(rèn)生成得每個空的對象庫文件為192K,這樣一個空的QTP腳本文件就至少需要192K*2=384K的空間(Action0和Action1),如果分割的Action多的話,占用的空間就更多。二是Excel的文件,同樣由于分割A(yù)ction,每個Action需要使用一個獨立的Sheet,包括腳本中調(diào)用的Action,這個在復(fù)雜的腳本中,表現(xiàn)得更加明顯,往往一個貸款發(fā)放的腳本會占用3~4M空間。文件數(shù)量過多

一個最簡單的QTP腳本,共有4個文件夾,13個文件,當(dāng)分割A(yù)ction較多時,文件數(shù)與Action的個數(shù)呈正比上升。這兩個問題,直接導(dǎo)致最終完成的工程文件達(dá)到700~800M,文件數(shù)以萬計。這還只包括了信貸與結(jié)算的主要業(yè)務(wù)。而其中真正有用的腳本,全部用文本來存儲的話,不會超過10M。使用Action復(fù)用的方式帶來了維護(hù)、轉(zhuǎn)移、版本的巨大困難。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第3頁!框架圖示術(shù)語詞匯表定義在此培訓(xùn)中使用的術(shù)語輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第4頁!體系結(jié)構(gòu)Test

Set驅(qū)動腳本初始化解析Test

Set的數(shù)據(jù)文件調(diào)用TestCase驅(qū)動腳本,向它傳遞測試用例的文件名如果有必要,調(diào)用框架所必需的庫函數(shù)TestCase驅(qū)動腳本解析TestCase的數(shù)據(jù)文件根據(jù)TestCase的解析結(jié)果,加載測試腳本,加載測試數(shù)據(jù)根據(jù)TestCase的內(nèi)容,調(diào)用Task的測試腳本,并且把測試數(shù)據(jù)的集合傳遞給測試腳本如果有必要,調(diào)用框架所必需的庫函數(shù)Task測試腳本執(zhí)行指定的任務(wù)(如輸入數(shù)據(jù),點擊按鈕等)生成日志,以及測試報告如果需要則調(diào)用用戶自定義庫函數(shù)庫函數(shù)一般的和具體應(yīng)用程序的函數(shù)可以被調(diào)用,以執(zhí)行指定的任務(wù)。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第5頁!框架的存儲結(jié)構(gòu)Project文件夾,整個工程的最高一級目錄,名稱可以修改。Driver目錄,這個是QuickTest的腳本文件,整個框架的入口。這個腳本包含了testSet和testcase的驅(qū)動腳本。frameUtil目錄,存放用來支持框架的一些函數(shù)庫。logs目錄,存放腳本運行日志testData目錄,存放測試用例以及測試數(shù)據(jù)的Excel文件testScript目錄,存放task腳本,全部存儲為vbs文件。driver.vbs文件,使用了QTP的automationobjectmodel,也是整個框架的入口??梢灾苯訄?zhí)行該vbs腳本,因此可以做成Windows的自動任務(wù),在指定時間點執(zhí)行。testData和testScript目錄下的內(nèi)容,是真正需要開發(fā)的。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第6頁!TestSet數(shù)據(jù)文件Test

Set數(shù)據(jù)文件是用來管理測試用例文件的,在這里,扮演了TD的管理測試用例和腳本的角色。很顯然,這個數(shù)據(jù)文件沒有TD的功能強(qiáng)大,不能體現(xiàn)測試用例對需求的覆蓋,沒有測試用例之間的樹形結(jié)構(gòu)…但是作為一個輕量級的測試框架,只要能夠記錄、管理50~100個測試用例文件,就暫時夠用了。IDX:index,“√”表示該行數(shù)據(jù)有效,“x”表示該行數(shù)據(jù)無效。主要是考慮到Excel直接面對人,用0,1來標(biāo)識有效無效,很不直觀。name:測試用例的名字,用中文標(biāo)示即可,這個字段只是讓人看起來比較直觀,并不會被用到。table:這個字段非常重要,它指向測試用例所在的Excel的文件名??梢詭Ш缶Y,也可以不帶后綴。不需要指定文件所在的路徑。sheet:表示測試用例在Excel文件的Sheet名稱。如果不填寫的話,默認(rèn)為個Sheet??紤]到有些測試用例極其復(fù)雜,僅僅使用Excel形式的測試用例是遠(yuǎn)遠(yuǎn)不能實現(xiàn)其復(fù)雜的邏輯,也可以把測試用例寫成vbs文件,直接執(zhí)行該vbs腳本。目前暫未實現(xiàn)。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第7頁!TestCase數(shù)據(jù)文件bizDataTable:測試數(shù)據(jù)所在的Excel的Sheet名稱。比如說進(jìn)行登陸操作時,需要輸入用戶名和密碼等數(shù)據(jù),這些數(shù)據(jù)單獨放在某個Excel文件中的某個Sheet中,把這個Sheet的名稱寫到bizDataTable這個字段中即可,框架會自動去加載這個Sheet中的所有數(shù)據(jù)。filter:測試數(shù)據(jù)的過濾條件??赡軠?zhǔn)備的測試數(shù)據(jù)比較多,但是在當(dāng)前這一個step中,只需要執(zhí)行某一條或幾條數(shù)據(jù),就可以使用filter這個條件。比如說,登陸時,想用錯誤的用戶名和密碼來登陸,那么可以這樣寫:用戶類型=baduser。當(dāng)然“用戶類型”是測試數(shù)據(jù)所在Excel表格中定義過了的字段。老實說,在這次完成的框架中,只有filter這個想法,覺得有點意思。感謝提出這個需求的同事。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第8頁!數(shù)據(jù)文件總結(jié)基于把測試設(shè)計和腳本開發(fā)分開的思路,設(shè)計了這三個Excel表格。測試設(shè)計時,主要是設(shè)計testcase和test

data這兩個Excel表格。畢竟,這才是自動化測試最核心的價值所在。腳本寫得再完美,沒有好的測試設(shè)計、測試數(shù)據(jù),對測試本身并不會有太大的幫助。因此,希望盡可能把這些Excel表格做得更易用。所謂的框架,就是把這3個Excel表格串起來的東西。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第9頁!Test

Set驅(qū)動腳本偽碼將test

set數(shù)據(jù)所在的整個Sheet加載到QuickTest的Runtime

Table中。檢查test

set數(shù)據(jù)文件中一共有多少行記錄需要執(zhí)行。讀取一行數(shù)據(jù)。如果該行的IDX的值為“√”,那么調(diào)用執(zhí)行TestCase驅(qū)動腳本,并且把測試用例所在的Excel文件名和Sheet名作為參數(shù)傳給TestCase腳本。轉(zhuǎn)向第3步,直到所有數(shù)據(jù)被執(zhí)行完畢。刪除加載到Runtime

Table中的所有數(shù)據(jù)。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第10頁!Task腳本說明Task腳本的模板如下:Classcollection ‘銀行收款-新增的taskFunctiontoInsert(Sheet_Name)Msgbox(DataTable(“序號”,Sheet_Name))……EndFunction ‘銀行收款-復(fù)核的taskFunctiontoCheck(Sheet_Name)Msgbox(DataTable(“序號”,Sheet_Name))EndFunctionEndClass輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第11頁!優(yōu)勢和缺點優(yōu)勢:腳本文件少,并且占用的空間也少了??梢允褂冒姹究刂乒ぞ邔蝹€的數(shù)據(jù)文件或者vbs文件進(jìn)行版本控制。測試設(shè)計和腳本開發(fā)解耦。測試用例和數(shù)據(jù)的展現(xiàn)更加人性化。缺點:異常的捕獲考慮得很少。日志只是輸出到文件,不利于查看。如果把日志輸出到數(shù)據(jù)庫,就可以生成相應(yīng)的測試執(zhí)行報告。測試用例的管理太過于簡陋。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第12頁!解決方案概述用VBS的Function代替QTP腳本中的Action。不使用Action復(fù)用,而使用Function的加載和調(diào)用。直接減少Q(mào)TP腳本的數(shù)量。使用單一的QTP腳本入口。這樣整個工程中,就只有一個QTP腳本,其他的都是VBS文件,并且沒有了過多的Excel文件。確保冗余文件達(dá)到最少。數(shù)據(jù)文件統(tǒng)一維護(hù)。將所有腳本需要用到的測試數(shù)據(jù)統(tǒng)一放到一個或多個Excel文件中,方便了維護(hù),同時也減少了Excel文件的數(shù)量。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第13頁!框架說明采用了(TestCase-Task)的模塊化設(shè)計思想,業(yè)務(wù)數(shù)據(jù)驅(qū)動腳本的指導(dǎo)思想??蚣懿]有太多的新意,對AUT測試對象的處理,全部交給測試工具和Script去處理,框架只處理業(yè)務(wù)層面的測試數(shù)據(jù)。當(dāng)頁面元素是動態(tài)生成,或者寫得不規(guī)范時,Web對象的識別是困難的,而且用Excel表格來記錄一個個的Web對象,亦不見得實用。因此,對于Web對象的識別就全部放到腳本中去處理。幸好QTP提供的功能足以勝任這個工作。框架中,最核心的可能是Driver腳本,但是在整個測試中,最核心的不是Driver,不是Script,而是業(yè)務(wù)測試數(shù)據(jù)。孤立的來看自動化測試框架,是沒有任何意義的。什么樣的測試用例,決定什么樣的框架。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第14頁!框架的存儲結(jié)構(gòu)簡要審閱所演示的內(nèi)容確定應(yīng)用培訓(xùn)的方法請求有關(guān)培訓(xùn)單元的反饋輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第15頁!數(shù)據(jù)的組織TestSetTestCaseTestDataTestData輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第16頁!TestCase數(shù)據(jù)文件TestCase數(shù)據(jù)文件中記錄的就是測試用例,只要不是太過于復(fù)雜的測試流程,都可以直接寫在Excel文件中,當(dāng)然,需要符合一定的規(guī)范,很顯然,這離自然語言還是有一定的距離。這種形式比較適合step-by-step的測試用例,并且粒度比較粗,減少了測試用例的步驟數(shù)。IDX:index,“√”表示該行數(shù)據(jù)有效,“x”表示該行數(shù)據(jù)無效。bizName:被測試的業(yè)務(wù)的名稱,比如說“銀行收款”這個業(yè)務(wù)。事實上,這個名稱需要與存儲改業(yè)務(wù)的task腳本的名稱保持一致,而且需要與task腳本中定義的class的名稱也保持一致。在沒有做名稱的中英文對照字典之前,bizName最好使用英文名,所以最好使用“collection”,而不是“銀行收款”。taskName:task的名稱,原子業(yè)務(wù)的名稱,比如新增、修改、刪除等。這個名稱與task腳本中定義的各個Function的名稱應(yīng)該保持一致。同樣,暫時也最好不要使用中文。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第17頁!Test

data數(shù)據(jù)文件Test

data數(shù)據(jù)文件,用來存放測試數(shù)據(jù)。沒有區(qū)分輸入數(shù)據(jù)、驗證數(shù)據(jù)、以及輸出數(shù)據(jù),總之,只要是測試過程中,需要用到的數(shù)據(jù),都一古腦的做成一行,放到這個文件中。一是覺得這樣在設(shè)計測試數(shù)據(jù)時,比較方便和直觀,二是也沒有更好的設(shè)計思想。對業(yè)務(wù)的驗證,按照設(shè)想,是通過日志文件和測試報告來體現(xiàn)的。所以把驗證數(shù)據(jù)與輸入數(shù)據(jù)放到一起,亦不會有太大的不妥。輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第18頁!驅(qū)動腳本的邏輯Test

Set驅(qū)動腳本偽碼TestCase驅(qū)動腳本偽碼Task腳本說明輕量級自動化測試框架-QTPBa共22頁,您現(xiàn)在瀏覽的是第19頁!TestCase驅(qū)動腳本偽碼將TestCase所在的Sheet加載到QuickTest的RunTime

Table中。檢查TestCase數(shù)據(jù)文件中一共有多少行記錄需要執(zhí)行。遍歷整個Sheet,加載所有需要被用到的Task腳本:逐行讀取有效數(shù)據(jù)(IDX=“√”),如果bizName的值所指向的Task腳本沒有被加載,那么加載之,直到所有數(shù)據(jù)被執(zhí)行完畢。遍歷整個Sheet,加載所有需要被用到的Test

data數(shù)據(jù):逐行讀取有效數(shù)據(jù)(IDX=“√”),如果bizDataTable的值所指向的Sheet(該Sheet的名稱應(yīng)該在本測試用例中是唯一的)沒有被加載到RunTime

Table中,那么加載之,直到所有數(shù)據(jù)被執(zhí)行完畢。獲取一行的測試步驟的數(shù)據(jù)。如果該行的IDX的值為“√”,那么解析filter信息,形成條件語句。逐行讀取test

data所在的Sheet,如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論