51Testing丛书连载:(四十四)精通QTP——自动化测试技术领航

发表于:2012-2-13 10:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

3.3.4  数据库修改

  在自动化测试过程中,数据库的修改操作虽然没有查询用的那么普遍,但是在某些特定的情况下,能够使用脚本对数据库进行修改对于自动化测试来说还是非常有帮助的。举个最简单的例子:自动化测试数据初始化准备,这是重要的,因为当运行完用例脚本之后,数据库的一些数据和状态无法满足下一次脚本的运行。这样可能导致下一次再运行同一个自动化测试脚本时会出现脚本执行错误。如果要解决这样的问题,一种情况就是使用自动化脚本在用例里就直接回归原点(自动化测试用例设计那个章节中详细介绍过),例如,新建一条数据之后,如果有删除业务,就可以把删除和新增这两条用例合并作为一条自动化用例。这样就达到了回归原点的目的,在下一次执行脚本的时候就能够很好地避免脚本错误发生。如果是第一种情况也无法解决的情况下,那么就可以考虑使用ADO对象来对数据库做初始化回归操作。虽然很多情况下这类工作是由开发人员或者开发测试人员来完成的,但是作为一个合格的自动化测试工程师来说,应该也需要能够胜任这样的任务。接下来就简单介绍一下如何使用ADO对象来进行数据库的修改。

  举例,修改name为yujie的那条记录的年龄age为100:

Dim adoConn '定义ADO连接对象

Dim ConnectionStr '定义数据库连接字符串

'获取数据库连接字符串

ConnectionStr = "Driver=MySQL ODBC 5.1 Driver;"+ _

+"SERVER=localhost;UID=root;PWD=root;DATABASE=test;PORT=3306"

'获取数据库查询语句

sqlStr = "update user set age = 100 where name='yujie' "

'创建数据库连接对象

Set adoConn = CreateObject("adodb.Connection")

'利用数据库连接字符串打开数据库

adoConn.Open ConnectionStr

'执行sql语句并返回对应的结果集

adoConn.Execute sqlStr

'释放数据库对象

Set adoConn = Nothing

  分析:

  读者一定已经发现了,脚本其实没有多大的变化,这里只是更改了SQL语句,从原来的“select * from user where name = 'zzxxbb112' ”变为现在的“update user set age = 100 where name='yujie' ”。值得注意的是,这里由于是纯执行修改语句,而不是查询语句,因此不用返回任何结果集,也不用关闭结果集,因为结果集对象根本就没有打开。

  当然以上脚本只是最简单的修改语句,如果需要进行数据初始化准备,肯定不会只是一条SQL语句就可以搞定的,一般可能都会把所有的SQL语句全部存放在一个文件里,那么接下来看一下如何实现多行语句执行。首先当我们需要实现多行语句执行时,我相信肯定有很多读者会想,多行不是一样,直接使用分号进行隔开,再赋值给SQL语句字符串,并交给execute方法执行下就可以了,就类似于sqlStr = "update user set age = 88 where name='zzxxbb112' ; update user set age = 888 where name='yujie'" 这样,但其实运行此脚本的时候,你会发现,运行环境直接抛出一个错误,如图3-27所示。

图3-27

  如图3-27所示,错误信息中提示说,脚本中存在一个错误,SQL的执行语句存在语法错误。ADO方式在mysql数据章中使用这种方式进行多行SQL语句执行是行不通的。既然这样的方式行不通,可以用另一种方式来解决。这就是本章讲的重点“循环执行法”。

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号