51Testing软件测试论坛

标题: 如何在关键字视图中用随机数来参数化 [打印本页]

作者: purify_jj    时间: 2008-9-18 16:18
标题: 如何在关键字视图中用随机数来参数化
最近买了陈能技老师的《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
运行正确,关键字视图如下:
[attach]45499[/attach]
试了一下用代码可以,但在关键字视图中来操作,进行如下设置:
[attach]45500[/attach]
设置后关键字视图如下:
[attach]45497[/attach]
专家视图中代码如下:
[attach]45498[/attach]
初学,书上也没有详细的步骤,看了帮助,只讲了对话框里出现的这些选项的意义,具体什么的也没讲,现在的问题是手动设置的随机数参数化能够执行,但就是没有做到随机,试了好几次,每次选择航班时都是选择最后一趟,不知道为什么会这样
希望得到大家的指点,谢谢~~
上传自己录制的脚本,请大家指正~

[ 本帖最后由 purify_jj 于 2008-9-22 13:29 编辑 ]
作者: purify_jj    时间: 2008-9-19 20:21
没人看这本书遇到同样的问题吗?
作者: Nsdsds    时间: 2008-9-21 20:58
书买了,但是还没有看到·····
作者: rcpp    时间: 2008-9-22 10:31
lz是用这个方式添加的吗?如图所示:
[attach]45490[/attach]

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

[ 本帖最后由 rcpp 于 2008-9-22 10:32 编辑 ]
作者: purify_jj    时间: 2008-9-22 13:31
谢谢楼上rcpp的提醒,现附上操作截图和录制的脚本,有时间帮我看一下哦~
作者: 假装不在    时间: 2008-9-22 14:05
看来我要找个时间去找找看有这书不,争取在哪里把它翻完了然后不用买
作者: ziheng198688    时间: 2008-9-22 14:10
因为楼主的Generate new random number 选择的是For each action iteration,所以在你运行脚本是它总是产生一个随机数,如果楼主尝试多次运行此Action,产生的随机数会不一样,还有一个办法就是不勾选Name,楼主可以试一下!
作者: purify_jj    时间: 2008-9-22 14:32
谢谢楼上,试过还是一样的结果,另外我想在这里,for each atction 和for each test应该是一样的,因为在这个test中,总共就一个action,和陈老师给的代码相比,就是RandomNumber(0,ItemCount)这个函数里面的参数itemCount有不同了,但想想在(0,ItemCount)里选一个,和在(0,100)里先一个应该是一样的效果啊,这里总航班也没有超过100.
作者: rcpp    时间: 2008-9-22 14:52
这个问题以前有人问过我
现在lz又问起,我觉得有必要写一写了
http://www.51testing.com/?166993 ... e_itemid_93390.html
作者: purify_jj    时间: 2008-9-22 15:15
看了,这样解释能够理解,但有疑惑的地方是,为什么代码方式下,就可以随机呢?产生随机数的道理是一样的,用的函数都是同一个,照理说手动和代码也不应该有区别才是
作者: rcpp    时间: 2008-9-22 15:27
标题: 回复 10# 的帖子
成因不是很清楚,可能是qtp在RandomNumber对象的代码上存在某些问题
由于看不到代码,只能就此作出黑盒分析了
作者: purify_jj    时间: 2008-9-22 15:44
呵呵,谢谢热心的rcpp~刚刚开始接触,还有很多似懂非懂的问题,以后多多指教哦,陈老师的书写得还比较好懂,打算先看完,然后再把自带的tutorial做一遍,把基础的弄明白了再说~
作者: gavin.chen    时间: 2008-9-22 16:16
这是QTP的随机对象的一个缺陷,苛刻点说这个对象的实现是有严重的bug。

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

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

把这个无耻的随机数对象多调用一次就可以了。
作者: purify_jj    时间: 2008-9-22 16:26
哈哈,这个QTP随机对象真的是够“无耻”的~~
谢谢gavin.chen
在大家的帮助下,每天积累一小步~




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