请教QTP对下拉菜单组合的测试问题。
我是做网站测试的,在测试的时候经常会遇到下拉菜单的组合测试,用QTP测这个的时候我先把录制的下拉菜单各个都参数化,再在下面的Global表里手工写组合,这样太麻烦了。请问有没有好的方法或设置让QTP自己排列组合呀? 先看看你的下拉菜单是什么对象,一般情况下为WebList(也有用WebEdit对象的。。。)若是WebList对象,则可以用.Select index的方法来选择Item,然后用嵌套的循环来遍历每种组合,例如:
For iA = 0 to ListA_Count-1
Browser().Page().WebList().Select "#" & iA
..............
ForiB = 0 to ListB_Count-1
Browser().Page().WebList().Select "#" & iB
..............
For ..............
................
................
Next
...............
Next
.............
Next
[ 本帖最后由 hsjzfling 于 2007-11-6 21:15 编辑 ] 谢谢楼上的朋友,我可以做到在下拉菜单中任选一项了,但是只运行一遍,怎么嵌套循环呀?
回复 3# 的帖子
在2楼不是给了你用For循环嵌套的模板么。。。而且你还是没说你的下拉菜单是什么对象 是WebList的,我按你的模板编好后只执行一次啊。 你的ListA_Count ListB_Count 等等赋过值么?
ListA_Count = xxxxx.WebList("ListA").GetROProperty("items count")
ListB_Count = xxxxx.WebList("ListB").GetROProperty("items count")
...... ListA_Count = 2.WebList("ListA").GetROProperty("items count")
ListB_Count = 2.WebList("ListB").GetROProperty("items count")
ListC_Count = 2.WebList("ListC").GetROProperty("items count")
ListD_Count = 1.WebList("ListD").GetROProperty("items count")
For iA=0 to ListA_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("field").Select "#" & iA
For iB=0 to ListB_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("display").Select "#" & iB
For iC=0 to ListC_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("pagesize").Select "#" & iC
For iD=0 to ListD_Count1
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("mode").Select "#" & iD
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区__2").Sync
我是这样写的,应该不对吧,运行不了啊,你帮我看看哪里不对呀。 ListA_Count = 2.WebList("ListA").GetROProperty("items count")
For iA=0 to ListA_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("field").Select "#" & iA
ListB_Count = 2.WebList("ListB").GetROProperty("items count")
For iB=0 to ListB_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("display").Select "#" & iB
ListC_Count = 2.WebList("ListC").GetROProperty("items count")
For iC=0 to ListC_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("pagesize").Select "#" & iC
ListD_Count = 1.WebList("ListD").GetROProperty("items count")
For iD=0 to ListD_Count1
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("mode").Select "#" & iD
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区__2").Sync 楼上的朋友,我用你的方法还是运行不了啊,提示语句错误! ListA_Count = 2.WebList("ListA").GetROProperty("items count")
中间的2是什么。。。你得把对象写全啊。。。。
改为
ListField_Count = Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("field").GetROProperty("items count")
以下类同
[ 本帖最后由 hsjzfling 于 2007-11-7 19:00 编辑 ] 按照你那样写还是只运行一遍呀,你能不能按我上传的例子写个完整的脚本呀?要遍历所有组合的那种,我是初学者,可能有的地方搞错了,真是麻烦你了。或者去http://club.2008.cctv.com/gallery/main/
这个网站录下,然后编完脚本后传个上来,谢谢啦! ListA_Count2=2
ListB_Count2=2
ListC_Count2=2
ListD_Count1=1
For iA=0 to ListA_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("field").Select "#" & iA
For iB=0 to ListB_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("display").Select "#" & iB
For iC=0 to ListC_Count2
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("pagesize").Select "#" & iC
For iD=0 to ListD_Count1
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebList("mode").Select "#" & iD
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区_").WebButton("浏览设置").Click
Next
Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CCTV 奥运社区__2").Sync
我现在是这样写的,也不知道对不对,等待高手指点。顺便说下怎么让运行完后把组合列在数据表里! 懒惰是学不了什么东西d 我都尝试无数变了,还懒惰? :) :) :) 我好像试了.可以啊 原帖由 hsjzfling 于 2007-11-7 18:51 发表 http://bbs.51testing.com/images/common/back.gif
ListA_Count = 2.WebList("ListA").GetROProperty("items count")
中间的2是什么。。。你得把对象写全啊。。。。
改为
ListField_Count = Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CC ...
谁能有这种方法帮我写个具体的脚本呀?我是初学者,可能哪个地方理解错误,自己改了几遍都不能运行。 LZ可以随机生成一个i,设置i在哪个范围就可以了呀!LZ是不是要这样的效果??
i=Radomman.value(1,255) '1到255之间随机生成
Browser().Page().WebList().Select "#"&i
这样就可以了,不过要注意控制I的范围 是要遍历所有组合的那种! 这恐怕算是最基础的代码了
Dim i,j List1Cnt,List2Cnt
List1Cnt = Browser().Page().WebList("A").GetRoProperty("items count")
List2Cnt = Browser().Page().WebList("B").GetRoProperty("items count")
For i = 0 to List1Cnt -1
Browser().Page().WebList("A").select "#" & i
For j = 0 to List2Cnt -1
Browser().Page().WebList("B").select "#" & j
Next
Next 唉,LZ还是学点编程基础先吧。。。
弄了个简易脚本,凑合着先看看吧
对了,补充一下,一般不建议将需要保存的数据直接写在DataTable中,尤其是大量的数据,比如此例,最好是直接写入Excel表格中,会比较好一些
[ 本帖最后由 hsjzfling 于 2007-11-13 18:43 编辑 ]
页:
[1]
2