rayhong 发表于 2007-12-7 11:39:55

可不可以设置所有VUser公用的变量?

情况是这样的,服务器接受的请求中,必须有一个变量是一个序列号,第一个请求时是1,第二个是2....

可不可以设一个公用的变量,当虚拟用户用完它时,就把它的值加一,以便下一个用户用它?

stone0214 发表于 2007-12-7 11:50:37

如果所有的vuser用的数据可以是相同的用简单的参数化就能办到.
如果所有的用户要求的东西不一样的话可以通过字符串的拼接...更改下面的pSSOID_raw[],然后把pSSOID用到你想用的ITEM应该就可以了,希望对你有帮助
       char pSSOID_raw[]="test01";
      lr_vuser_status_message(lr_eval_string("Iter:{ITER} ,vUserId : {UserId}"));
       strcat(pSSOID_raw, "_");
       strcat(pSSOID_raw,lr_eval_string("{UserId}"));
       strcat(pSSOID_raw,"_");
       strcat(pSSOID_raw,lr_eval_string("{ITER}"));
       lr_save_string(pSSOID_raw, "pSSOID");
       lr_output_message("SSO Id is %s", lr_eval_string("{pSSOID}"));

板砖 发表于 2007-12-7 11:52:11

同意二楼的看法

rayhong 发表于 2007-12-7 12:46:32

谢谢,不过,不是这样。

这样每一个虚拟用户得到的都是从1开始的。

我是想,如果有3个并发用户,
第一个循环,
用户1 拿到1
用户2 拿到2
用户3 拿到3

第二个循环,
用户1 拿到4
用户2 拿到5
用户3 拿到6

或者,如果用户2在第一个循环里执行的比较快的话,情况就会是
第二个循环,
用户2 拿到4
用户1 拿到5
用户3 拿到6

stone0214 发表于 2007-12-7 13:06:26

额...:L
等待其他大大解决当中...

Zee 发表于 2007-12-7 13:45:06

直接参数化就可以,每个用户取不同的值,然后给他们分配数据块。比如:
用户1取:1-10
用户2取:11-20
………………
这样应该可以。

参数化完成后,不会出现像你说的某个用户快,就不按照设置而随机取值(取随机值也是要设置的)。

stone0214 发表于 2007-12-7 13:49:00

回复 6# 的帖子

不知道参数化设置的时候具体怎么设置?

好象LZ是要所有的取值功能在一个脚本里完成...

Zee 发表于 2007-12-7 13:55:54

就是在一个脚本里,详细看一下帮助中的参数化部分。就明白了。

rayhong 发表于 2007-12-7 14:23:47

原帖由 Zee 于 2007-12-7 13:45 发表 http://bbs.51testing.com/images/common/back.gif
直接参数化就可以,每个用户取不同的值,然后给他们分配数据块。比如:
用户1取:1-10
用户2取:11-20
………………
这样应该可以。

参数化完成后,不会出现像你说的某个用户快,就不按照设置而随机取值(取随 ...

直接分块不行。要求是无论是谁要请求服务,在服务器端一定要见到发过来的请求,是带有一个序列号,而且是要按顺序的。服务器端有个计数器,它被请求过一次就加1,下一个请求必须要提供正确的序列号,如果不对,就会失败。是MQ中的应用。

rayhong 发表于 2011-10-12 01:47:37

今天看回来,这个问题又解决了。用VTS. Wilsonmar那里有。

superwang001 发表于 2011-10-12 10:24:23

可以用参数,也可以直接设置公共变量,在action外设置
页: [1]
查看完整版本: 可不可以设置所有VUser公用的变量?