51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5213|回复: 30
打印 上一主题 下一主题

在qtp中建立带参数的数据库检测点如何设置

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-4-25 13:58:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁知道在qtp中如何建立带参数的数据库检测点?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-4-26 08:57:23 | 只看该作者
没明白什么意思啊??
你是说sql的参数么?还是什么东东?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-4-27 09:36:28 | 只看该作者
你想说QTP怎样建立数据库检查点是吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-4-28 17:24:15 | 只看该作者
建立数据库检测点可以通过INSERT/CHECKPOINT/DATABASE CHECKPOINT进行设置,我想向WR那样,进行数据库检测点设置时,可以动态的传参数进去。WR在进行数据库检测点设置时可以使用通配符“?”,进行参数的传递,QTP怎么写呢?
不知道我的意思我表达清楚没有?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-4-28 17:25:07 | 只看该作者
建立数据库检测点可以通过INSERT/CHECKPOINT/DATABASE CHECKPOINT进行设置,我想向WR那样,进行数据库检测点设置时,可以动态的传参数进去。WR在进行数据库检测点设置时可以使用通配符“?”,进行参数的传递,QTP怎么写呢?
不知道我的意思我表达清楚没有?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-4-29 08:56:49 | 只看该作者
你可以把WR怎么传递数据的方法写上来,让大家试着帮你转一下!
这样不是更清楚吗?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2005-4-29 13:10:06 | 只看该作者
好呀,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-4-29 13:25:30 | 只看该作者
在wr中带参数的数据库检测点是这样写的,其中在进行数据源的设置时,采用的sql语句为:select sparepart_no,sparepart_name,flag_sn,flag_enabled from dim_sparepart  where sparepart_no=?
在脚本录制时采用:
dbvf1_params[1] = ddt_val(table,"SPNO");
db_check("list6.cdl", "dbvf1", NO_LIMIT, dbvf1_params);
现在就麻烦大家帮我想一想怎么进行转换吧。谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-5-3 10:54:12 | 只看该作者
飘雪,在QTP中用脚本直接写是不是就可以了呢?呵呵,就象asp呵呵,
vbscript嘛
这样看QTP确实比WR好很多。呵呵。

[ Last edited by lovetest6 on 2005-5-3 at 10:59 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-5-5 10:33:49 | 只看该作者
我也想知道怎么办
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-5-6 15:06:04 | 只看该作者
楼上的,
不是说了嘛,直接写脚本就行了啊,
又没说一定要用QTP的脚本写。还有VBScript可以用嘛。

conn.execute
rs.open 啥的
都可以啊,感觉比WR里面的方便啊。

[ Last edited by lovetest6 on 2005-5-6 at 15:07 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2005-5-8 17:06:25 | 只看该作者
Originally posted by lovetest6 at 2005-5-3 10:54 AM:
飘雪,在QTP中用脚本直接写是不是就可以了呢?呵呵,就象asp呵呵,
vbscript嘛
这样看QTP确实比WR好很多。呵呵。

[ Last edited by lovetest6 on 2005-5-3 at 10:59 ]


你好!针对我所说的功能用vbscript在qtp中实现呀,能否写出来,供我们参考一下呀,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2005-5-8 17:23:59 | 只看该作者
查看了QTP的数据库连接,切实与WR不相同!
再说,对你在WR的那种方法我没有看明白.
可能我理解有问题,可以说清楚点吗?
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2005-5-9 09:45:17 | 只看该作者
想对数据库中的某一条记录进行检测,如果不通过参数,而是直接增加数据库检测点的话,他就把数据的所有记录全部查询出来,如果数据特别多,不好锁定一条记录,所以可以通过参数,直接锁定要查的那条记录,例如,要在表dim_sparepart  中查找sparepart_no为1的记录,其中在进行数据源的设置时,采用的sql语句为:select sparepart_no,sparepart_name,flag_sn,flag_enabled from dim_sparepart  where sparepart_no=?
在脚本录制时对参数付值:dbvf1_params[1] =1;
然后加入数据库检测点:
db_check("list6.cdl", "dbvf1", NO_LIMIT, dbvf1_params);
此时就可以查询出sparepart_no=1的记录了。不知道我的意思表达清楚没?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2005-5-9 12:57:37 | 只看该作者
Originally posted by 飘雪 at 2005-5-9 09:45 AM:
想对数据库中的某一条记录进行检测,如果不通过参数,而是直接增加数据库检测点的话,他就把数据的所有记录全部查询出来,如果数据特别多,不好锁定一条记录,所以可以通过参数,直接锁定要查的那条记录,例如, ...

不会阿,你可以对一条记录进行检测,QTP比WR弹性多了,也可以写SQL语句;
1.先选择一个字段,然后QTP导出所有的数据,这时,你可以选择想检查的数据.也可以只查一条.
2.你也可以写SQL语句
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2005-5-9 13:07:41 | 只看该作者
Originally posted by QA_BAY at 2005-5-9 12:57 PM:

不会阿,你可以对一条记录进行检测,QTP比WR弹性多了,也可以写SQL语句;
1.先选择一个字段,然后QTP导出所有的数据,这时,你可以选择想检查的数据.也可以只查一条.
2.你也可以写SQL语句


针对我上面的例子,你看怎么实现,可以写一下代码吗?我现在没有思路。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2005-5-9 14:28:44 | 只看该作者
QTP不像WR那样
它比WR方便多了。
你连好数据库之后直接导进数据不行吗?然后可以选择你想检查的数据!就这样阿,
你想写SQL语句也可以!
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2005-5-9 16:17:02 | 只看该作者
TO QA_BAY:
我明白你的意思了,可是,我想知道QTP对数据库检测时,可以使用参数吗?
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2005-5-9 16:44:05 | 只看该作者
我想表达的意思是:
比如说我想测试一个用户的增加功能是否正确,增加用户user和密码pwd,保存后。想通过数据库检查点监测库中是否存在这条用户。由于脚本需要不断的复用,因此我将用户和密码的值都参数化为parauser & parapwd, 那么我的数据库检查点的sql也必须参数化,不能写成固定的sql,否则预期的值和真正的值便不相匹配,但是在数据库检查点的SQL query中无法将sql参数化,而只能写成诸如 select * from dim_user where userid='1' 这样固定的数据,如果这样写,expected data肯定是和真正的值不相匹配的,请问如果将这个sql匹配,使得expected data根据动态的sql动态生成了
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2005-5-10 10:10:03 | 只看该作者
建一个dsn指向你的数据库或者你能知道connection string也可以
然后写vbscript代码(我觉得说ASP更好,呵呵)

  1. 代码:
  2. --------------------------------------------------------------------------------

  3. Set Conn = CreateObject("ADODB.Connection")
  4. Set Rs = CreateObject("ADODB.Recordset")
  5. Conn.Open "写上你的dsn连接到数据库,或者写连接字符串"
  6. 循环开始for,while什么都行,条件要写好
  7. username="<datatable.SetNextRow>" <----这里要用取datatable中的数据。
  8. Rs.Open "select * from dim_user where username=" & username",Conn
  9. 循环结束
  10. --------------------------------------------------------------------------------
复制代码


判断Rs.Fields("username")是否存在就可以了,当然了,其实判断rs是否为空就可以了。太详细的代码我也要查手册和以前写的例子了。有问题我再给你查。


另外,我想问一下,如果自己写的程序里面有结果需要记录,是不是应该把结果记录到output value中去啊?对output value不大理解,各位见笑啊。
总不能让我再自己写脚本生成一个文本文件吧?呵呵。


[ Last edited by lovetest6 on 2005-5-10 at 10:51 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-28 04:19 , Processed in 0.108426 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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