51Testing软件测试论坛

标题: 【求助】关于QTP循环问题【修改】 [打印本页]

作者: t2830212    时间: 2007-9-21 16:01
标题: 【求助】关于QTP循环问题【修改】
【求助】关于QTP循环问题

谢谢你看此帖:
      在QTP中,我用了下面IF循环读取Global表中的数据,当判断我定义的“行政区”数据是不是为空,为空时就退出循环,这时候表中有两个数据。

Dim xzq
xzq=DataTable("行政区", dtGlobalSheet)
If ( xzq = "" )Then
Exittest
End If


然后我又用FOR循环循环读入Action1表的数据。上面和下面的循环的关系是:当上面输入第一条数据时候,下面For循环,循环一次,输入数据
但问题就来了,上面IF循环输入第二条数据了,下面又循环了,且输入数据一样,我要的是当上面IF循环输入第二条的时候,下面的FOR循环输入的内容不一样。当然,我希望能读入Action2的数据,来解决

Dim   b,i                                               
   
           b=datatable.GetSheet(dtLocalSheet).getrowcount
                   For       i=1  to   b



×××××××

datatable.getSheet(dtLocalSheet).SetNextRow
Next



你能帮忙吗?怎么样才可以读入Action2表中的数据,来使IF循环后的数据不一样


如果我说的不明白的。我可以再附代码给你看看



------------------------------------------------------------------------



Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_4").Check CheckPoint("成都市房屋专项维修资金系统v1.0_4")
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_4").WebEdit("ID___Login$txtUserName").Set "test1"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_4").WebEdit("ID___Login$txtPassWord").SetSecure "46f32b5c1a26858ee9ca83ad"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_4").Image("ID___Login$btnLogin").Click 11,19


'定义物业区域,当新建物业区域是,判断【行政区】是否有数据,当为空的时候就退出
  Dim xzq
xzq=DataTable("行政区", dtGlobalSheet)
  If ( xzq = "" )Then
Exittest
End If
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("TopFrame").WebElement("二手房管理").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("LeftFrame").Check CheckPoint("LeftFrame")
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("LeftFrame").WebElement("二手房信息采集").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("新建物业区域信息").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldEstateAreaAdd$OldEstateA").Select DataTable("行政区", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldEstateAreaAdd$OldEstateA_2").Select DataTable("街道办事处", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaAdd$OldEstateA").Set DataTable("物业区域名称", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaAdd$OldEstateA_2").Set DataTable("街道", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaAdd$OldEstateA_3").Set DataTable("号", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaAdd$OldEstateA_4").Set DataTable("附号", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaAdd$OldEstateA_5").Set DataTable("备注", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("保  存").Click
Browser("成都市房屋专项维修资金系统v1.0").Dialog("Microsoft Internet Explorer").WinButton("确定").Click


Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldEstateAreaList$drpTbl").Select "物业区域地址"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldEstateAreaList$txtWhere").Set DataTable("街道", dtGlobalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("WebButton").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("monthes").Select "一月"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").Link("3").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("WebButton_2").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("years").Select "2009"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("monthes_2").Select "六月"
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").Link("28").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("查  询").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").Link("分户").Click

Dim   b,i                                               
   
           b=datatable.GetSheet(dtLocalSheet).getrowcount
                   For       i=1  to   b
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("新建分户信息").Click
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtMo").Set DataTable("单元号", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtFl").Set DataTable("楼层号", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtRo").Set DataTable("室号", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtAd").Set DataTable("详细地址", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtBu").Set DataTable("建筑面积", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldHouseAdd$OldHouse1$dplRo").Select DataTable("房屋类型", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldHouseAdd$OldHouse1$dplRo_2").Select DataTable("房屋结构", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldHouseAdd$OldHouse1$dplRo_3").Select "普通住宅"
Browser("成都市房屋专项维修都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtOw").Set DataTable("业主姓名", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebList("ID_OldHouseAdd$OldHouse1$ddlPa").Select DataTable("证件类型", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtPa").Set DataTable("证件号码", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$tbxDC").Set DataTable("购房金额", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebEdit("ID_OldHouseAdd$OldHouse1$txtRe").Set DataTable("备注", dtLocalSheet)
Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("保  存").Click
Browser("成都市房屋专项维修资金系统v1.0").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
datatable.getSheet(dtLocalSheet).SetNextRow
Next

Browser("成都市房屋专项维修资金系统v1.0").Page("成都市房屋专项维修资金系统v1.0_5").Frame("MainFrame").WebButton("提交审核").Click

[ 本帖最后由 walker1020 于 2007-9-22 14:44 编辑 ]
作者: t2830212    时间: 2007-9-21 16:04
当然,也可以读取Action1表的行数来解决,但我就是不知道sdlkfj9
作者: jackymail    时间: 2007-9-21 16:19
呵呵,大哥我实在没看明白你写什么,把代码贴出来我看一下就能明白,不用文字。。。我在努力的研读你的文字。。。
作者: xiaonan    时间: 2007-9-21 16:20
能不能给点图示解说一下啊?你这个语言表达的不直观
作者: t2830212    时间: 2007-9-21 16:26
好了。。。
作者: jaunty    时间: 2007-9-21 16:54
好了 就把问题的原因和解决方案告诉大家

怎么都是问问题的时候大叔大姐跪求急求的

自己搞定了 就不说了

典型的卸磨杀驴
作者: jackymail    时间: 2007-9-21 16:56
。。。。。。
他这个代码我看了就没有什么问题。
不知道哪儿错了。

'datatable("col",dtGlobalsheet)

for i=1 to datatable.getsheet("Action2").getrowcount
'  datatable("col",dtlocalsheet)
'  or datatable(columnnum,dtlocalsheet)
'  datatable.setnextrow
next

[ 本帖最后由 jackymail 于 2007-9-21 17:00 编辑 ]
作者: xinxiachen    时间: 2007-9-21 17:00
不是很理解楼主说的问题,如果是是想把第二部分套在第一部份中进行循环,那第一个可以用while(),然后把第二部分放到它里面进行控制.如果不是这种意思,只是单纯想控制第二部分的循环,那直接在QTP上设置吧.
作者: jackymail    时间: 2007-9-21 17:03
这样恐怕不行。action2里面的数据循环不到。

原帖由 xinxiachen 于 2007-9-21 17:00 发表
不是很理解楼主说的问题,如果是是想把第二部分套在第一部份中进行循环,那第一个可以用while(),然后把第二部分放到它里面进行控制.如果不是这种意思,只是单纯想控制第二部分的循环,那直接在QTP上设置吧.

作者: feiyunkai    时间: 2009-9-23 13:11
标题: 回复 1# 的帖子
你可以在action1添加output,然后Action2的input直接引用action1的output
1)给action1添加输出值:右键Action1,选Action Properties,在Output Parameters中添加参数OutAction1,点OK
2)给action2添加输入值:右键Action2,选Action Properties,在Input Parameters中添加参数InAction2,点OK
3)将Action1的输出OutAction1,传递给Action2的输入InAction2:右键Action2,选Action Call Properties,弹出Action Call Properties窗口;选中InAction2的Value,弹出Value Configuration Options窗口;在Parameter中共有四项可供选择,选择Test/Action parameter,在Output from previous call(s)中的Action选择Action1,Parameter中选择OutAction1;表示Action2中的参数InAction2,是由Action1中的参数OutAction1传递来的。

[ 本帖最后由 feiyunkai 于 2009-9-23 13:13 编辑 ]




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