shuishixingyu 发表于 2009-6-18 22:47:08

迭代和虚拟用户

不是很明白迭代和虚拟用户之间的关系,在网上查了一些资料后,自己做了一个实验。
录制一个登陆脚本,在脚本中对用户名进行参数化为:user1、user2....user10,
select next row设为Sequential,update vlaue on设为each iteration
1. 第一次,设为10次迭代,运行脚本后,在数据库中可以查看登陆信息为:user1....user10进行了登录
2. 第二次,设为1次迭代,10个虚拟用户,以2个虚拟用户递增,在controller中运行后,显示的登录信息为user1,user1,user2,user2的形式进行登录。
3. 第三次,设为迭代4次,10个虚拟用户,结果登录信息的用户就开始变成随机的形式的登录,Duration没有设置
于是,就更不明白这里面的关系了
请问
1. 虚拟用户登录时取参数化的用户名是怎么取的?是随机的,还是说第一个虚拟用户取user1,第二个虚拟用户取user2,这样以此类推,或者是并发的两个用户都取user1,第二个并发用户取user2?而且迭代的时候又是取什么值呢?
2. 照网上说的第三种方式相当于有40个用户登录,可是观察的登录次数是超过40的,这又是怎么照成的呢?

木可 发表于 2009-6-18 23:21:20

貌似这个问题比较复杂~~
参数取值的组合情况很多的,
当 update vlaue on设为each iteration,如果select next row设为Sequential那么参数的取值是顺序的,这是参数的取值只和iteration的迭代次数有关,也就是有几次迭代就会取几次值,这个就是你上面的第一种情况,在这种情况下,如果你在一个action里对同一个参数多次取值时则在一次iteration里每次取得的值都参数列表中的第一个值,直到第二次迭代时参数列表中的第二个值才会被取到,依此内推,当参数列表中的值被取完了时取值会再从第一个值开始循环。建议你在action中只放两条lr_eval_string ("{{Param}}");打开扩展日志将每种取值的组合情况运行下。

shuishixingyu 发表于 2009-6-19 09:42:56

你说的是在脚本运行时,取得参数值的情况,如果在controller中设置虚拟用户后,又是怎么取参数值的呢?,如果按照每两个虚拟用户递增,会不会出现在前两个虚拟用户还未运行完,后两个虚拟用户开始运行,结果就照成虚拟用户取参数值随机这种情况出现?

木可 发表于 2009-6-19 13:30:31

如果select next row设为Sequential,每个vuser的取值都是从第一个参数值开始取的,和用户递增没关系的

shuishixingyu 发表于 2009-6-19 22:46:35

哦,是这样啊,谢谢啊
页: [1]
查看完整版本: 迭代和虚拟用户