求教QTP中参数化数据库检查点的方法【已解决】
在脚本中有一变量:Dim Uid(其值是动态变动的,由外部txt文件获得)
通过insert---checkpoint---database checkpoint的方式,添加一手工的Specify SQL statement manually,
想以Uid作为条件对记录的其他字段做检查,即:select * from tablename where UserId = Uid,
但此Uid为一可变值,不能对其赋具体值将sql语句写死,请教下各位大大,若想用checkpoint的方式(暂不讨论可在脚本中写代码连库查询的方式代替),如何来写这段SQL语句才能将变量Uid的值传到Checkpoint中去?
了解这方面东东的给个稍微具体的例子吧,谢谢先了:hug: 。
PS:QTP能否实现这样的参数化?
[ 本帖最后由 早晨很舒服 于 2008-7-15 01:56 编辑 ] 自己顶一下,
这样子参数化是真的行不通吗?哪位大哥给些建议啊! 你在keyword view 中,右键选择检查点,在菜单当中,选择object properties,在里面当中,可以将source参数化,也许可以解决你的问题 楼上的可行,但不一定能解决你的问题,试试吧 :)
谢谢楼上几位先,但我新手,不太能看懂source的参数化,我对它肤浅的理解成是对数据来源部分的参数化(以sql的查询结果为来源|以datatable的数据为来源|以环境变量为来源),不知正确否?大大们可否详细给俺说说
我想解决的问题掰开是这样的:
在*.txt中有UserId的数据(一行一个),我用循环的方式去读取每行数据,在单次循环中将其数据赋给变量Uid,同样在此循环中以Uid作为条件查询,对数据库记录进行检查,即添加了数据库检查点,其中语句大致为:
select * from tablename where UserId = Uid,
跳入下一次循环后,uid被赋上了第二行值,检查点也随同更新。。。所以在此需要对检查点的SQL语句中的Uid参数化,如果直接在脚本中写查询代码可以很容易实现,但我想试试封装好的checkpoint能否也能实现如此功能。
各位老大,帮我分析分析嘛 这个完全可以做到啊,你把uid读取出来之后,在checkpoint之前,改变你参数化的查询条件,
首先在,在datatable中,把查询条件的那一列的值统一设置为"select * from tablename where UserId =",然后在脚本当中,把uid加到这个值的后面上去就可以了(注意在checkpoint之前重新设置值). 谢谢zhou840401,按照你说的方式已成功:
简略步骤如下:
1.在datatable中修改一列名为sqlstr
2.取到uid值
3.datatable.value("sqlstr")="select * from tablename where UserId ="&uid
4.插入一数据库检查点。
5.在keyword view 中检查点的source参数化:选择datatable的sqlstr项即可。
再次感谢:handshake
[ 本帖最后由 早晨很舒服 于 2008-7-15 16:55 编辑 ] 谢谢zhou840401,按照你说的方式已成功:
简略步骤如下:
1.在datatable中修改一列名为sqlstr
2.取到uid值
3.datatable.value("sqlstr")="select * from tablename where UserId ="&uid
4.插入一数据库检查点。
5.在keyword view 中检查点的source参数化:选择datatable的sqlstr项即可。
再次感谢
继续求助!
我现在也在操作同样问题,可照如上步骤操作后,运行结果总是提示“The specified query could not be executed."
好像是参数化的sql语句没执行,可就是找不到原因,还请各位及时指导!!非常感谢! 学习了 按步骤做了,不行的?
qtp还是按照设定检查点时的SQL执行。
比如,设定检查点时,录入的sql是 select * from table where id='a'
datatable里设置一列,sql为 select * from table where id='b'
然后参数化source
回放时,仍然按id='a'来检查的,不知道为什么 学习啦:lol
页:
[1]