3.4.3 Excel使你可以实现更多
3.4.3.1 利用ADO打造Excel数据库
ADO是一个可以自动化数据操作的COM组建,这点相信大多数自动化测试工程师都不会陌生,在数据验证方面,ADO是一个利器。但ADO在对Excel做数据验证时同样也具有相当不错的效果。接下来就来看一下具体如何使用ADO来对Excel进行数据验证。
首先在D盘新建一个Excel数据文件,并按照图3-38所示的格式输入数据。
图3-38
这里需要注意一下,如果需要使用ADO数据源方式来操作Excel,就必须按照图中的格式,ADO默认Excel的每个Sheet为一个表,而每个Sheet的第一行即为字段名,从第二行开始即为字段值。每个字段值会根据当前的列与字段名一一对应。如果读者把此Excel文件导入到QTP的DataTable中,就会发现一个细节,DataTable读取Excel的方式和ADO数据源读取Excel方式的格式是相同的,导入之后,DataTable自动把第一行数据作为字段名来处理,如图3-39所示。
图3-39
在上一章ADO数据库操作中已经介绍了ADO的使用步骤,接下来就按照前面的步骤来进行。首先需要对ADO数据库操作,肯定是需要进行数据库连接,而需要连接数据库就必须要先获取到数据库连接字符串,获取到连接字符串的方式一共有3种,具体使用哪一种读者可自行挑选,此处就直接给出连接字符串了:"DSN=Excel Files;DBQ=D:\1.xls;"。
DSN后面的值为数据源名称,DBQ代表需要连接的Excel所在的路径。获得了字符串后,接下来就是编写SQL语句,这里给出一个最常用的例子:"select * from [Sheet1$]",前面提到过Excel的每个Sheet即为SQL的表名,但是在Excel中需要注意的是,SQL语句中如果需要描述表名,需要在后面添加一个“$”符号才能识别,读者要注意这一点,不要遗漏了。准备工作都已经完成了,下面就来看一下具体是如何操作的:
'定义SQL连接字符串 sqlConnection = "DSN=Excel Files;DBQ=D:\1.xls;" '定义SQL语句 sqlCommand = "select * from [Sheet1$]" '创建ADO对象 Set oExcel = CreateObject("adodb.connection") '打开数据连接 oExcel.Open sqlConnection '执行SQL语句并获得查询结果集 Set oRst = oExcel.Execute(sqlCommand) '获取username字段名对应的字段值 MsgBox oRst.Fields("username") '关闭数据库 oExcel.Close '释放资源 Set oRst = Nothing Set oExcel = Nothing |
执行结果如图3-40所示。
图3-40
成功获取到username字段名对应的字段值,通过这种方式来管理数据源是一种相当高效的手段,在下一小节会详细讲解,如果使用ADO与数据字典结合来完成一种更加高效的数据驱动方式。