QTP测试报表table内容的思路

发表于:2008-6-04 16:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:abanban    来源:51Testing软件测试博客

#
QTP

关键字:软件测试QTP

       使用QTP对报表中的webtable内容进行正确性验证。

    基本思路是:

    一:使用getcelldata(i,j)的方法遍历webtable把表格内容存入一个数组中,一般为二维数组

    二:使用数据库连接组件ADODB连接后台数据库,使用数据结果集对象保存select查询结果,也是一个二维数组

    三:此时区分是否需要验证排列顺序,如果需要,直接对两个二维数组进行一对一遍历比较

    四:不需要验证排列顺序,或者顺序无法控制的情况下,我们需要对显示内容和查询预期内容进行比较,这时候牵涉到两个结果集的数据顺序问题,如果采用单对多遍历的情况,效率会十分低。

    这时候我们换一种思路考虑,既然是验证内容,那我们就可以把二维数组的验证转换成排序一维数组比较,实现方式是,采用join方法将二维数组的每一行转换成一个字符串(内容没有变化,只加入拼接符),两个二维数组进行相同转换,成为两个一维的字符串数组。

    然后使用快速排序法对两个一维数组进行一次排序,同样的机制下,如果原本内容相同,那么排序出的内容也应该相同。然后直接进行一维数组一对一比较。

    下面是vbs的快速排序代码,合适数字和字符串数组:

Public Function QSort(ByRef ReArr, ByVal head, ByVal tail)

'ReArr 是待排序数组, head和tail是该数组的最小下标和最大下标
Dim lef, rig
Dim pivot

If head < tail Then
 lef=head
 rig=tail
 pivot=ReArr(lef)
 While (lef <> rig)

  While (lef < rig and ReArr(rig) >= pivot)
   rig = rig-1
  Wend
  If lef <rig Then
   ReArr(lef) = ReArr(rig)
   lef = lef+1
  End If

  While (lef < rig and ReArr(lef) <= pivot)
      lef = lef+1
  Wend
  If lef <rig Then
   ReArr(rig) = ReArr(lef)
      rig = rig-1
  End If
 
 Wend

 ReArr(lef) = pivot
 call QSort(ReArr, head, lef-1)
 call QSort(ReArr, lef+1, tail)
 
End If
End Function

更多相关软件测试文章:手工编写QTP测试脚本QTP测试脚本的录制

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号