google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

QTP能否动态验证数据库?

QTP能否动态验证数据库?


我们有个ASP.NET做的网站,后台数据库为SQL SERVER 2000,其中有注册用户的功能,我想注册一个用户成功后,用QTP来验证后台数据库中是否已经有了这个用户。我做的步骤如下:
1。录制一段用户注册的完整脚本,其步骤包括“注册新用户”,“填写新用户信息”,“提交”,“注销”;
2。在keyword view中,把用户名参数化(在global中,表名为USERID);
3。在“提交”与“注销”步骤之间,我添加了一个database checkpoint,在Connection string中填入相应的连接字符串,在SQL statement中填入selete * from 用户表名,点击finish后,用户表的所有字段都出来了;

在这一步我就不知道在哪里添加验证点了,如果选择一个用户名再点参数化,并且从刚才建立的参数表名(USERID)中选择,回放肯定是会报错的,大家有什么好办法吗?谢谢了!

TOP

把数据库DbTable("table")的Source属性参数化
测试新手 请多多指教!

TOP

我发现Source里面是SQL语句,如果做参数化就无法应用该语句了,请问楼上您是怎样做的?能尽量说的详细点吗?谢谢了!

TOP

楼主放的没有问题
不过你不应该 直接select * from 表 应该还有 where 列名=你要判断是否加入的信息

TOP

P老师的意思我明白了,但是where 列名=???后面的东西是不确定的,因为前面的注册用户名字已经参数化了,所以???处不能只输入一个名字来验证,回放的时候是会报错的,其实际值与期望值不一样。
而且,就算是要注册的用户名为user2,添加数据库验证点时select * from 用户表名 where userid='user2',这一句添加时QTP会报错的,因为数据库内部还没有这个用户。这个问题比较头疼,谁解答出来我肯定请他吃饭的!:d

[ Last edited by rickcui on 2005-11-8 at 10:31 ]

TOP

有饭吃啊?呵呵,那你就自己写个checkpoint呗。
让你那个where后面的条件参数化不就行了,然后自己用reporter在结果里面打出pass还是faild.

Mercury Customer Support Portal为了RFT我卸载了QTP

TOP

where 后面的语句可以通过连接加进去。
例如:
   DbTable("DbTable").SetTOProperty "Source", "select a.card_no,a.imsi,a.sub_card_no,c.subclass_note ,b.user_id,b.msisdn from sim_card a,users b,data_dict c  where  a.imsi=b.imsi and c.data_type=6 and c.data_class=30 and c.DATA_SUBCLASS=a.is_sold and a.carno='"+sim_num+"'"


看看这条语句吧。card.no是一个变化的值,你可以把变量sim_num通过连接符号,赋值。

至于如何添加检查点,你把期望的结果在界面上通过OUTPUT到datatable的某一列上,然后将数据库检查点查询的结果也存放到刚才out的列,这样就可以实现检查点的实际结果与期望结果的检查了。

TOP

xingxing真厉害
向你学习!!
www.jpos.cn
每天进步一点点,欢迎大家一起讨论共同提高~~~~
http://blog.csdn.net/shengyan/

TOP

xingxing79 ,我肯定要请你吃饭的!

TOP

嗯,厉害啊,不简单

TOP

 
当前时区 GMT+8, 现在时间是 2008-10-13 10:57Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹