yutianl 发表于 2010-1-11 09:58:15

参数化时各种名词的意义??

在脚本中对变量进行参数化时,对各种名词的意思一直搞不清楚具体是什么意思
比如:一个username参数,在一个脚本中出现了两次,使用file类型参数化,username.dat中共有200行数据。200个虚拟用户跑5分钟。

参数化中,
每次迭代:指1个用户运行一遍脚本,还是200个用户运行一遍脚本?
每次循环:又是哪个?
每次遇到:不论是否在一个脚本中,是否是哪个虚拟用户,只要遇到就改变?

顺序取值(sequential):是200个用户都从第一行顺序取,还是第一用户取第一行,第二个用户取第二行?
随机(random):是在每次运行时随机,还是200个用户每个用户之间都是随机的?
唯一(unique):看说明中,似乎也是顺序取值的,而不是全程取唯一数?
same line as username 也不太明白。
希望哪位能给解释一下,多谢!

云层 发表于 2010-1-11 12:36:55

迭代是指每个用户只要出现一次新的interation则取值,而循环指多次取值,once是只取一次

顺序取值是指每个用户都从第一行开始取,取到最后再回到开始,用户和用户都一样
随机是每个都随机
unique是你要的每个用户之间的数据都分块不同
same line as 是指按照某一个参数取值的行来计算这个参数的行

内容很多,你可以参考我书中有关于参数化的章节,这个章节应该是免费试读的章节有详细介绍

yutianl 发表于 2010-1-11 15:43:57

找了云层的书,参数化这一章不是试读的,看来想看只能去买了。
迭代和循环的区别还是不太清楚,能举个例子吗?once的只取一次,是每个用户只取一次,还是所有用户都只取一次,取哪次?

顺序、随机和unique都明白了,“same line as 是指按照某一个参数取值的行来计算这个参数的行”还不太清楚:(
望斑竹再赐教一下

云层 发表于 2010-1-11 18:01:05

额,抱歉看来我记错了,我记得是这个安排成免费的,呵呵

这样说吧,迭代在lr中只有2种方式产生,
1在runtime setting中的run logic设置,可以在run上面设置迭代次数
2.在场景中设置场景的执行时间是持续的
这两种方式在脚本中都会产生start interation事件,这个是迭代
循环就简单了,比如for()就是循环

same line as可以这样说,我有两个参数一个参数的值是a,b,c另外一个参数是1,2,3
那么我设置参数Param1指向abc为随机取值,而另一个参数param2指向123,用same line as param1
当param1取值为b,也就是第二行的时候,param2也会取得第二行 值2
一般我们具体用,都是用一个表多个列,然后参数绑同表多列,来实现两个参数取值同行的效果的

yutianl 发表于 2010-1-12 12:54:25

明白了。多谢

yutianl 发表于 2010-1-12 15:45:31

看了一个文档里的说明:
◆Each Occurrence:在运行时, 每遇到一次该参数, 便会取一个新的值
◆Each iteration:运行时, 在每一次循环中都取相同的值
◆Once:运行时, 在每次循环中, 该参数只取一次值
这里面“在每一次循环中都取相同的值”,“在每次循环中, 该参数只取一次值”岂不是一个意思?

yutianl 发表于 2010-1-12 15:51:52

找到LoadRunner的官方文档,终于搞清楚了。

每次出现 Each Occurrence
“每次出现”方法指示 Vuser 在每次参数出现时使用新值。当使用同一个参数的
几个语句不相关时,该方法非常有用。例如,对于随机数据,在该参数每次出现
时都使用新值可能是非常有用的。
每次迭代 Each iteration
“每次迭代”方法指示 Vuser 为每次脚本迭代使用新值。如果一个参数在脚本中
出现了若干次,则 Vuser 为整个迭代中所有出现的该参数使用同一个值。当使用
同一个参数的几个语句相关时,该方法非常有用。
注意:=如果用来创建操作块的参数使用它自己的迭代计数,这时如果指示 VuGen
在每次迭代时更新它们的值,则它指的是全局迭代而不是块迭代。有关操作块的
详细信息,请参阅第 110 页的“创建操作块”。
一次 Once
“一次”方法指示 Vuser 在方案运行期间仅对参数值更新一次。Vuser 为所有出
现的该参数和所有迭代使用同一个参数值。当使用日期和时间时,该类型可能会
非常有用。

yutianl 发表于 2010-1-12 15:57:16

另外,还不是特别清楚“迭代”,是不是一个Vuser运行一遍脚本,就是一次迭代,而与具体哪个Vuser无关?
比如5个Vuser迭代10次,那么每个Vuser脚本的迭代编号都是从1到10?还是第一个Vuser迭代编号1-10,第二个Vuser11-20?

森林一木 发表于 2010-1-12 17:27:40


lr_output_message("第一次取值为:%s",lr_eval_string("{test}"));

lr_output_message("第二次取值为:%s",lr_eval_string("{test}"));

自己测试一下,尝试着找找规律。

lr学习需要多实践的
页: [1]
查看完整版本: 参数化时各种名词的意义??