QTP-MySql+對象庫實例
首先QTP要連接MySql 先確保機器上有MySql的數據源 沒有的話去網上下一個裝上把。
我這里用的是Mysql 5.1的數據源 ,裝完后,在桌面新建一個TXT文檔,然后修改后綴改為udl,就變成了數據鏈接這樣子
,打開它,你會發現《提供程序》內就沒有Mysql這個名字的程序 ,但是在windows的管理工具數據源內能找Mysql 5.1的名字也可以添加,后來找了好久才知道原來Mysql在數據鏈接內是叫 Miceosoft OLE DB Provider for ODBC Drivers 這個名字。

現在找到了名字 接下來就是設置《連接》的屬性,數據源名稱可以隨意填寫,下面的用戶名和密碼就需要MySql的管理人員給權限。當都設置好了,點擊測試連接,顯示連接成功的話就是能正常啟動了。
上面配置好了以后,我們用記事本的方式打開*.udl,里面有這些內容 我們只需要復制紅線那部分,這部分為鏈接地址
好了,接下來就進入編寫階段了
實現功能
1:讀取數據庫 USER_ 表內的 SCREEN 和 SEREENNAME 這兩列下含有"test_"字符串的數據,
2:循環寫入一個登陸界面,實現正確登陸
3:驗證點,登陸完畢后主界面會有一個對象內顯示 Welcome test01! ,用描述性編程找到該對象獲取其中我所需要的屬性值進行驗證
Dim conn Dim name Dim sql Dim suu Dim inn '檢查字段 SystemUtil.Run "http://192.168.0.233/web/guest/home" '這一段就是復制當時記事本里的那一段語句 這段語句有個問題就是 自己要手動往里添加用戶密碼噢 所以我再里面加了一個Password=1111 Mysql="Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Password=1111;Data Source=sqltest" 'select screenName,screenName from user_ where screenName like 'test__'; '這段話表示說 搜索數據庫內 USER_ 表內 screenName,screenName 這2個列里面所有包含 test 的數據 sql="select screenName,greeting from user_ where screenName like 'test__';" Set conn=CreateObject("ADODB.CONNECTION") conn.Open Mysql If conn.State<>0 Then Reporter.ReportEvent micPass,"連接成功","連接成功" else Reporter.ReportEvent mimicFail,"連接失敗","連接失敗" End If Set res=CreateObject("ADODB.Recordset") res.Open sql,conn,1,1 '1,1表示只讀;1,3表示插入數據;2,3表示修改數據 res.MoveFirst'使游標指向第一個記錄 sum="" 'res.EOF表示游標到達最后一行 While Not res.EOF '讀取整個表內的所有數據 ' For i=0 to res.Fields.Count-1'str.Fields.Count表示字段個數 ' sum=sum& res(i) & " " '把整個記錄顯示出來 ' Next |
'獲取數據庫內 screenName 列的每一行數據 sum=res("screenName") '截取字符串內 從左到右4位字符 suu=Left(sum,4) If suu = "test" Then '檢查字段變量 inn=res("greeting") '錄制登陸過程 把賬號密碼做參數化 Browser("測試比對樣品 - 登錄").Page("測試比對樣品 - 登錄").WebEdit("_58_login").Set sum @@ hightlight id_;_Browser("測試比對樣品 - 登錄").Page("測試比對樣品 - 登錄").WebEdit(" 58 login")_;_script infofile_;_ZIP::ssf1.xml_;_ Browser("測試比對樣品 - 登錄").Page("測試比對樣品 - 登錄").WebEdit("_58_password").set"1111" @@ hightlight id_;_Browser("測試比對樣品 - 登錄").Page("測試比對樣品 - 登錄").WebEdit(" 58 password")_;_script infofile_;_ZIP::ssf2.xml_;_ Browser("測試比對樣品 - 登錄").Page("測試比對樣品 - 登錄").WebButton("登錄").Click '這里是使用SPY抓取獲取到對象屬性值,對該對象2個屬性進行描述性編程 對象庫內不要放入被描述的對象 ,然后使用 .GetROProperty方法獲取所需要對象屬性值 '這里抓取了2個對象進行描述是應為2個該對象使用1個對象進行描述時,界面上還有其他對象的屬性是一樣的,所以描述對象時 盡量抓取對象獨有的屬性,當一個屬性描述找不到時,就再增加一個屬性描述 nn=Browser("測試比對樣品 - 稿件管理").Page("測試比對樣品 - 稿件管理").WebElement("innertext:=Welcome "&sum&"!","html tag:=SPAN").GetROProperty("innerhtml") '設置檢查點 If nn=inn Then print "nn="&nn&" inn="&inn Reporter.ReportEvent micPass,"檢查點","PASS" else Reporter.ReportEvent micFail,"檢查點","Ng" End If Browser("測試比對樣品 - 稿件管理").Page("測試比對樣品 - 稿件管理").Link("text:=退出").Click End If 'Print sum & vbCRLF'打印所有查詢的記錄 VBCRLF 換行語句 res.MoveNext'使游標進入下一個 Wend @@ hightlight id_;_Browser("測試比對樣品 - 稿件管理").Page("測試比對樣品 - 稿件管理").Link("退出")_;_script infofile_;_ZIP::ssf6.xml_;_ |
報告顯示結果