51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5328|回复: 25
打印 上一主题 下一主题

[原创] 关于对table的检查

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-6-29 13:44:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如果在录制的时候table中只有1行数据,而运行runtime时有多行数据,就是和录制的时候不一样,如果用table checkpoint可以顺利检查第一行,但是检查第一行得时候expected value还是第一行的值,相比当然就不正确。

难道只能一个一个取出table中的每行数据,再和datatable中的比较??checkpoint能不能更灵活一些呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

26#
发表于 2005-7-19 10:16:37 | 只看该作者
這幾天在做data access control測試,想起michelle_happy發的這個帖子,感覺她貼的查詢結果比較,是可以派上用場的。
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2005-7-5 15:34:00 | 只看该作者
这个问题我也考虑过,我的想法是只要时间和精力允许,建议在所有涉及数据库操作的地方都加上检查点。如果开发人员以后不小心误改了sql逻辑,这就能派上用场。
不错的例子,这里还是有不少高手的
学习啦
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2005-7-4 13:47:55 | 只看该作者
也有道理,呵呵。
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2005-7-4 13:35:29 | 只看该作者
Originally posted by lovetest6 at 2005-7-4 09:50 AM:
对,对,对,应该是这个样子的,
但是实际上我们忽略了一个问题,呵呵:)

那就是这样的检查是否有意义,我总觉得,你的sql语句要和开发人员程序中的sql语句一样,对吧?但是我们这样检查,实际上就相当于检 ...


你说的是否有意义的问题我也曾考虑过,因为sql句子其实和开发人员写的是一样的,但是想想也未必,如果开发人员写错了,我写对了,这是不就能检查出bug了吗。呵呵,这样建立在充分相信自己的水平的基础上噢

database checkpoint本身也是这个作用把。
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2005-7-4 09:50:44 | 只看该作者
对,对,对,应该是这个样子的,
但是实际上我们忽略了一个问题,呵呵:)

那就是这样的检查是否有意义,我总觉得,你的sql语句要和开发人员程序中的sql语句一样,对吧?但是我们这样检查,实际上就相当于检查同样的两个sql语句运行结果是否正确,呵呵。所以我觉得意义不太大。

当然了,如果数据库中存的信息有什么特殊字符,程序取出后做过相应的转换,那又另当别论。
回复 支持 反对

使用道具 举报

该用户从未签到

21#
 楼主| 发表于 2005-7-1 17:01:27 | 只看该作者

查询结果的循环比较

  1. [i]Set Conn = CreateObject("ADODB.Connection")
  2. Set Rs = CreateObject("ADODB.Recordset")
  3. Conn.Open "Description=kml-it;DRIVER=SQL Server;SERVER=KML-IT;UID=sa;PWD=password;APP=QuickTest Professional;WSID=KML-MICHELLE;DATABASE=kml_db"
  4. sql="select distinct grn_no from grn_dtl where grn_no like '%"&grnNo&"%' order by grn_no DESC"
  5. Rs.open sql,Conn,1,3
  6. Dim i,j,cell
  7.         i=1
  8.         j=2 'j=2的原因是因为页面上table是的数据是隔一行一条,不知   道怎么回事,开发人员弄的怪把
  9.                 Do while not rs.eof
  10.                         If i=13 Then  '13是每页显示出的最大行数,是个常数
  11.                                 i=1
  12.                                 j=2
  13.                                  Browser("::").Page("::").Frame("mainFrm_5").Link("下一页").Click
  14.                         end if
  15.                         cell=Browser("::").Page("::").Frame("mainFrm_5").WebTable("收货单号").GetCellData(j,2)
  16.                         If cell<>rs("grn_no") Then
  17.                 Reporter.ReportEvent 1, "查询功能"&cell, "查询结果错误."
  18.                                 Exit do
  19.                         else
  20.                                 Reporter.ReportEvent 0, "查询功能"&cell, "查询结果正确."
  21.                         End If
  22.                         rs.movenext
  23.                         j=j+2
  24.                         i=i+1
  25.                 Loop
  26. rs.close
  27. conn.close
  28. set conn=nothing[/i]
复制代码

这是查询一个字段的,对查询结果多页的情况也涉及了,其实应该把所有查询字段联合起来的,也就是改改sql语句和判断条件。

[ Last edited by lovetest6 on 2005-7-4 at 09:44 ]
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2005-7-1 15:26:20 | 只看该作者
我也觉得无所谓
我认为查询功能的查询结果做checkpoint就没什么必要,呵呵。
只是想到这里,问问而已。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2005-7-1 15:19:34 | 只看该作者
自己写脚本循环比较的。
方便吗?
贴出来大家研究研究.
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2005-7-1 14:44:18 | 只看该作者
我认为如果是做搜索、查询此类功能不应该用tale checkpoint,应该属于database checkpoint了,当然database checkpoint灵活度不大,我都是自己写脚本循环比较的。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2005-7-1 14:34:20 | 只看该作者
哦,明白你的意思了,
界面上应该是这样的吧:
一个form,你add,提交,然后返回一个list,其中包括所有的已经在数据库中的record.
是这样吧??

倘若是搜索,录制的时候值搜索出一条,你做了checkpoint,
播放的时候,数据库里数据多了,搜索结果是10条,你怎么办阿?
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2005-7-1 14:27:54 | 只看该作者
Originally posted by michelle_happy at 2005-7-1 01:28 PM:

如果我run的时候要输入10条数据,我都是输入一条后马上就检查的,输入10次数据页面本身也要重复10次啊,我在每次添加完毕紧接着check,这样check应该不会太麻烦把


如果是10条数据输入完了一起check的话, ...

如果是你说的这种,QTP是可以做到的!
做法就是我前面所说的!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2005-7-1 13:28:13 | 只看该作者
Originally posted by lovetest6 at 2005-7-1 11:27 AM:
michelle_happy
明白你的意思了,现在是不是说,如果你录制的时候,页面上只有一行数据,然后你为它加了一个checkpoint,然后回放的时候,页面上有10条数据,你从数据库里面取出来的也是10条数据,然后把这10条 ...


如果我run的时候要输入10条数据,我都是输入一条后马上就检查的,输入10次数据页面本身也要重复10次啊,我在每次添加完毕紧接着check,这样check应该不会太麻烦把

如果是10条数据输入完了一起check的话,都不知道那个key identify能不能10条一起识别,没试过,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2005-7-1 12:50:23 | 只看该作者
Originally posted by lovetest6 at 2005-7-1 11:27 AM:
michelle_happy
明白你的意思了,现在是不是说,如果你录制的时候,页面上只有一行数据,然后你为它加了一个checkpoint,然后回放的时候,页面上有10条数据,你从数据库里面取出来的也是10条数据,然后把这10条 ...

按你说的意思,
如果是这样检查,QTP是不可能实现的,他没有这个功能.
每次输入一个就作一次比较,这很正常阿!
除非你的方框一次可以输入很多,但这是不可能的!
检查网页链接就可以一次性检查所有的链接通不通!
觉得这个可以跟MI提建议,是个很好的方法,提高效率!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2005-7-1 11:32:24 | 只看该作者
checkpoint查了半天也没找到什么好方法,没提供相关的函数说明啥的,只能在界面上做设置,
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2005-7-1 11:27:57 | 只看该作者
michelle_happy
明白你的意思了,现在是不是说,如果你录制的时候,页面上只有一行数据,然后你为它加了一个checkpoint,然后回放的时候,页面上有10条数据,你从数据库里面取出来的也是10条数据,然后把这10条数据放到sheet里面,然后修改了一下checkpoint的属性。

这时候你回放起来,就会重复10次。来检查页面上的10条数据是否正确。

有没有一个办法,能不循环重复,一下子就check了呢?

或者说即便循环也只是程序循环而不是页面不停的播放。

毕竟页面重复10次,效率一定不高啊。

[ Last edited by lovetest6 on 2005-7-1 at 11:30 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-7-1 10:58:40 | 只看该作者
michelle_happy
我想前面取不到值的问题加个sync应该能解决吧?
否则真是有点儿太蹊跷了。

另外你查一下那里是不是一个TD啊,呵呵,小心被开发人员愚弄哦,呵呵。

以前钱我就遇到过一次,看着象td但实际上是做的效果。加个webtable的checkpoint看看那是个TD么。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2005-7-1 09:38:13 | 只看该作者
其实循环的问题和这个identify cell是没关系的,不过定位的问题也是困扰了我很久的问题
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2005-7-1 09:34:06 | 只看该作者
录制的时候只录制单行table,修改脚本将checkpoint放入循环内,但是在选择checkpoint属性的时候要注意修改cell identification栏,如果不修改这一栏,就是按你当时录制选取的行列来定位,但是新增以后可能因为排序问题已经不在原来的位置了,通过cell identification实现自动定位,如图

我的Identify columns中by column name是灰色的不能用,不知道怎么回事。
再identify rows中选择by selected key columns ,然后选择一列,勾选use value match criteria to identify data in the key column。我选择多列运行失败,选择一列就成功,不知道怎么回事。
也许这个大家早都知道了,不过我是刚发现的,呵呵

lovetest6,我前面那个取不到值的问题你看出什么毛病没呢

[ Last edited by michelle_happy on 2005-7-1 at 09:36 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-6-30 17:59:02 | 只看该作者
成功了么?怎么做的呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-10-6 04:03 , Processed in 0.106521 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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