簡述QTP自動化測試框架

1. 什麼是自動化測試框架?

假定你有一個活,需要構建許多自動化測試用例來測試這個應用程序。當你對這個應用程序完成自動化測試後,你對自己創建腳本應該有什麼期望嗎?你難道不想要-

  • 腳本應該按照預期的來執行而且沒有發生任何問題
  • 腳本和流程應該會被很容易的理解
  • 腳本是容易維護的

所有以上觀點需要一個合適的自動化測試框架才能被實現

一個自動化測試框架是一個規範或者是約束,你需要讓測試腳本遵從一些規則來完成上面提到的3點內容,這些規則或者綱要如下,比如

  • 指定一些目錄結構用來存儲對應的測試用例,函數庫,對象庫和數據表格
  • 決定數據表格格式,比如數據表個應該怎麼組織,腳本是怎麼訪問這些數據表格的
  • 遵循正確的代碼標準,並且要在代碼裏有備註,以便別人能看懂你的代碼
  • 儘可能把一些能複用的代碼封裝成爲函數,以便在發生變化的時候只需要修改很少的一部分

在創建測試腳本的時候始終遵循你設置的準則,這樣可以創建一個包含所有你曾經有針對性的功能的自動化測試框架

框架的類型分別如下:

2. 在QTP使用的不同類型的框架

 

 

3. QTP裏的線性框架

線性框架是你一步一步在測試流程裏寫測試腳本。在這樣的框架類型中,你不需要創建任何函數,所有的測試步驟都是從上到下線性的順序來寫。假如你有一個測試用例,它是按照 Login->Create->Order->Logout的流程來走,那麼測試腳本就會按照如下圖所寫一樣:

3.1 在線性框架裏的組件和工作流

以下圖形展示了關於QTP線性框架的組件和典型的工作流

 

在這裏每個測試用例都有它自己的對象庫並且腳本里的數據都是hardcode

 

3.2 線性框架的優勢:

  • 不需要自動化的專業知識,你只需要錄製和回放的方法就能用來創建腳本
  • 快速和容易的方式來創建測試腳本
  • 由於腳本是按照從上到下的順序來寫的,所以框架流程理解起來比較容易

3.3 線性框架的缺點:

  • 重用代碼的唯一方式是不斷的複製和粘貼,從而導致大量冗餘的代碼
  • 由於腳本里數據都是hardcode,同一個測試用例不能被不同的測試數據所驅動
  • 由於代碼在許多地方都是重複的,所以一旦有地方發生變化就需要修改很多地方

4. 關於QTP的模塊框架

模塊框架就是把所有的測試用例首先要分析下找出可以複用的流程的一個方法。然後把所有可以複用的流程放進函數裏封裝起來存儲在外部文件中,當需要的時候可以在腳本里調用這些函數。考慮以下2個測試用例。

a)Login>Create Order>Logout.

b)Login>Search Order>Logout.

在這裏登錄和登出是可以複用的流程。那麼這些流程就被封裝起來保存在外部函數庫裏。測試腳本應該看起來像這樣

 

4.1 模塊框架的組件和工作流

 

爲了可以使用外部庫文件裏的函數,庫文件首先需要和測試用例關聯起來。這樣測試用例就可以調用庫文件裏的函數了

 

4.2 模塊框架的優點:

  • 由於複用的函數只需要創建一次,測試腳本就只需要調用所需要的函數,而不需要重新再寫一遍函數裏的內容,那麼創建起來就快一點
  • 由於代碼的複用,創建測試用例所花的功夫也會縮短
  • 如果複用的函數裏發生任何改變,只需要改變一個地方就會影響到調用它的所有測試用例,因此維護起來也會很容易

 

4.3 模塊框架的缺點:

  • 由於腳本里的數據還是hardcode,所以還是不能實現不同的測試數據運行同一個腳本
  • 需要花費額外的時間來分析測試用例識別出那些是可以複用的
  • 創建和維護函數庫需要好的編程知識

 

5. QTP的數據驅動框架

在數據驅動框架裏,測試腳本里的數據不在是hard-code。相反,數據是被存儲在一些外部文件裏。測試腳本需要首先連接到外部數據源,然後從數據源裏解析這些數據。大部分時間,我們一般都會使用Excel表格用來存儲數據。其它的經常使用的外部數據源是:文本文件,XML文件,數據庫以及一個外部文件以上的組合

 

5.1 數據驅動框架的組件和流程

 

5.2 數據驅動框架的優點:

  • 由於數據與測試腳本是分離的,可以實現同一個腳本用不同的數據可以運行多次
  • 測試數據的更改不會影響到測試腳本,反之亦然

 

5.3 數據驅動框架的缺點:

  • 連接到數據源並讀取裏面的數據是需要額外的努力和相關專業的知識
  • 需要用額外的時間來選擇使用那種外部數據源,並且要決定外部數據源裏的數據應該怎麼被存儲或是組織

 

 6. QTP的關鍵字驅動框架

在關鍵字驅動框架裏,你可以創建一些關鍵字以及相關聯的一些方法和函數。然後你創建一個函數庫,它裏面包含一個讀取關鍵字的邏輯,然後調用相關的動作。

關鍵字驅動框架有許多不同的形式,其中一個解釋如下:

6.1 關鍵字驅動框架的組件

  • 數據表格或者Excel表格包含了關鍵字和需要執行特定流程或者動作的步驟

  • 一個函數庫裏包含一些函數,這些函數可以讀取Excel裏每行數據,然後把他轉換爲QTP可以識別的格式(也就是QTP腳本),然後最終執行它。比如,函數庫讀取Excel裏的第一行數據,然後把他轉化爲----Browser(“Title”).Page(“Title”).WebEdit(“UserName”).Set “user1”
  • 對象庫在這個框架裏不是必須的,如果你不想用對象庫的話,可以用描述性編程

6.2 關鍵字驅動框架的工作流

6.3 關鍵字驅動框架的優點:

  • 關鍵字和函數庫變成完全通用的,因此對於不同的應用可以很容易的被重用
  • 所有複雜的邏輯都添加到函數庫裏了。一旦庫文件被準備好,在Excel表格裏寫測試腳本將變得很容易

 

6.4 關鍵字框架的缺點:

  • 需要花很多時間在初始化創建函數庫上,關鍵字驅動框架的優勢只有在它被長時間使用的時候才能被充分體現出來
  • 創建複雜的關鍵字函數庫需要很強的編程技術
  • 對於新人想快速理解框架是有點困難

 

7. QTP的混合框架

混合框架的意思是上面提到的一些框架的組合,基於需求,你可以合併以上框架的任何功能來組合成你需要的混合框架的版

有許多不同的方式來創建混合框架。讓我們一起看看混合框架中其中一種的結構和工作流程

 

7.1 關鍵字驅動框架的組件

  • 驅動腳本:它是一個VBS腳本文件,他是運行測試腳本的入口點
  • 批處理表格:批處理表格包含了有已經自動化的所有測試用例列表,並且還包含一個叫做Execute的列名,它的值是"Yes"和"No".驅動腳本會讀取這個表格,然後執行被標記爲"Yes"的測試用例

  • 每個測試用例是被分割成不同的業務流程。因此當這個用例包含的業務流程都被執行時候,這個用例纔算被完全的執行

  • 上面所說的是構成混合框架的主要組件,像函數庫,數據表,對象庫,配置文件等其它一般的組件也是混合框架的一部分

 

7.2 混合框架的工作流

 

7.3 混合框架的優點:

  • 這個框架最大優點就是你可以用到其他框架最好的功能

7.4 混合框架的缺點:

  • 該框架是非常複雜的,需要具備很好的編程知識和經驗來從頭到尾的構建混合框架

 

8. QTP的業務流程測試(BPT)框架

把測試用例分成多個流程,每個流程都用業務流程組件(Business process component)來腳本化的一個框架。當一個具體的測試用例所包含的組件都已經準備好以後,你可以在QC裏按照你們的業務邏輯來連接這些組件從而組成一個BPT的測試用例,然後就可以執行它

8.1 BPT框架的組件:

  • 應用程序區域:它作爲一個容器用來存儲業務流程組件和其他相關的項,比如函數庫,對象庫等等。
  • 業務流程組件:就像Action和函數是用來存儲可以複用的腳本一樣,BPT框架有業務流程組件,該組件包含了一個動作所對應的腳本
  • 以上提到的2個組件在BPT框架裏是非常有用的,而其它就是一些標準的組件,比如函數庫,對象庫,數據表等等。這些所有組件組成了BPT框架

 

8.2 BPT框架的工作流

 

8.3 BPT框架的優點:

  • BPT可以讓非技術業務專家可以使用業務組件快速創建測試用例
  • 許多功能,比如組件鏈接&數據參數化,這些都是來自BPT內置的功能。有了這些功能,你不需要花費額外的時間來寫實現這些功能的代碼

 

8.4 BPT框架的缺點

  • BPT框架只能在QC裏使用
  • 如果你想爲了你的測試腳本用BPT框架,需要爲該框架支付額外的費用

本文章轉自:http://www.cnitblog.com/stomic/archive/2014/01/14/89211.html版權歸原創所有!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章