51Testing软件测试论坛

标题: 可不可以设置所有VUser公用的变量? [打印本页]

作者: rayhong    时间: 2007-12-7 11:39
标题: 可不可以设置所有VUser公用的变量?
情况是这样的,服务器接受的请求中,必须有一个变量是一个序列号,第一个请求时是1,第二个是2....

可不可以设一个公用的变量,当虚拟用户用完它时,就把它的值加一,以便下一个用户用它?
作者: stone0214    时间: 2007-12-7 11:50
如果所有的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
同意二楼的看法
作者: rayhong    时间: 2007-12-7 12:46
谢谢,不过,不是这样。

这样每一个虚拟用户得到的都是从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
额...
等待其他大大解决当中...
作者: Zee    时间: 2007-12-7 13:45
直接参数化就可以,每个用户取不同的值,然后给他们分配数据块。比如:
用户1取:1-10
用户2取:11-20
………………
这样应该可以。

参数化完成后,不会出现像你说的某个用户快,就不按照设置而随机取值(取随机值也是要设置的)。
作者: stone0214    时间: 2007-12-7 13:49
标题: 回复 6# 的帖子
不知道参数化设置的时候具体怎么设置?

好象LZ是要所有的取值功能在一个脚本里完成...
作者: Zee    时间: 2007-12-7 13:55
就是在一个脚本里,详细看一下帮助中的参数化部分。就明白了。
作者: rayhong    时间: 2007-12-7 14:23
原帖由 Zee 于 2007-12-7 13:45 发表
直接参数化就可以,每个用户取不同的值,然后给他们分配数据块。比如:
用户1取:1-10
用户2取:11-20
………………
这样应该可以。

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


直接分块不行。要求是无论是谁要请求服务,在服务器端一定要见到发过来的请求,是带有一个序列号,而且是要按顺序的。服务器端有个计数器,它被请求过一次就加1,下一个请求必须要提供正确的序列号,如果不对,就会失败。是MQ中的应用。
作者: rayhong    时间: 2011-10-12 01:47
今天看回来,这个问题又解决了。用VTS. Wilsonmar那里有。
作者: superwang001    时间: 2011-10-12 10:24
可以用参数,也可以直接设置公共变量,在action外设置




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