测试空间旗下大头针出品
QTP的检查点是基于录制回放机制的,只有你把要测试的软件录制到对象仓库里才能使用检查点。 QTP提供了标准检查点、文本检查点、图像检查点、数据库检查点。因为在开发的过程中,软件经常改变,所以对象仓库的管理非常不方便。检查点又是基于对象仓库的,所以使用起来也是极其不方便的。在QTP提供的检查点里面,本人认为最实用的就是数据库检查点(Database checkpoint)了,使用QTP数据库检查点技术含量要求最高。需要你懂数据库语句,懂得ODBC数据源的知识。
书籍上介绍的数据库检查点的使用总是有点差强人意。
一般使用QTP数据库的流程:
假设是飞机订票程序,订票后的结果是要写入数据库的订票数据表(orders表)。
1.先通过控制面板--》管理工具--》数据源 (ODBC) 建立连接数据库的数据源假设数据源的名称为:flight.dsn
2.录制订票(插入数据)的脚本,假设姓名为abc的人要订票。
3.插入数据库检查点
通过flight.dsn连上数据库,然后通过查询语句把数据库中某个表(假设是orders表)的数据查询出来存到QTP的数据表(Data Table)中,选择你要检查的行,或者某个表格(cell)。
4.回放录制的程序。
5.查看回放后的输出结果。检查数据库检查点(Database checkpoint)是成功或者失败。
上面的流程为一般的使用数据库检查点(Database checkpoint)的过程,但这样使用有一个非常明显的错误是:当你回放录制后的脚本时,那么姓名为order_me的人要再一次订票,那么相当于order_me定了两次票。这个在飞机订票时允许的,假设你需要在一个网站注册邮箱,邮箱名是不允许重复的。那如果按照上面的流程,那么脚本再次运行的时候就会出错。如果按照上面所说的流程,那么数据库检查点就没有了意义啊!
对,是没有意义了,但稍作修改就会使数据库检查点有意义。
假设是飞机订票程序,订票后的结果是要写入数据库的订票数据表(orders表中。
那下面使我们修改后的使用数据库检查点的流程:
1.先通过控制面板--》管理工具--》数据源 (ODBC) 建立连接数据库的数据源假设数据源的名称为:flight.dsn
2.录制订票(插入数据)的脚本,假设姓名为abc的人要订票。
3.参数化订票姓名,假设使用Data Table存储100个人姓名。
4.运行脚本后,100个人的订票记录会写到数据库中。
5.插入数据库检查点(注意插入数据库检查点的位置,必须确保检查点插入在数据写到数据文件后的位置。一般位置是程序关闭以后,会有一个数据存盘的操作。)
通过flight.dsn连上数据库,然后通过查询语句把数据库中某个表(假设是orders表)的数据查询出来存到QTP的数据表(Data Table)中,选择你要检查的行,或者某个表格(cell)。
6.删除数据库订票数据表(orders表)中的所有数据。
7.回放录制的程序。回放的过程会从第3步参数化的Data Table中读取数据,运行100次。
8.查看回放后的输出结果。检查数据库检查点(Database checkpoint)是成功或者失败。
9.返回到第6步,反复执行
这样做,数据库检查点的优势,就体现出来了。
因为我们知道,QTP是一种回归测试工具,特别适合反复的测试。所以我们第一次不使用数据库检查点,而是从数据库中获得要反复测试的数据。第一次相当于给数据库检查点确定预期结果,然后再利用数据库检查点进行检查。