51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 6075|回复: 8

[原创] Qtp Database checkpoint 案例

[复制链接]

该用户从未签到

发表于 2008-1-24 11:16:43 | 显示全部楼层 |阅读模式
Qtp很强大,强大在它的定制性上,许多控件的属性,都可以灵活地进行运行时动态定义取值。    对鄙人来说,比较感兴趣它的check point,特别是里面的数据库测试点部分。
    案例:如果我们需要测试某一条选定的记录,那check point中的constant部分就可以实现了,这一点比较简单,不过实际测试过程中我们会遇到许多复杂的情况,比如Qtp附带的flight程序中页面显示的单条购票的总价Total值是否计算正确?
    分析测试需求,我们发现首先需要了解flight的数据库结构,我们能够在flights表中找到航班单价,能够在orders表中找到定票数量和航班的等级属性class(定义一等,商务,经济舱),数据库中没有保存total值,这时候我们就不能直接光用Database check point对数据库进行数据比较了,经过考虑,有2种思路可以实现测试需求。
    1.正向测试:使用Qtp录制一段插入记录的动作,然后修改脚本,参数化航班信息(random使数据更真实),在一个循环中不断插入记录,同时取下显示界面上的total值,再设置Database check point进行total值和从表中取出值计算后结果的比较。
    2.反向测试:利用原有已经存在表中的数据进行测试,录制利用记录号打开记录的动作,修改脚本,利用一个循环遍历所有存在记录,同时取下显示界面上的total值,再设置Database check point进行total值和从表中取出值计算后结果的比较。
    实行时的难点在于:
    1.Database check point的预期值和实际值都是动态变化的,需要参数化
    2.界面上的total取值中含有价格符号以及小数精度。eg:(¥3.00)
    3.反向中的循环次数会有意外(如果记录中存在删除的记录,则就会有记录号不连续的情况)
    最终考虑选取正向测试方案,参数化插入记录属性。
    在循环中取到total的text,使用Environment("total")= trim(CSng(mid(var,2)))来处理该值
    var是getroproperty的输出,mid去除¥符号,CSng转换成单精度数,trim去除多余的0(3.80会成3.8;2.00会成2)
    再设置一个环境变量(保存动态 select 命令)

    Environment("select")="select a.Ticket_Price*b.Tickets_Ordered*choose(b.class, 3, 2, 1) from Flights a, Orders b where a.Flight_Number=b.Flight_Number and b.Order_Number="&tordnum

    tordnum是从界面上取出的插入的order number,choose函数替换输出class,整句sql语句计算得出该条记录正确的总价。
    在循环插入的循环体最后插入Database check point,预期值参数化成Environment,选择total,然后再去资源选项resources中修改这个check point的source部分,将其也参数化成Environment,选择select,这样整个check point就会动态地进行循环判断。
    最终得到我们的测试报告,从result中查看结果!
回复

使用道具 举报

该用户从未签到

发表于 2008-9-27 16:32:02 | 显示全部楼层
我是你的学妹!
现在我有问题想请教一下。
如何使数据库检查点的SQL语句是动态变化的

我的email shengxiang1984@sina.com
QQ:247334622 注明QTP就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-9-27 16:44:54 | 显示全部楼层
不支持检查点的存在.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-2 20:59:15 | 显示全部楼层

QTP的资料

我想问学习QTP     ,请求相关的资料

我的email lixiaodeng321@126.com
QQ:297205785
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-17 12:57:46 | 显示全部楼层

回复 2# 的帖子

在关键字视图中右键单击数据库检查点,然后将其中的source属性参数化为你动态变化的SQL语句
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-17 16:51:08 | 显示全部楼层
原帖由 shengxiang1984 于 2008-9-27 16:32 发表
我是你的学妹!
现在我有问题想请教一下。
如何使数据库检查点的SQL语句是动态变化的

我的email shengxiang1984@sina.com
QQ:247334622 注明QTP就可以了

自己写DataBase的连接语句就可以参数化SQL了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-10-17 17:32:11 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-5-16 21:32:11 | 显示全部楼层
study  again
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-5-24 17:01:56 | 显示全部楼层
关注中。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-19 04:13 , Processed in 0.083774 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表