51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 9034|回复: 17
打印 上一主题 下一主题

WR的参数化数据库检查点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-27 23:16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在Winrunner的三大检查点中有一个数据库检查点,可以很方便的检查、对比回放过程中被测软件对数据库的记录操作,同时它也提供一个参数化的功能,允许用户根据需求替换你要查询的条件。这里我来简单介绍一下如何设置参数化的数据库检查点
仍然是以WR自带的Flight为例,打开软件录制一个order的插入过程,脚本如下:
# Flight Reservation
set_window ("Flight Reservation", 15);
obj_type ("MSMaskWndClass","111111");
list_select_item ("Fly From:", "London");  # Item Number 2;
list_select_item ("Fly To:", "Paris");  # Item Number 3;
obj_mouse_click ("FLIGHT", 26, 57, LEFT);
# Flights Table
set_window ("Flights Table", 1);
button_press ("OK");
# Flight Reservation
set_window ("Flight Reservation", 6);
edit_set ("Name:","yangmh" );
button_press ("Insert Order");
list_check_info("Fly From:","value","London");
wait(10);
在脚本最后插入custom的数据库检查点,WR->Insert->Database Checkpoint->Custom Check 选择Specify SQL statement(这里已ODBC为例)  

next,在选择连接中点击Create,选择系统自带的Flight32(这是安装WR时自动注册上去的)

在下面的SQL语句中写入你要参数化的语句,注意,把你想要参数化的地方用问号“?”代替,并用括号括起来:
SELECT Flights.Day_Of_Week
FROM Flights, Orders  
WHERE (Orders.Customer_Name=?) AND (Flights.Departure=?) AND (Flights.Flight_Number=Orders.Flight_Number)
这里我把订票人和起飞地点参数化了,从Flight和Orders两个表中取数据并关联,最后查询符合记录中Flights.Day_Of_Week的值
如果你不确定语句是否正确,可以打开Microsoft Query 记载你的数据库并执行一下,如果正确的话它会提示你输入查询参数值并最后给出查询结果。
点击finish后WR会提示你这是一个参数化的数据库检查点,它的预期结果WR没有得到,你必须提前使用Update模式运行一下。之后可以看到数据库检查点的窗体弹出,点击ok后会提示你是否要更改选择,这里点击no

之后参数化的检查点语句会自动出现在脚本最后,但我们还需要给参数赋值,赋值语句是一个数组,你有多少个参数就写多少数组元素,且必须写在检查点语句之前:
dbvf2_params[1]="yangmh";
dbvf2_params[2]="London";
db_check("list2.cdl", "dbvf2", NO_LIMIT, dbvf2_params);
这里我想查询Customer_Name=yangmh,Departure=London的记录。
把WR调为Update模式运行一下,使WR得到Expect Result,之后再使用Verify模式运行,查检Test Result

WR已经成功取得预期结果并与verify模式下的实际结果进行对比。
同样我们可以把参数数组dbvf2_params[]放到脚本的前面,将操作中的部分函数用这个数组代替,如在Flight中输入订票人的时候可以这样写:
# Flight Reservation
set_window ("Flight Reservation", 6);
edit_set ("Name:",dbvf2_params[1]);
button_press ("Insert Order");
这样当我们想要查询其他订票人和其他起飞地点的时候只需在脚本前更改一下赋值并Update一下即可。
ps:在插入数据库检查点的语句前最好能等待一段时间,或者插入一个gui检查点,让操作完全记录到数据库中,这样Update时才能得到正确的预期结果
附件:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    2#
    发表于 2007-4-28 13:30:53 | 只看该作者
    好文!sdlkfj3 是否可以考虑在以下部分使用数据驱动:dbvf2_params[1]="yangmh";
    dbvf2_params[2]="London";
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2007-4-28 15:05:17 | 只看该作者
    考虑过这样做,但是数据库检查点一次只能保存一个预期结果,所以循环验证的时候只能有一个结果是匹配的,所以在更改赋值后必须Update一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-5-25 10:01:00 | 只看该作者
    谢谢楼主的共享!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-7-3 16:56:17 | 只看该作者
    学习以下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-7-9 10:52:32 | 只看该作者
    好文 以后备用学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-7-9 22:29:05 | 只看该作者
    sdlkfj3 大家都是高手啊...................
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-7-20 09:05:47 | 只看该作者
    好东西,谢谢版主分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-7-20 09:17:46 | 只看该作者
    好东西,顶一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-7-23 17:42:03 | 只看该作者
    好东西呀!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-7-30 18:03:16 | 只看该作者
    好东西啊,学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-7-31 08:37:02 | 只看该作者
    不错的帖子,值得学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-11-13 15:40:52 | 只看该作者
    好帖,被我发现了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-4-8 16:36:59 | 只看该作者
    不错的贴
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-4-17 17:24:59 | 只看该作者
    我照LZ的步骤全做了一遍
    但是老是在update的时候出问题 说是GUI Capture Failure
    是不是数据库出问题了呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-6-17 16:14:05 | 只看该作者
    学习了  
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2008-12-15 10:58:21 | 只看该作者
    我也跟tcjlml遇到的问题一样。update模式执行的时候提示GUI Capture Failure,看不到预期结果。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2008-12-15 13:43:12 | 只看该作者
    能否有更详细的信息?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-25 02:18 , Processed in 0.077068 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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