51Testing软件测试论坛

标题: qtp自带flight程序测试问题 [打印本页]

作者: hudemou    时间: 2012-9-20 16:09
标题: qtp自带flight程序测试问题
If Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("enabled")=true then  
                                     p=Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount             '获取fly from地点的行数     
                                     flyf = int(rnd*p-1)                          '取随机行
                                     Window("Flight Reservation").WinComboBox("Fly From:").Select flyf                   '随机选择起始点
                     wait(3)
                                     capture()
                                     f1.WriteLine("FLy from按钮""   有效   "&"     能选择起始点!" & filename)
                                     f1.WriteBlankLines(1)                       
                   else
                                 f1.WriteLine("FLy from按钮""         无效   "&"  不能选择起始点!" & filename)
                   end If
测试订单时间,设置了6个数据,5错1对,错误数据都能正常选择,最后一次对的数据读取后出现下面错误,求高手指点一下!!!
Cannot identify the specified item of the Fly From: object. Confirm that the specified item is included in the object's item collection.
作者: lyyuusan    时间: 2012-9-20 21:39
我把你的代码拷下来试了下,是可以的通过的,你检查一下你的对象库,看看是不是有问题
If Window("航班预订").WinComboBox("起点:").GetROProperty("enabled")=true then  
                                     p=Window("航班预订").WinComboBox("起点:").GetItemsCount     
'                                     flyf = int(rnd*p+1)                          '取随机行
                                     flyf = int((p-0+1)*rnd+0)
                                     Window("航班预订").WinComboBox("起点:").Select flyf                   '随机选择起始点
                     wait(3)
'                                     capture()
'                                     f1.WriteLine("FLy from按钮""   有效   "&"     能选择起始点!" & filename)
'                                     f1.WriteBlankLines(1)                        
'                   else
'                                 f1.WriteLine("FLy from按钮""         无效   "&"  不能选择起始点!" & filename)
                   end If
作者: hudemou    时间: 2012-9-21 16:21
谢谢你的帮助,应该不是对象库的问题。
6个日期数据在action中数据表直接调用,是正常的。

现在是将这部分代码写成函数,放在函数库中调用,最后一个正确日期读取后报错。
  1. Window("Flight Reservation").WinButton("新建按钮").Click
  2.            Window("Flight Reservation").WinObject("Date of Flight:").Type ReadExcelCell("C:\Users\hudemou\Desktop\test.xls","testflg",i,1)
  3.            dateflight = ReadExcelCell("C:\Users\hudemou\Desktop\test.xls","testflg",i,1)                  '将外部表中的数据参数化

  4. '.******************************               测试FLy From按钮是否有效
  5. .******************************               测试FLy From按钮是否有效          **************************************
  6.                     If Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("enabled")=true then  
  7.                                      p=Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount             '获取fly from地点的行数     
  8.                                      flyf = int(rnd*p-1)                          '取随机行
  9.                                      Window("Flight Reservation").WinComboBox("Fly From:").Select flyf                   '随机选择起始点
  10.                      wait(3)
  11.                                      capture()
  12.                                      f1.WriteLine("FLy from按钮""   有效   "&"     能选择起始点!" & filename)
  13.                                      f1.WriteBlankLines(1)                       
  14.                    else
  15.                                  f1.WriteLine("FLy from按钮""         无效   "&"  不能选择起始点!" & filename)
  16.                    end If
  17.                                
复制代码

作者: xjwldlover    时间: 2012-9-23 15:53
本帖最后由 xjwldlover 于 2012-9-23 15:59 编辑

Confirm that the specified item is included in the object's item collection. ----确认指定的选项是否包含在可选集合
**************************************
flyf = int(rnd*p-1)
应该是这一行代码有问题,你的item取值范围应该是想要在【1,6】吧,for next运行一下你的这个flyf,你看下,会有 flyf = 0,-1的情况哦,应该就会报错。
QTP存在生成随机整数的函数flyf = randomNumber(1,6),会生成【1,6】的整数,改下试试。

希望对你有帮助,如有错误,请各位指正~
ps,使用rnd函数前要初始化随机数种子Randomize,话说没初始化的话,应该6错或者6对啊,奇怪~
作者: hudemou    时间: 2012-9-24 10:18
谢谢,按你说的改了运行正常。
但是还是没弄明白为什么只有最后一个日期报错?
但我感觉应该和取外部表中数据的for语句有关,在action中没有for语句,继续探索中、、、、




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2