51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2460|回复: 3
打印 上一主题 下一主题

[原创] 关于loadrunner 并发时脚本取得唯一值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-6 12:01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手,我有一个问题:
我在测试并发时的场景设计是这样的:每10S增加5个用户,运行3分钟后停止所有用户
部分脚本,需要给rowinfoid的数据加comments:
web_reg_save_param("taskid",
         "LB=<input type=\"hidden\" name=\"rowinfoid\" value=\"",
         "RB=\">",
         "Ord=ALL",
         LAST);

count=atoi(lr_eval_string("{taskid_count}"));
srand(time(NULL));
 rand_id=rand()%count+1;
 sprintf(task,"{taskid_%d}",rand_id);
  lr_save_string(lr_eval_string(task),"taskid2");
我取的是随机值,回放时没有问题,但是在场景运行中就有问题了
因为有5个用户同时加载,所以有时候会出现几个用户同时同一个rowinfoid的数据写comments

如果换成以下代码
count=atoi(lr_eval_string("{taskid_count}"));
for(i=1;i<=count;i++){
                  sprintf(task,"{taskid_%d}",i);
                  sprintf(task1,"%s",lr_eval_string(task));
          }

lr_save_string(task1,"taskid2");
每次取的值都是最后一个,如果同时加载几个用户,也会出现为同时同一个rowinfoid的数据写comments的情况
但是每隔一段时间加载用户就不会出现这种情况
我的问题是:
有没有可能在同时我的场景中(每10S增加5个用户,运行3分钟后停止所有用户)用代码实现,每运行一次脚本,取不同的rowinfoid值呢?
偶是脚本菜鸟,请高手们指点指点

[ 本帖最后由 hand_smile 于 2008-5-13 17:32 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-5-6 15:26:37 | 只看该作者
有没有人解答下我的问题呀?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-6 16:54:18 | 只看该作者
srand() 这一步的值 用参数化的数值代替呗 或者用lr_whoami 里面的vuser_id 代替
总之伪随机数是靠不住地
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-5-13 17:31:16 | 只看该作者
按照楼上的方法改进,并发时能取不同值了,多谢楼上的
脚本,贴出来
Action()
{
          int count;
        int i,rand_id;
        char task[50];
        char task1[50];
         int vid, scid;
        char *vuser_group;

lr_whoami(&vid, &vuser_group, &scid);
lr_message( "Group: %s, vuser id: %d, scenario id %d", vuser_group, vid, scid);

count=atoi(lr_eval_string("{T0_count}"));
    srand(vid);
        rand_id=rand()%count+1;
          lr_output_message("rand number is %d",rand_id);
                sprintf(task,"{T0_%d}",rand_id);
         sprintf(task1,"%s",lr_eval_string(task));
      lr_save_string(task1,"taskid2");

不过这个函数lr_whoami(&vid, &vuser_group, &scid);最后的scenario id  什么时候用?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-21 08:09 , Processed in 0.075295 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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