注意:更多信息可以查询ADO或ActiveX Object Object如何使用
ADO:ADO就是一个可以访问并操作数据源的一个COM组件
l Connection对象:掌管数据库的连接和关闭功能,可以通过对应的连接字符串来连接数据库
l Command对象:完成SQL语句的执行,包括查询语句、更新语句、创建语句、删除语句以及存储过程。
l RecordSet对象:存放执行后的数据结果集。可以通过Eof方法循环进行输出
数据库操作步骤
1、 创建数据库连接对象
2、 获取数据库链接字符串
3、 使用数据库连接对象通过数据库连接字符串连接数据库
4、 定义SQL语句
5、 使用数据库连接对象执行SQL语句
6、 关闭数据库链接对象
创建数据库连接对象格式示例:【Set adoConn =CreateObject("adodb.Connection")】
获取数据库链接字符串的方式:
1、 Data Link获取
Data Link方式是基于Microsoft Access Service的数据源配置文件
(1)创建一个udl格式的文件,此处命名为“adoCon.udl”,接着双击此文件,出现右图示
(2)选择图中标注的“使用连接字符串”单选框,点击“编译”按钮
(3)弹出选择数据源窗口,需要选择连接数据库的文件数据源,如果没有建立过任何数据源,可以点击新建按钮
(4)选择相应的数据源后,点击下一步,填写数据源名称后就可以成功创建数据源文件
(5)在弹出选择数据源窗口中,选择需要连接数据库的文件数据
(6)在连接字符串处标注的文本框中可以看到所需要的字符串已经被自动填入
2、 巧用QTP获取
(1) 首先启动QTP,并打开DATATABLE视图,在DataTable中,任意在一个单元格中点击右键逐层进入到From DataBase
(2) 在窗口DataBase Query Wizard中选择Specify SQL statementmamal后,直接点击下一步,在弹出的对话框找到create按钮,并进行点击,
(3) 选择对应的数据源,如果没有就自行创建一个
(4) TP的DataBase Query Wizard就会自动获取到相应的数据库连接字符串
使用数据库连接对象通过数据库连接字符串连接数据库
格式示例:adoConn.Open ConnectionStr
其中:
adoConn是已经创建好的数据库连接对象
ConnectionStr是数据库连接字符串
获取外部数据库连接字符串
‘获取sql语句数组集合
SQLCommands= GetSQLCommands("d:\sql.txt")
‘循环执行sql语句
For i=0 To UBound(SQLCommands)
adoConn.ExecuteSQLCommands(i)
Next
注意:直接使用多行SQL语句执行是行不通的,QTP会报错,上面的是循环执行法,可以解决这个问题
执行SQL语句:adoConn.Execute(sqlStr)(其中:sqlStr为已经定义好的SQL语句)
获取结果集中的某个字段:
Set adoRst = adoConn.Execute(sqlStr)
adoRst.Fields.Item("name").Value
其中:name是需要获取的字段名,adoRst是一个结果集
注意:如果结果结果集中有多条记录,那么可以使用游标如【adoRst.MoveNext】将指针移动下一个记录
关闭数据库:adoConn.Close
游标【movenext】的使用
方法一:FOR循环法
‘获取结果集的个数,并进行遍历 For i=1 To adoRst.Fields.Count ‘打印结果集中name的值 MsgBox adoRst.Fields.Item("name").Value ‘移动游标到下一条记录 adoRst.MoveNext Next |
注意:adoRst.Fields.Count是获取记录集的个数
方法二:EOF循环法
‘如果游标不为最后一条记录就一直循环 While Not adoRst.EOF ‘打印结果集中name的值 MsgBox adoRst.Fields.Item("name").Value ‘移动游标到下一条记录 adoRst.MoveNext Wend |
注意:脚本中的EOF代表最后一条记录的意思,缩写为End Of File
自定义动态数据库验证函数
'************************************************************** 'Description: 数据库验证函数 'Argument: '[Constr] 数据库连接字符串 '[sqlStr] sql语句 '[verifyProperty] 需要验证的字段名 '[expectValue] 验证预期值 '************************************************************** Function VerifySQLData(conStr,sqlStr,verifyProperty,expectValue) '创建数据库连接对象 Set adoConn = CreateObject("adodb.Connection") '利用数据库连接字符串打开数据库 adoConn.Open conStr '执行sql语句并返回对应的结果集 Set adoRst = adoConn.Execute(sqlStr) '获得实际值 actualValue = adoRst.Fields.Item(verifyProperty).Value '对比预期值与实际值 If cstr(expectValue) = cstr(actualValue) Then Reporter.ReportEvent micPass,"SQL_DATA_CHECK", _ "[ expectValue = actualValue = " + cstr(actualValue)+" ]" Else Reporter.ReportEvent micFail,"SQL_DATA_CHECK", _ "[ expectValue = " + cstr(expectValue) + _ " ;actualValue = " + cstr(actualValue)+" ]" End If '关闭数据库 adoConn.Close
'释放数据库对象 Set adoConn = Nothing End Function |
设置数据库链接字符串环境变量
在调用函数之前,必须要把一些关键参数进行环境变量的配置,以便以后有任何变更可直接在配置文件里进行修改,而不是去更改脚本中的数值
1、构建一个路径,建立一个XML文件,格式支持环境变量形式:"D:\QTPConfig\SQLConfiguration.xml",文件内容如下:
<Environment> <Variable> <Name>ConnStr</Name> <Value> Driver=…;SERVER=…;UID=..;PWD=…;DATABASE=…;PORT=… </Value> </Variable>
<Variable> <Name>sqlStr</Name> <Value>select * from user where name = '51testing' </Value> </Variable> </Environment> |
2、 动态调用环境变量的XML文件:
‘动态载入环境变量 Environment.LoadFromFile "D:\QTP Config\SQLConfiguration.xml" |
3、 调用函数
‘***********调用验证数据库函数********** ‘验证字段:Age ‘验证预期:50 ‘*************************************** VerifySQLData Environment.Value("ConnStr"), _ Environment.Value("sqlStr"), "age" , 50 |