QTP數據庫操作(ADO)


1. ADO->Microsoft’s ActiveX Data Objects

ADO是一個可以訪問並操作數據源的一個COM組建。包括三個主要對象:

Connection對象:

主要掌握數據庫的連接和關閉功能,有了它可以通過對應字符串來連接數據庫。

Command對象:

主要完成SQL語句執行,包括增刪改查以及存儲過程。

RecordSet對象:

主要存放執行后的數據結果集。當一個執行語句被執行返回給RecordSet之后,此時RecordSet對象就包括了當前所有執行結果集,並且可以通過EOF方法循環遍歷。

 

2. 構建數據庫連接字符串的方式

以下是一個簡單的用QTP連接MySql的例子:

 

代碼不難懂,只是要熟記str里的值不是很容易,反正我是記不住。下面就重點介紹下怎樣自動生成這些連接字符串。

方法一:利用udl文件獲取

新建一個文本文件,改名為test.udl,然后雙擊打開

輸入用戶名跟密碼后(mysql默認都是root),點擊編譯按鈕,然后點擊新建按鈕,出現的數據源對話框,選中mySql,然后一步步點擊下一步,保存文件之后,編譯一欄里就會出現我們想要的連接字符串了。

 

這是我得到的結果:

方法二:用QTP的dataTable來獲取

選擇dataTable里的任意cell,然后右擊,選到”from database”后選擇第二項,點擊下一步:

新建一個mysql的數據源:

保存之后就可以獲取到里面的字符串了:

 

其實兩種方法都差不多,都是創建一個MySql的數據源。當然剛開始的時候我遇到了問題,在創建數據源的時候我始終找不到MySql的選項,這是因為我沒有安裝

mysql-connector-odbc,這個東西官網上有的下,注意區分下是64位還是32位就行了。

注:我這篇文章寫在32位win7系統的基礎上。

奇怪的是,我在我的64位win7的筆記本上卻無法成功獲取數據源,有誰知道什么原因的可以告訴我,具體的描述可以參考我在論壇上發的問題:http://www.testdao.com/thread-14946-1-1.html。我的郵箱是dieinthemoon@163.com

 

3. 數據庫查詢

首先在mySql的test數據庫里創建一張叫sy的表,里面我加了兩條記錄:

 

然后用QTP去查詢名字為”sunyu”的記錄。

 

代碼里我用了兩種方法,第二種是比較常用的,各位可以根據自己的需要挑選。

 

4. 數據庫修改

一般測試時不需要更改數據庫,這里修改數據庫的主要作用還是起到初始化的作用,在測試一輪完成后進行一些初始化可以保證第二次或是多次執行不會出錯。

當然這種初始化的工作一般是要執行多行語句的,一般會存放在外部一個文件中。

舉個簡單的例子:

 

然后我們可以寫一個函數去取得里面的查詢語句,然后批量的去執行。有了這樣一個函數,我們也可以輕松地實現數據與腳本的分離,這樣有利於我們對腳本的維護。

注:其中的syFSO對象是我在自己電腦上加的一個自定義保留對象。詳情可以參考我之前的文章:http://www.cnblogs.com/ryansunyu/archive/2012/08/14/2638112.html

查詢下結果看看是否執行了我們的腳本:

兩條記錄的年齡都被更新過了,說明我們的函數執行成功。

 

5. 自定義動態數據庫驗證函數

數據的驗證對於自動化測試的過程來說是一個非常重要的階段,這其中當然也包含了對數據庫里的數據進行的驗證。接下來我們結合之前介紹過的環境變量來將數據庫驗證做一個簡單的封裝。這里我用txt格式的外部環境變量來作為例子,還有xml以及ini格式的有興趣的朋友可以自己實現封裝。

 

下面是測試代碼:

 

結果生成的記錄如下:

 

這樣一個簡單的數據庫驗證就做完了。當然了如果用xml格式的文件去存儲外部環境變量應該會更清楚更易於操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM