
ADO——ActiveX Data Objects使用VBScript腳本語言調用ADO組件來進行數據操作。優勢腳本靈活性高可實現的功能也較多可以隨意地把要實現的數據操作封裝成函數。前置UFT連接MySQL ODBC_nee~的博客-CSDN博客Connection對象掌管數據庫的連接和關閉功能。Dim adoConn 定義ADO連接對象 Dim ConnectionStr 定義數據庫連接字符串 獲取數據庫連接字符串 ConnectionStr DSNMySQL ODBC sys;SERVER127.0.0.1;UIDroot;PWDroot;DATABASEsakila;PORT3306 創建數據庫連接對象 Set adoConn CreateObject(adodb.Connection) 利用數據庫連接字符串打開數據庫 adoConn.Open ConnectionStr 此處進行數據庫操作 關閉數據庫 adoConn.Close 釋放數據庫對象 Set adoConn NothingCommand對象完成SQL語句的執行。RecordSet對象存放執行后的數據結果集。查詢數據庫Execute方法此方法可以對數據庫直接進行SQL語句執行操作并且能夠對其執行結果進行返回返回結果為RecordSet。最后通過RecordSet對象的Field屬性獲取到字段值。Dim adoConn 定義ADO連接對象 Dim ConnectionStr 定義數據庫連接字符串 獲取數據庫連接字符串 ConnectionStr DSNMySQL ODBC;SERVER127.0.0.1;UIDroot;PWDroot;DATABASEgloria;PORT3306 獲取數據庫查詢語句 sqlStr Select * from user where LastName Wang 創建數據庫連接對象 Set adoConn CreateObject(adodb.Connection) 利用數據庫連接字符串打開數據庫 adoConn.Open ConnectionStr 執行sql語句并返回對應的結果集 Set adoRst adoConn.Execute(sqlStr) 獲取結果集中年齡字段的值 Msgbox adoRst.Fields.Item(age).Value 關閉數據庫 adoConn.Close 釋放數據庫對象 Set adoConn Nothing如果結果有多行記錄可以使用游標For i 1 To adoRst.Fields.CountMsgbox adoRst.Fields.Item(age).ValueadoRst.MoveNextNextEOF: End of LineWhile Not adoRst.EOFMsgbox adoRst.Fields.Item(age).ValueadoRst.MoveNextWend數據庫修改F:\study\UFT\sql.txt文件循環執行把所有的SQL語句分割成數組并把數組全部取出來循環執行SQLDim adoConn 定義ADO連接對象 Dim ConnectionStr 定義數據庫連接字符串 獲取數據庫連接字符串 ConnectionStr DSNMySQL ODBC;SERVER127.0.0.1;UIDroot;PWDroot;DATABASEgloria;PORT3306 獲取數據庫查詢語句集合 SQLCommands GetSQLCommands(F:\study\UFT\sql.txt) 創建數據庫連接對象 Set adoConn CreateObject(adodb.Connection) 利用數據庫連接字符串打開數據庫 adoConn.Open ConnectionStr 循環執行sql語句 For i 0 To UBound(SQLCommands) adoConn.Execute SQLCommands(i) Next 關閉數據庫 adoConn.Close 釋放數據庫對象 Set adoConn Nothing Function GetSQLCommands(sqlPath) 創建fso模型對象 Set fso CreateObject(Scripting.FileSystemObject) Set f fso.OpenTextFile(sqlPath) 獲取txt中的所有文本 allSQLCommand f.ReadAll 對所有文本通過回車進行分割把sql語句分割成數組 Chr()從 0 到 31 之間的數字表示不可打印的 ASCII 代碼例如 Chr(10) 將返回一個換行符。 sqlcommands Split(allSQLCommand,Chr(10)) 返回所有sql語句數組 GetSQLCommands sqlcommands 釋放txt Set f Nothing 釋放fso Set fso Nothing End Function結果參數化使其更通用******************************************************************************************************************** Description:數據庫驗證函數 Argument: ConnectionStr 數據庫連接字符串 sqlStr sql語句 verifyProperty 需要驗證的字段名 expectValue 驗證期待值 ******************************************************************************************************************** Function VerifySQLData(ConnectionStr,sqlStr,verifyProperty,expectValue) 創建數據庫連接對象 Set adoConn CreateObject(adodb.Connection) 利用數據庫連接字符串打開數據庫 adoConn.Open ConnectionStr 執行sql語句并返回對應的結果集 Set adoRst adoConn.Execute(sqlStr) 獲取實際值 actualValue adoRst.Fields.Item(verifyProperty).Value 對比預期值和實際值 If cstr(expectValue) cstr(actualValue) Then Reporter.ReportEvent micPass,SQL_DATA_CHECK,[actualValue expectValue cstr(actualValue) ] Else Reporter.ReportEvent micFail,SQL_DATA_CHECK,[expectValue cstr(expectValue) actualValue cstr(actualValue) ] End If 關閉數據庫 adoConn.Close 釋放數據庫對象 Set adoConn Nothing End Function VerifySQLData DSNMySQL ODBC;SERVER127.0.0.1;UIDroot;PWDroot;DATABASEgloria;PORT3306,Select * from user where LastName Wang,age,22結果關鍵參數進行環境變量的配置把一些關鍵參數進行環境變量的配置以便以后有任何變更可直接在配置文件里修改而不是去更改腳本中的數值。新建DB Configuration.xml文件在 UFT-File-Settings-Environment-用戶定義 導入只需更改調用函數的那行代碼就行獲取數據庫連接字符串 ConnectionStr DSNMySQL ODBC;SERVER127.0.0.1;UIDroot;PWDroot;DATABASEgloria;PORT3306 ******************************************************************************************************************** Description:數據庫驗證函數 Argument: ConnectionStr 數據庫連接字符串 sqlStr sql語句 verifyProperty 需要驗證的字段名 expectValue 驗證期待值 ******************************************************************************************************************** Function VerifySQLData(ConnectionStr,sqlStr,verifyProperty,expectValue) 創建數據庫連接對象 Set adoConn CreateObject(adodb.Connection) 利用數據庫連接字符串打開數據庫 adoConn.Open ConnectionStr 執行sql語句并返回對應的結果集 Set adoRst adoConn.Execute(sqlStr) 獲取實際值 actualValue adoRst.Fields.Item(verifyProperty).Value 對比預期值和實際值 If cstr(expectValue) cstr(actualValue) Then Reporter.ReportEvent micPass,SQL_DATA_CHECK,[actualValue expectValue cstr(actualValue) ] Else Reporter.ReportEvent micFail,SQL_DATA_CHECK,[expectValue cstr(expectValue) actualValue cstr(actualValue) ] End If 關閉數據庫 adoConn.Close 釋放數據庫對象 Set adoConn Nothing End Function VerifySQLData Environment.Value(ConnectionStr),Select * from user where LastName Wang,age,22結果利用ADO打造Excel數據庫在數據驗證方面ADO是一個利器。但ADO在對Excel做數據驗證時同樣也具有相當不錯的效果。ADO默認Excel的每個sheet為一個表而每個Sheet的第一行即為字段名從第二行開始即為字段值。每個字段值會根據當前的列與字段名一一對應。UFT中DataTable讀取Excel的方式和ADO數據源讀取Excel的方式是相同的。導入之后DataTable自動把第一行數據作為字段名來處理。