51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6080|回复: 39
打印 上一主题 下一主题

[原创] 一个参数取值多个范围时,如何做参数化?(已解决,感谢xueying1123和skyzhu两位)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-6 11:07:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本中一个参数x,它的取值范围有多个,如200~400、2000~4000、-400~-200、……,要求在这些范围内随即取一个值,参数化时应该如何实现?

在补充一下,另一个参数y,如果x取200~400,y就取300~500;x取-400~-200,y取-600~-300;x取2000~4000,y取3000~6000;……以此类推(x和y的取值都没有规律,前面只是举个例子),x每取一个范围,y也要在一个与它对应的范围内取值,这样做x和Y的参数化又该如何做呢?

[ 本帖最后由 lxlye 于 2010-8-10 14:14 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-8-6 11:16:25 | 只看该作者
反正都数字,最简单的办法就是Excel里全拖出来
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-8-6 11:17:37 | 只看该作者
Excel里全拖出来,类型random
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-8-6 11:24:09 | 只看该作者
和我想的一样,但感觉太笨了 哪位高手有更好的办法?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-8-6 11:32:08 | 只看该作者
不是为难大家,确实是遇到这样的问题,期待高手们的帮助。不胜感激!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-8-6 11:40:42 | 只看该作者
其他办法也不一定好,最多就是先以一个参数来随机参数名,然后根据随机到的参数名去找对应的参数,其中每个对应的参数都是一个随机数类型的参数
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-8-6 11:50:45 | 只看该作者
谢谢楼上老兄了,实在不行就只能这样了。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-8-6 11:51:18 | 只看该作者
楼主试试这个脚本,看看是不是这个效果

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-8-6 12:00:33 | 只看该作者
支持随机数
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-8-6 13:17:47 | 只看该作者
lr_output_message("%s",lr_eval_string(lr_eval_string("{aaaa}")));

aaaa中参数的内容是其他随机数参数的名称
如  
{aaa1}
{aaa2}
{aaa3}
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2010-8-6 13:46:24 | 只看该作者
原帖由 xueying1123 于 2010-8-6 11:51 发表
楼主试试这个脚本,看看是不是这个效果

非常感谢,完美解决!学习了!加了好友,以后还请多多关照!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-8-6 14:09:05 | 只看该作者
太客气了,共同学习
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2010-8-6 16:43:58 | 只看该作者
忘了random number只支持0以上的数
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-8-6 16:50:29 | 只看该作者
可以随机0一下的数,参数化时在Number format处前面加负号,如图

--------------replay log-----------------
Action.c(8): 选取了第3组范围中的数据
Action.c(26): x is -276;y is -547

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-8-6 17:06:29 | 只看该作者
还可以用rand()这个函数
------------------------------------------------
比如生成-300到400的数据
lr_output_message("%d",(rand()%7000)/9-300);
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2010-8-6 17:11:21 | 只看该作者

回复 14# 的帖子

恩 主要是有跨正负整数的范围 如-200~200
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2010-8-6 17:13:26 | 只看该作者
看样子只能分开来做参数化了
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2010-8-6 17:16:08 | 只看该作者
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}"));
                y=atoi(lr_eval_string("{yGroup1}"));
                break;
        case 2:
                x=atoi(lr_eval_string("{xGroup2}"));
                y=atoi(lr_eval_string("{yGroup2}"));
                break;
        case 3://全负数
                x=atoi(lr_eval_string("{xGroup3}"));
                y=atoi(lr_eval_string("{yGroup3}"));
                break;
        case 4://正负数x取-300~400,y取-500~200
                x=(rand()%7000)/9-300;
                y=(rand()%7000)/9-500;
        }

    lr_output_message("x is %d;y is %d",x,y);


        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2010-8-6 17:27:57 | 只看该作者
恩 明白了
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2010-8-6 18:05:09 | 只看该作者
一句话就行,不用case ,支持多段,否则多了代码都复制傻了。。。。
用参数值来做参数名,维护也方便,另外可以配合唯一数来控制每段的分布数量
正负交错的,设置2个参数就行了,1个负数到-1,1个从0开始
i=atoi (lr_eval_string(lr_eval_string("{aaaa}")));
aaaa的参数值就是
{Group1}
{Group2}
{Group3}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-23 03:25 , Processed in 0.095985 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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