51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3261|回复: 13
打印 上一主题 下一主题

[原创] 如何在关键字视图中用随机数来参数化

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-18 16:18:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近买了陈能技老师的《QTP自动化测试实践》来看,第8章中讲到使用随机数来参数化,从而实现订票过程中随机选择航班,书上的代码是:
'取得航班列表的行数
ItemCount=Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemsCount
'随机选取其中一项
SelectItem=RandomNumber(0,ItemCount)
'选择航班
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select SelectItem
运行正确,关键字视图如下:

试了一下用代码可以,但在关键字视图中来操作,进行如下设置:

设置后关键字视图如下:

专家视图中代码如下:

初学,书上也没有详细的步骤,看了帮助,只讲了对话框里出现的这些选项的意义,具体什么的也没讲,现在的问题是手动设置的随机数参数化能够执行,但就是没有做到随机,试了好几次,每次选择航班时都是选择最后一趟,不知道为什么会这样
希望得到大家的指点,谢谢~~
上传自己录制的脚本,请大家指正~

[ 本帖最后由 purify_jj 于 2008-9-22 13:29 编辑 ]

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-9-19 20:21:23 | 只看该作者
没人看这本书遇到同样的问题吗?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-21 20:58:08 | 只看该作者
书买了,但是还没有看到·····
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-22 10:31:31 | 只看该作者
lz是用这个方式添加的吗?如图所示:


如果是的话,请把你的设置截图贴上来

[ 本帖最后由 rcpp 于 2008-9-22 10:32 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-9-22 13:31:11 | 只看该作者
谢谢楼上rcpp的提醒,现附上操作截图和录制的脚本,有时间帮我看一下哦~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-9-22 14:05:31 | 只看该作者
看来我要找个时间去找找看有这书不,争取在哪里把它翻完了然后不用买
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-22 14:10:05 | 只看该作者
因为楼主的Generate new random number 选择的是For each action iteration,所以在你运行脚本是它总是产生一个随机数,如果楼主尝试多次运行此Action,产生的随机数会不一样,还有一个办法就是不勾选Name,楼主可以试一下!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-9-22 14:32:43 | 只看该作者
谢谢楼上,试过还是一样的结果,另外我想在这里,for each atction 和for each test应该是一样的,因为在这个test中,总共就一个action,和陈老师给的代码相比,就是RandomNumber(0,ItemCount)这个函数里面的参数itemCount有不同了,但想想在(0,ItemCount)里选一个,和在(0,100)里先一个应该是一样的效果啊,这里总航班也没有超过100.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-9-22 14:52:50 | 只看该作者
这个问题以前有人问过我
现在lz又问起,我觉得有必要写一写了
http://www.51testing.com/?166993 ... e_itemid_93390.html
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-9-22 15:15:25 | 只看该作者
看了,这样解释能够理解,但有疑惑的地方是,为什么代码方式下,就可以随机呢?产生随机数的道理是一样的,用的函数都是同一个,照理说手动和代码也不应该有区别才是
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-9-22 15:27:31 | 只看该作者

回复 10# 的帖子

成因不是很清楚,可能是qtp在RandomNumber对象的代码上存在某些问题
由于看不到代码,只能就此作出黑盒分析了
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-9-22 15:44:20 | 只看该作者
呵呵,谢谢热心的rcpp~刚刚开始接触,还有很多似懂非懂的问题,以后多多指教哦,陈老师的书写得还比较好懂,打算先看完,然后再把自带的tutorial做一遍,把基础的弄明白了再说~
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-9-22 16:16:38 | 只看该作者
这是QTP的随机对象的一个缺陷,苛刻点说这个对象的实现是有严重的bug。

我遇到过的一些错误:
1.通过关键字视图参数化窗口配置的随机对象,产生的是一个固定的值。
2.通过专家视图书写的脚本,也会产生一个固定的值。

这两种错误都不能100%重现。
如果因为某些原因你遇到这种情况,有个很挫的方法可以规避:
假如下面这行语句产生的是一个固定的值:
tmp = RandomNumber(0, 10)
print tmp
那么就改成下面这样:
RandomNumber(0, 10)
tmp = RandomNumber(0, 10)
print tmp

把这个无耻的随机数对象多调用一次就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-9-22 16:26:17 | 只看该作者
哈哈,这个QTP随机对象真的是够“无耻”的~~
谢谢gavin.chen
在大家的帮助下,每天积累一小步~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-20 15:31 , Processed in 0.074856 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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