51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4166|回复: 10
打印 上一主题 下一主题

[原创] 关于QTP中的随机数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-13 15:31:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎么随机选择下拉菜单啊
怎么在多个打勾框上随机√上一个或者多个啊
怎么在多个点上随机點上一个啊
求助啊,高手们
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-2-13 16:22:28 | 只看该作者
1、获取可选下拉列表、可选复选框、可选“点”(不知道你的点是什么意思)……等等的个数N,具体代码请见qtp的帮助文档,用spy也可以看出来;
2、利用vbs获取一个随机的整数,取数范围是从0到可选的最大数,具体实现代码去百度,以“vbs 随机数”为关键词搜索,结果一大堆;
3、如果是下拉列表,就调用select方法使用随机索引;如果是复选框,那就调用setproperty方法,设置isChecked属性;如果是“点”,那就同样使用随机数访问“点”对象执行click操作。具体操作方法请见QTP的API文档。
没有写出现成的代码,因为这些代码只能是自己去写的;写了那么多的见文档、见百度,楼主也不要生气,因为所有人解决这类问题的时候,最好的方法就是API和百度;
另外坦白的说一句,我很迷惑楼主为什么会碰到这个问题?如果是为了随便点几个按钮,那由测试人员手工验证就可以了,不然你的测试输入都是随机的,那你的预期结果怎么弄?难道你们那边的测试资源真的富裕到用自动化测试来做着些事情吗?所以我总有种错觉,感觉楼主提这个问题的目的会不会是逗大家玩的?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-2-16 10:34:37 | 只看该作者
感激这么详细回答啊,虽然不太懂,可是我会多试试的。不是逗大家玩啊,我是刚学QTP,还不会写脚本,只会直接录制的,看到参数化那里有个Random Number,以为选了就可以了。结果上网查,都说要加代码,但是我不知道具体把加在哪里。在郁闷这个,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-2-16 10:44:51 | 只看该作者
像这个
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "o95571990"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "497687a3a4203632547523d5dc8602231e3ce58853da"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 46,5
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select "Portland"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromMonth").Select "December"
中Select "Portland"
我要是想随机选下拉框中的任意一个城市,代码应该怎么加呢
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-2-16 13:13:57 | 只看该作者
可以有好几种解决方法,我常用的做法是把所有备选的城市名称放到一个数组中,然后利用vbs的随机函数,从数组中随机取出一个城市名称并将它赋给一个变量,然后select就使用这个变量就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-2-16 22:30:35 | 只看该作者
楼上正解!split分解
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-2-17 09:30:30 | 只看该作者
filghtCount=Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemsCount
SelectItem = RandomNumber(0,  filghtCount)
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select SelectItem
这段代码就可以实现下拉列表中的随机选择
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-2-17 11:26:23 | 只看该作者

回复 7# 的帖子

你这只是对windows程序,测试web 的时候没有getitemscount这个方法
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-2-17 15:02:50 | 只看该作者
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select "Portland"
改成:
function get_ran(i)
randomize
get_ran=randomnumber(0,i)
end function
get _count=Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").getroproperty("items count")
ran_number=get_ran(get_count-1)
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").select "#"&ran_number
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-2-19 12:29:03 | 只看该作者
1.Random Select Weblist items
Browser("Create New").Page("Create New").WebList("TypeActual").Select RandomNumber(1, 60)
1.1 Select Weblist item from 0 to last one
For i=0 to 59
Browser("Create New").Page("Create New").WebList("TypeActual").Select RandomNumber(i, i)
Next

2.Random Click"WebRadioGroup"
Browser("Search").Page("Select").Frame("listDisplay").WebRadioGroup("emxTableRowId").Select "#"&RandomNumber(0, 11)

3. Random Set ''WebCheckBox"
Dim AARowCount
Dim CC,AA
AARowCount=Browser().Page().Frame().WebTable().RowCount
Rem msgbox AARowCount
CC=RandomNumber(0, AARowCount)
Set AA=Browser().Page().Frame().WebTable().Childitem(CC,1,'WebCheckBox',0)
     AA.Set "ON"
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-2-19 16:48:26 | 只看该作者

回复 11# 的帖子

怎么在这里打起广告来的了!XXXXXXX
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 08:53 , Processed in 0.077342 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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