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框架,需要為該框架支付額外的費用
轉載于:https://www.cnblogs.com/testermark/p/3517824.html
總結
以上是生活随笔為你收集整理的QTP自动化测试框架的基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring-mybatis 抽取 ba
- 下一篇: 纪伯伦:我曾七次鄙视我的灵魂