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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、輕量級自動化測試框架QTP BasediSoftStone Information Service Corporation Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.目錄問題描述解決方案 框架圖示 數據的組織 驅動的邏輯 優(yōu)勢和缺點參考資料問題描述Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.問題描述前段時間,完成了一些自動化測試的工作,發(fā)現了幾個問題:1. 腳本文件過大經過檢查分析,主要是兩方面原因導致,一是對象庫的文件,默認生成

2、得每個空的對象庫文件為192K,這樣一個空的QTP腳本文件就至少需要192K*2=384K的空間(Action0和Action1),如果分割的Action多的話,占用的空間就更多。二是Excel的文件,同樣由于分割Action,每個Action需要使用一個獨立的Sheet,包括腳本中調用的Action,這個在復雜的腳本中,表現得更加明顯,往往一個貸款發(fā)放的腳本會占用34M空間。2. 文件數量過多一個最簡單的QTP腳本,共有4個文件夾,13個文件,當分割Action較多時,文件數與Action的個數呈正比上升。Confidential 2008 iSoftStone Holdings Ltd.

3、All Rights Reserved.問題描述這兩個問題,直接導致最終完成的工程文件達到700800M,文件數以萬計。這還只包括了信貸與結算的主要業(yè)務。而其中真正有用的腳本,全部用文本來存儲的話,不會超過10M。使用Action復用的方式帶來了維護、轉移、版本的巨大困難。解決方案Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.解決方案概述1.用VBS的Function代替QTP腳本中的Action。不使用Action復用,而使用Function的加載和調用。直接減少QTP腳本的數量。2.使用單一的QTP腳本入口。這

4、樣整個工程中,就只有一個QTP腳本,其他的都是VBS文件,并且沒有了過多的Excel文件。確保冗余文件達到最少。3.數據文件統(tǒng)一維護。將所有腳本需要用到的測試數據統(tǒng)一放到一個或多個Excel文件中,方便了維護,同時也減少了Excel文件的數量。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.框架圖示Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.框架說明采用了(TestCase - Task)的模塊化設計思想,業(yè)務數據驅動腳本的指導思想???/p>

5、架并沒有太多的新意,對AUT測試對象的處理,全部交給測試工具和Script去處理,框架只處理業(yè)務層面的測試數據。當頁面元素是動態(tài)生成,或者寫得不規(guī)范時,Web對象的識別是困難的,而且用Excel表格來記錄一個個的Web對象,亦不見得實用。因此,對于Web對象的識別就全部放到腳本中去處理。幸好QTP提供的功能足以勝任這個工作??蚣苤校詈诵牡目赡苁荄river腳本,但是在整個測試中,最核心的不是Driver,不是Script,而是業(yè)務測試數據。孤立的來看自動化測試框架,是沒有任何意義的。什么樣的測試用例,決定什么樣的框架。Confidential 2008 iSoftStone Holdings

6、 Ltd. All Rights Reserved.體系結構1.Test Set驅動腳本驅動腳本 初始化 解析Test Set的數據文件 調用TestCase驅動腳本,向它傳遞測試用例的文件名 如果有必要,調用框架所必需的庫函數2.TestCase驅動腳本驅動腳本 解析TestCase的數據文件 根據TestCase的解析結果,加載測試腳本,加載測試數據 根據TestCase的內容,調用Task的測試腳本,并且把測試數據的集合傳遞給測試腳本 如果有必要,調用框架所必需的庫函數Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserv

7、ed.體系結構3.Task測試腳本測試腳本 執(zhí)行指定的任務(如輸入數據,點擊按鈕等) 生成日志,以及測試報告 如果需要則調用用戶自定義庫函數4.庫函數庫函數 一般的和具體應用程序的函數可以被調用,以執(zhí)行指定的任務。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.框架的存儲結構Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.框架的存儲結構Project文件夾,整個工程的最高一級目錄,名稱可以修改。Driver目錄,這個是QuickTest的腳

8、本文件,整個框架的入口。這個腳本包含了testSet和testcase的驅動腳本。frameUtil目錄,存放用來支持框架的一些函數庫。logs目錄,存放腳本運行日志testData目錄,存放測試用例以及測試數據的Excel文件testScript目錄,存放task腳本,全部存儲為vbs文件。driver.vbs文件,使用了QTP的automation object model,也是整個框架的入口。可以直接執(zhí)行該vbs腳本,因此可以做成Windows的自動任務,在指定時間點執(zhí)行。testData和testScript目錄下的內容,是真正需要開發(fā)的。Confidential 2008 iSoft

9、Stone Holdings Ltd. All Rights Reserved.數據的組織Test SetTestCaseTest DataTest DataConfidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.Test Set 數據文件Test Set數據文件是用來管理測試用例文件的,在這里,扮演了TD的管理測試用例和腳本的角色。很顯然,這個數據文件沒有TD的功能強大,不能體現測試用例對需求的覆蓋,沒有測試用例之間的樹形結構但是作為一個輕量級的測試框架,只要能夠記錄、管理50100個測試用例文件,就暫時夠用了。IDX:i

10、ndex,“”表示該行數據有效,“x”表示該行數據無效。主要是考慮到Excel直接面對人,用0,1來標識有效無效,很不直觀。name:測試用例的名字,用中文標示即可,這個字段只是讓人看起來比較直觀,并不會被用到。table:這個字段非常重要,它指向測試用例所在的Excel的文件名。可以帶后綴,也可以不帶后綴。不需要指定文件所在的路徑。sheet:表示測試用例在Excel文件的Sheet名稱。如果不填寫的話,默認為第一個Sheet。考慮到有些測試用例極其復雜,僅僅使用Excel形式的測試用例是遠遠不能實現其復雜的邏輯,也可以把測試用例寫成vbs文件,直接執(zhí)行該vbs腳本。目前暫未實現。Confi

11、dential 2008 iSoftStone Holdings Ltd. All Rights Reserved.TestCase數據文件TestCase數據文件中記錄的就是測試用例,只要不是太過于復雜的測試流程,都可以直接寫在Excel文件中,當然,需要符合一定的規(guī)范,很顯然,這離自然語言還是有一定的距離 。這種形式比較適合step-by-step的測試用例,并且粒度比較粗,減少了測試用例的步驟數。IDX:index,“”表示該行數據有效,“x”表示該行數據無效。bizName:被測試的業(yè)務的名稱,比如說“銀行收款”這個業(yè)務。事實上,這個名稱需要與存儲改業(yè)務的task腳本的名稱保持一致,而

12、且需要與task腳本中定義的class的名稱也保持一致。在沒有做名稱的中英文對照字典之前,bizName最好使用英文名,所以最好使用“collection”,而不是“銀行收款”。taskName:task的名稱,原子業(yè)務的名稱,比如新增、修改、刪除等。這個名稱與task腳本中定義的各個Function的名稱應該保持一致。同樣,暫時也最好不要使用中文。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.TestCase數據文件bizDataTable:測試數據所在的Excel的Sheet名稱。比如說進行登陸操作時,需要輸入

13、用戶名和密碼等數據,這些數據單獨放在某個Excel文件中的某個Sheet中,把這個Sheet的名稱寫到bizDataTable這個字段中即可,框架會自動去加載這個Sheet中的所有數據。filter:測試數據的過濾條件??赡軠蕚涞臏y試數據比較多,但是在當前這一個step中,只需要執(zhí)行某一條或幾條數據,就可以使用filter這個條件。比如說,登陸時,想用錯誤的用戶名和密碼來登陸,那么可以這樣寫:用戶類型=baduser。當然“用戶類型”是測試數據所在Excel表格中定義過了的字段。老實說,在這次完成的框架中,只有filter這個想法,覺得有點意思。感謝提出這個需求的同事。Confidential

14、 2008 iSoftStone Holdings Ltd. All Rights Reserved.Test data數據文件Test data數據文件,用來存放測試數據。沒有區(qū)分輸入數據、驗證數據、以及輸出數據,總之,只要是測試過程中,需要用到的數據,都一古腦的做成一行,放到這個文件中。一是覺得這樣在設計測試數據時,比較方便和直觀,二是也沒有更好的設計思想。對業(yè)務的驗證,按照設想,是通過日志文件和測試報告來體現的。所以把驗證數據與輸入數據放到一起,亦不會有太大的不妥。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved

15、.數據文件總結基于把測試設計和腳本開發(fā)分開的思路,設計了這三個Excel表格。測試設計時,主要是設計testcase和test data這兩個Excel表格。畢竟,這才是自動化測試最核心的價值所在。腳本寫得再完美,沒有好的測試設計、測試數據,對測試本身并不會有太大的幫助。因此,希望盡可能把這些Excel表格做得更易用。所謂的框架,就是把這3個Excel表格串起來的東西。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.驅動腳本的邏輯Test Set 驅動腳本偽碼TestCase 驅動腳本偽碼Task 腳本說明Confi

16、dential 2008 iSoftStone Holdings Ltd. All Rights Reserved.Test Set 驅動腳本偽碼1.將test set數據所在的整個Sheet加載到QuickTest的Runtime Table中。2.檢查test set數據文件中一共有多少行記錄需要執(zhí)行。3.讀取一行數據。4.如果該行的IDX的值為“”,那么調用執(zhí)行TestCase驅動腳本,并且把測試用例所在的Excel文件名和Sheet名作為參數傳給TestCase腳本。5.轉向第3步,直到所有數據被執(zhí)行完畢。6.刪除加載到Runtime Table中的所有數據。Confidential

17、2008 iSoftStone Holdings Ltd. All Rights Reserved.TestCase 驅動腳本偽碼1.將TestCase所在的Sheet加載到QuickTest的RunTime Table中。2.檢查TestCase數據文件中一共有多少行記錄需要執(zhí)行。3.遍歷整個Sheet,加載所有需要被用到的Task腳本:逐行讀取有效數據(IDX=“”),如果bizName的值所指向的Task腳本沒有被加載,那么加載之,直到所有數據被執(zhí)行完畢。4.遍歷整個Sheet,加載所有需要被用到的Test data數據:逐行讀取有效數據(IDX=“”),如果bizDataTable的值

18、所指向的Sheet(該Sheet的名稱應該在本測試用例中是唯一的)沒有被加載到RunTime Table中,那么加載之,直到所有數據被執(zhí)行完畢。5.獲取一行的測試步驟的數據。6.如果該行的IDX的值為“”,那么解析filter信息,形成條件語句。7.逐行讀取test data所在的Sheet,如果該行數據是滿足條件語句的,那么調用Task腳本,執(zhí)行對應的操作。8.轉向第5步,直到所有數據被執(zhí)行完畢。9.刪除加載到Runtime Table中的所有Sheet。Confidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.Task 腳

19、本說明Task 腳本的模板如下:Class collection 銀行收款-新增的taskFunction toInsert(Sheet_Name)Msgbox(DataTable(“序號”,Sheet_Name)End Function銀行收款-復核的taskFunction toCheck(Sheet_Name)Msgbox(DataTable(“序號”,Sheet_Name)End FunctionEnd ClassConfidential 2008 iSoftStone Holdings Ltd. All Rights Reserved.Task 腳本說明Task 腳本中,必須定義一個Class,這個Class的名稱應該與文件的名稱保持一致

溫馨提示

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

評論

0/150

提交評論