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_;_
报告显示结果