測試空間旗下大頭針出品
QTP的檢查點是基于錄制回放機制的,隻有你把要測試的軟體錄制到對象倉庫裡才能使用檢查點。 QTP提供了标準檢查點、文本檢查點、圖像檢查點、資料庫檢查點。因為在開發的過程中,軟體經常改變,是以對象倉庫的管理非常不友善。檢查點又是基于對象倉庫的,是以使用起來也是極其不友善的。在QTP提供的檢查點裡面,本人認為最實用的就是資料庫檢查點(Database checkpoint)了,使用QTP資料庫檢查點技術含量要求最高。需要你懂資料庫語句,懂得ODBC資料源的知識。
書籍上介紹的資料庫檢查點的使用總是有點差強人意。
一般使用QTP資料庫的流程:
假設是飛機訂票程式,訂票後的結果是要寫入資料庫的訂票資料表(orders表)。
1.先通過控制台--》管理工具--》資料源 (ODBC) 建立連接配接資料庫的資料源假設資料源的名稱為:flight.dsn
2.錄制訂票(插入資料)的腳本,假設姓名為abc的人要訂票。
3.插入資料庫檢查點
通過flight.dsn連上資料庫,然後通過查詢語句把資料庫中某個表(假設是orders表)的資料查詢出來存到QTP的資料表(Data Table)中,選擇你要檢查的行,或者某個表格(cell)。
4.回放錄制的程式。
5.檢視回放後的輸出結果。檢查資料庫檢查點(Database checkpoint)是成功或者失敗。
上面的流程為一般的使用資料庫檢查點(Database checkpoint)的過程,但這樣使用有一個非常明顯的錯誤是:當你回放錄制後的腳本時,那麼姓名為order_me的人要再一次訂票,那麼相當于order_me定了兩次票。這個在飛機訂票時允許的,假設你需要在一個網站注冊郵箱,郵箱名是不允許重複的。那如果按照上面的流程,那麼腳本再次運作的時候就會出錯。如果按照上面所說的流程,那麼資料庫檢查點就沒有了意義啊!
對,是沒有意義了,但稍作修改就會使資料庫檢查點有意義。
假設是飛機訂票程式,訂票後的結果是要寫入資料庫的訂票資料表(orders表中。
那下面使我們修改後的使用資料庫檢查點的流程:
1.先通過控制台--》管理工具--》資料源 (ODBC) 建立連接配接資料庫的資料源假設資料源的名稱為:flight.dsn
2.錄制訂票(插入資料)的腳本,假設姓名為abc的人要訂票。
3.參數化訂票姓名,假設使用Data Table存儲100個人姓名。
4.運作腳本後,100個人的訂票記錄會寫到資料庫中。
5.插入資料庫檢查點(注意插入資料庫檢查點的位置,必須確定檢查點插入在資料寫到資料檔案後的位置。一般位置是程式關閉以後,會有一個資料存盤的操作。)
通過flight.dsn連上資料庫,然後通過查詢語句把資料庫中某個表(假設是orders表)的資料查詢出來存到QTP的資料表(Data Table)中,選擇你要檢查的行,或者某個表格(cell)。
6.删除資料庫訂票資料表(orders表)中的所有資料。
7.回放錄制的程式。回放的過程會從第3步參數化的Data Table中讀取資料,運作100次。
8.檢視回放後的輸出結果。檢查資料庫檢查點(Database checkpoint)是成功或者失敗。
9.傳回到第6步,反複執行
這樣做,資料庫檢查點的優勢,就展現出來了。
因為我們知道,QTP是一種回歸測試工具,特别适合反複的測試。是以我們第一次不使用資料庫檢查點,而是從資料庫中獲得要反複測試的資料。第一次相當于給資料庫檢查點确定預期結果,然後再利用資料庫檢查點進行檢查。