msnshow 发表于 2010-8-6 21:14:16

其实就是一个条件判断嘛,另外最简单的方法,就是做几个相同的action,取不同的参数值,让action随机运行就行了

LR本来就支持随机,没有必要自己写随机函数之类的

lxlye 发表于 2010-8-9 09:21:55

原帖由 skyzhu 于 2010-8-6 18:05 发表 http://bbs.51testing.com/images/common/back.gif
一句话就行,不用case ,支持多段,否则多了代码都复制傻了。。。。
用参数值来做参数名,维护也方便,另外可以配合唯一数来控制每段的分布数量
正负交错的,设置2个参数就行了,1个负数到-1,1个从0开始
i=atoi...

这个方法我想过,但我要做的参数化包括两个参数,且是相互影响的。比如x和y,x取值范围300~500,那么y对应的就是400~600,而x如果取600~800,那么y对应的要取700~900,x和y的取值范围都是多个且药相互对应。所以还是需要case。或者skyzhu,你有其他更简单的方法?

skyzhu 发表于 2010-8-9 10:00:31

回复 22# 的帖子

稍微变化一下就行了
x=atoi (lr_eval_string(lr_eval_string("{aaaa}")));
y=atoi (lr_eval_string(lr_eval_string("{bbbb}")));
aaaa设置随机,bbbb设置与aaaa同行
aaaa的参数值就是
{Group1a}300~500
{Group2a}600~800
{Group3a}
bbbb的参数值就是
{Group1b}400~600
{Group2b}700~900
{Group3b}

ryugun 发表于 2010-8-9 11:16:37

学习了。。很受用

lxlye 发表于 2010-8-9 11:32:54

回复 23# 的帖子

恩 也可以,还有个问题,比如用你上面的方法,x和y我把它们转换成参数后添加到脚本中,这时脚本中有多个地方需要这两个参数,又该怎么做才能每次脚本中用到这两个参数都取一次新的值呢?

[ 本帖最后由 lxlye 于 2010-8-9 11:37 编辑 ]

skyzhu 发表于 2010-8-9 13:19:03

回复 25# 的帖子

这是LR基本功能
参数设置   update value on :    each occurence

lxlye 发表于 2010-8-9 13:38:31

回复 26# 的帖子

楼上能不能给个完整的脚本?我这里怎么就不能随机取值呢?

skyzhu 发表于 2010-8-9 14:10:08

原帖由 lxlye 于 2010-8-9 13:38 发表 http://bbs.51testing.com/images/common/back.gif
楼上能不能给个完整的脚本?我这里怎么就不能随机取值呢?


还好最近不忙,否则也没空弄了,看附件吧,每次都不一样的
如果x 1-50,那y 51-100
      101-150,那y 151-200
      201-250,那y 251-300

lxlye 发表于 2010-8-9 15:25:54

回复 28# 的帖子

恩 辛苦了 我也是这样实现的,可是现在我不知道怎么将参数化出来的值引到以后的脚本中。从而达到参数化的作用。而且引用进去后,每次使用都是随机的值。
我是用lr_save_int将x和y的值转换成参数,用到以后的脚本中,可这样后面脚本多个地方用的是固定不变的数。
比较菜,也许不是个问题,可现在确实不知道怎么弄,请指点!

skyzhu 发表于 2010-8-10 09:34:08

lr_save 要在每个使用的地方之前都调用一次
否则你读的不就都是同一个临时参数里的内容了,临时参数和变量没什么区别,不会自己变

lxlye 发表于 2010-8-10 09:37:38

:L   那就麻烦了!

lxlye 发表于 2010-8-10 09:52:16

有没有其他办法?我直接获得随机值然后用到以后的脚本中。

lxlye 发表于 2010-8-10 10:59:30

原帖由 xueying1123 于 2010-8-6 17:16 发表 http://bbs.51testing.com/images/common/back.gif
Action()
{
        int i;
        int x;
        int y;

        i=atoi(lr_eval_string("{GroupCount}"));
        lr_output_message("选取了第%d组范围中的数据",i);

        switch(i)
        {
        case 1:
                x=atoi(lr_eval_string("{xGroup1}")) ...
用这个脚本怎么才能在以后脚本中用到此参数的所有地方都取随机的而不是固定的一个值呢?

skyzhu 发表于 2010-8-10 11:53:24

都是要重复调用的,这是你用这么复杂的随机数的代价
每个地方都先调用一次算简单的了,或者你可以自己写C的dll,然后用自定义function参数

lxlye 发表于 2010-8-10 12:42:38

回复 34# 的帖子

恩 谢谢!就这样吧!

xueying1123 发表于 2010-8-10 13:50:35

如skyzhu所说,要达到每次引用都随机取值的目的,是需要重复调用;

----------------------------------
void getXY()
{

        int i,x,y;
                   
        i=atoi(lr_eval_string("{GroupCount}"));//Update Value on "each occurrence"
        lr_output_message("选取了第%d组范围中的数据",i);

        switch(i)
        {
        case 1:
                x=atoi(lr_eval_string("{xGroup1}"));//Update Value on "each occurrence"
                y=atoi(lr_eval_string("{yGroup1}"));//Update Value on "each occurrence"
                break;
        case 2:
                x=atoi(lr_eval_string("{xGroup2}"));//Update Value on "each occurrence"
                y=atoi(lr_eval_string("{yGroup2}"));//Update Value on "each occurrence"
                break;
        case 3://全负数
                x=atoi(lr_eval_string("{xGroup3}"));//Update Value on "each occurrence"
                y=atoi(lr_eval_string("{yGroup3}"));//Update Value on "each occurrence"
                break;
        case 4://正负数x取-300~400,y取-500~200
                x=(rand()%7000)/9-300;
                y=(rand()%7000)/9-500;
        }

        lr_save_int(x,"x");
        lr_save_int(y,"y");
       
}



Action()
{
       
        getXY();
        lr_output_message("第一次调用:x is %s;y is %s",lr_eval_string("{x}"),lr_eval_string("{y}"));

        getXY();
        lr_output_message("第二次调用:x is %s;y is %s",lr_eval_string("{x}"),lr_eval_string("{y}"));

        getXY();
        lr_output_message("第三次调用:x is %s;y is %s",lr_eval_string("{x}"),lr_eval_string("{y}"));

        getXY();
        lr_output_message("第四次调用:x is %s;y is %s",lr_eval_string("{x}"),lr_eval_string("{y}"));

        return 0;
}

lxlye 发表于 2010-8-10 13:58:56

回复 36# 的帖子

我需要用到这些参数的地方太多了,重复调用的话麻烦死了。
不管怎么样,谢谢两位了。

felix87 发表于 2010-8-12 13:48:59

不错,学习思路

yanjy 发表于 2010-8-17 15:16:26

不错,收藏了

大漠飞鹰 发表于 2010-11-7 10:04:29

设置两个参数,一个参数采用随机,另一个参数采用和参数一同行取值。
页: 1 [2]
查看完整版本: 一个参数取值多个范围时,如何做参数化?(已解决,感谢xueying1123和skyzhu两位)