51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6806|回复: 28
打印 上一主题 下一主题

[原创] 请教QTP对下拉菜单组合的测试问题。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-6 20:28:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是做网站测试的,在测试的时候经常会遇到下拉菜单的组合测试,用QTP测这个的时候我先把录制的下拉菜单各个都参数化,再在下面的Global表里手工写组合,这样太麻烦了。请问有没有好的方法或设置让QTP自己排列组合呀?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-6 21:11:14 | 只看该作者
先看看你的下拉菜单是什么对象,一般情况下为WebList(也有用WebEdit对象的。。。)
若是WebList对象,则可以用.Select index的方法来选择Item,然后用嵌套的循环来遍历每种组合,例如:

For iA = 0 to ListA_Count-1
        Browser().Page().WebList().Select "#" & iA
        ..............
        For  iB = 0 to ListB_Count-1
                Browser().Page().WebList().Select "#" & iB
                ..............
                For ..............
                        ................
                        ................
                Next        
                ...............
        Next
        .............
Next

[ 本帖最后由 hsjzfling 于 2007-11-6 21:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-11-7 12:06:44 | 只看该作者
谢谢楼上的朋友,我可以做到在下拉菜单中任选一项了,但是只运行一遍,怎么嵌套循环呀?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-11-7 13:38:24 | 只看该作者

回复 3# 的帖子

在2楼不是给了你用For循环嵌套的模板么。。。
而且你还是没说你的下拉菜单是什么对象
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-11-7 14:31:59 | 只看该作者
是WebList的,我按你的模板编好后只执行一次啊。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-11-7 15:16:02 | 只看该作者
你的ListA_Count   ListB_Count 等等赋过值么?
ListA_Count = xxxxx.WebList("ListA").GetROProperty("items count")
ListB_Count = xxxxx.WebList("ListB").GetROProperty("items count")
......
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-11-7 17:24:43 | 只看该作者
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

我是这样写的,应该不对吧,运行不了啊,你帮我看看哪里不对呀。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-11-7 17:32:25 | 只看该作者
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
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-11-7 17:43:03 | 只看该作者
楼上的朋友,我用你的方法还是运行不了啊,提示语句错误!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-11-7 18:51:58 | 只看该作者
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-11-8 12:14:33 | 只看该作者
按照你那样写还是只运行一遍呀,你能不能按我上传的例子写个完整的脚本呀?要遍历所有组合的那种,我是初学者,可能有的地方搞错了,真是麻烦你了。或者去http://club.2008.cctv.com/gallery/main/  
这个网站录下,然后编完脚本后传个上来,谢谢啦!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2007-11-8 18:26:34 | 只看该作者
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


我现在是这样写的,也不知道对不对,等待高手指点。顺便说下怎么让运行完后把组合列在数据表里!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-11-9 09:14:16 | 只看该作者
懒惰是学不了什么东西d
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2007-11-9 10:09:12 | 只看该作者
我都尝试无数变了,还懒惰?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-11-9 16:33:01 | 只看该作者
我好像试了.可以啊
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2007-11-12 22:14:31 | 只看该作者
原帖由 hsjzfling 于 2007-11-7 18:51 发表
ListA_Count = 2.WebList("ListA").GetROProperty("items count")
中间的2是什么。。。你得把对象写全啊。。。。
改为
ListField_Count = Browser("图片::奥运社区 - CCTV 奥运社区_").Page("图片::奥运社区 - CC ...


谁能有这种方法帮我写个具体的脚本呀?我是初学者,可能哪个地方理解错误,自己改了几遍都不能运行。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-11-12 22:18:42 | 只看该作者
LZ可以随机生成一个i,设置i在哪个范围就可以了呀!LZ是不是要这样的效果??
i=Radomman.value(1,255)   '1到255之间随机生成

Browser().Page().WebList().Select "#"&i
这样就可以了,不过要注意控制I的范围
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2007-11-13 10:12:32 | 只看该作者
是要遍历所有组合的那种!
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2007-11-13 11:15:18 | 只看该作者
这恐怕算是最基础的代码了

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
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2007-11-13 12:27:56 | 只看该作者
唉,LZ还是学点编程基础先吧。。。
弄了个简易脚本,凑合着先看看吧

对了,补充一下,一般不建议将需要保存的数据直接写在DataTable中,尤其是大量的数据,比如此例,最好是直接写入Excel表格中,会比较好一些

[ 本帖最后由 hsjzfling 于 2007-11-13 18:43 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 00:42 , Processed in 0.083331 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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