3.3 数据库操作(ADO)
阶段要点
● 何时使用ADO数据验证。
● 构建数据库连接字符串的两种方式。
● 利用ADO进行数据库操作。
● 建立自定义动态数据库验证函数。
3.3.1 何时使用ADO数据验证
数据库验证可能对于有些自动化测试工程师来说基本不太会使用到,因为对于自动化测试来说,主要验证的是前台的数据和功能,也就是最贴切用户的角度来测试。因此,对于后台的数据验证来说,自动化测试在一般情况下可能不需要那么严格来做这方面的验证。但是如果是在金融行业可能会深有体会,因为所有的测试用例只要和金额有关,都需要对其数据库进行验证,原因大家一定也都明白,对于保证金额正确性是公司最为重视的,若是一不小心就可能造成一定的资损,在这方面的测试都特别的严格。正由于其本身的这个特殊性,数据验证便成了自动化测试中的关键所在,在验证前台数据的同时还必须对后台的数据库进行验证才能算是一个完整严格的自动化测试用例。
大家都知道QTP工具本身提供了数据查询和验证功能,但是使用过的读者一定会感觉到,其功能使用起来比较麻烦,灵活性和复用性较低,那么是否有一种方法可以即灵活又快速地进行数据操作和验证呢?这就是ADO数据库操作对象组件,由于QTP基础平台脚本语言是VBScript,因此,可以利用VBScript脚本语言调用ADO组件来进行数据操作,由于是脚本的形式来进行操作,优势显而易见。首先脚本的灵活性较高,可实现的功能也较多,可以随意地把需要实现的数据操作封装为函数,以便下次使用时可以直接调用此函数进行复用,提高测试的效率。介绍了那么多,接下来就看一下利用ADO操作数据库的3大主管对象。
ADOMicrosoft's?ActiveX Data Objects?
简单地说ADO就是一个可以访问并操作数据源的一个COM组件。开发人员可以通过此组件并通过脚本的形式对数据库进行简单的操作。
Connection对象。
此对象为ADO的第一大重要对象,它主要是掌管数据库的连接和关闭功能,有了它就可以通过对应的连接字符串来连接数据库,完成ADO操作的第一步工作。
Command对象。
此对象的作用主要是完成SQL语句的执行,包括查询语句、更新语句、创建语句、删除语句以及存储过程。
RecordSet对象。
此对象主要作用是存放执行后的数据结果集。当一个执行语句被执行后并返回给RecordSet对象之后,此时RecordSet对象就包括了当前所有执行结果集,并且可以通过Eof方法循环进行输出,此方法会在后续的内容中详细进行讲解。
3.3.2 构建数据库连接字符串的两种方式
在上一章中已经介绍了ADO操作数据库的3大主管对象,接下来的工作就是要详细解释这3大对象的用法。在讲这之前,先来看一下这个简单的连接数据库的例子:
Dim adoConn '定义ADO连接对象 Dim ConnectionStr '定义数据库连接字符串 '获取数据库连接字符串 ConnectionStr = "Driver=MySQL ODBC 5.1 Driver;"+ _ +"SERVER=localhost;UID=root;PWD=root;DATABASE=test;PORT=3306" '创建数据库连接对象 Set adoConn = CreateObject("adodb.Connection") '利用数据库连接字符串打开数据库 adoConn.Open ConnectionStr '****************** '此处进行数据库操作 '****************** '关闭数据库 adoConn.Close '释放数据库对象 Set adoConn = Nothing |
分析:
从以上脚本可以看到,首先定义了一些ADO所需要的变量,一个是ADO对象,另一个是数据库连接字符串。其次创建了数据库连接对象,并打开数据库,对其进行操作后,关闭数据库并释放ADO对象。就在这样一个简单的脚本中,大家有没有注意到一个细节,关于ConnectionStr这个变量的值,也就是数据库连接字符串。可以看到这个字符串非常长,非常难记住,而且不同数据库的连接字符串也都完全不相同,若是每次都手工写的话不但容易出错,而且很有可能会有遗漏,况且此连接字符串可是连接数据库的关键密钥,若是出了问题,整个数据库的连接就会出错。因此,问题就转向了本小节的标题,也就是如何来获取ADO数据库连接的字符串。此处提供两种比较便捷的方法供读者选择。