zoukankan      html  css  js  c++  java
  • QTP数据库操作(ADO)

    1. ADO->Microsoft’s ActiveX Data Objects

    ADO是一个可以访问并操作数据源的一个COM组建。包括三个主要对象:

    Connection对象:

    主要掌握数据库的连接和关闭功能,有了它可以通过对应字符串来连接数据库。

    Command对象:

    主要完成SQL语句执行,包括增删改查以及存储过程。

    RecordSet对象:

    主要存放执行后的数据结果集。当一个执行语句被执行返回给RecordSet之后,此时RecordSet对象就包括了当前所有执行结果集,并且可以通过EOF方法循环遍历。

    2. 构建数据库连接字符串的方式

    以下是一个简单的用QTP连接MySql的例子:

    代码不难懂,只是要熟记str里的值不是很容易,反正我是记不住。下面就重点介绍下怎样自动生成这些连接字符串。

    方法一:利用udl文件获取

    新建一个文本文件,改名为test.udl,然后双击打开

    输入用户名跟密码后(mysql默认都是root),点击编译按钮,然后点击新建按钮,出现的数据源对话框,选中mySql,然后一步步点击下一步,保存文件之后,编译一栏里就会出现我们想要的连接字符串了。

    这是我得到的结果:

    方法二:用QTP的dataTable来获取

    选择dataTable里的任意cell,然后右击,选到”from database”后选择第二项,点击下一步:

    新建一个mysql的数据源:

    保存之后就可以获取到里面的字符串了:

    其实两种方法都差不多,都是创建一个MySql的数据源。当然刚开始的时候我遇到了问题,在创建数据源的时候我始终找不到MySql的选项,这是因为我没有安装

    mysql-connector-odbc,这个东西官网上有的下,注意区分下是64位还是32位就行了。

    注:我这篇文章写在32位win7系统的基础上。

    奇怪的是,我在我的64位win7的笔记本上却无法成功获取数据源,有谁知道什么原因的可以告诉我,具体的描述可以参考我在论坛上发的问题:http://www.testdao.com/thread-14946-1-1.html。我的邮箱是dieinthemoon@163.com

    3. 数据库查询

    首先在mySql的test数据库里创建一张叫sy的表,里面我加了两条记录:

    然后用QTP去查询名字为”sunyu”的记录。

    代码里我用了两种方法,第二种是比较常用的,各位可以根据自己的需要挑选。

    4. 数据库修改

    一般测试时不需要更改数据库,这里修改数据库的主要作用还是起到初始化的作用,在测试一轮完成后进行一些初始化可以保证第二次或是多次执行不会出错。

    当然这种初始化的工作一般是要执行多行语句的,一般会存放在外部一个文件中。

    举个简单的例子:

    然后我们可以写一个函数去取得里面的查询语句,然后批量的去执行。有了这样一个函数,我们也可以轻松地实现数据与脚本的分离,这样有利于我们对脚本的维护。

    注:其中的syFSO对象是我在自己电脑上加的一个自定义保留对象。详情可以参考我之前的文章:http://www.cnblogs.com/ryansunyu/archive/2012/08/14/2638112.html

    查询下结果看看是否执行了我们的脚本:

    两条记录的年龄都被更新过了,说明我们的函数执行成功。

    5. 自定义动态数据库验证函数

    数据的验证对于自动化测试的过程来说是一个非常重要的阶段,这其中当然也包含了对数据库里的数据进行的验证。接下来我们结合之前介绍过的环境变量来将数据库验证做一个简单的封装。这里我用txt格式的外部环境变量来作为例子,还有xml以及ini格式的有兴趣的朋友可以自己实现封装。

    下面是测试代码:

    结果生成的记录如下:

    这样一个简单的数据库验证就做完了。当然了如果用xml格式的文件去存储外部环境变量应该会更清楚更易于操作。

  • 相关阅读:
    idea 控制到不能输出中文
    后台学习
    carthage和cocoapods
    如何优雅地调试
    从一次内存峰值说起
    多线程单线程,同步异步,并发并行,串行队列并行队列,看这里就对了
    iOS网络层设计感想
    iOS团队风格的统一
    AFNetworking二次封装的那些事
    UITextFiled,UITextView长度限制
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/2673861.html
Copyright © 2011-2022 走看看