51Testing软件测试论坛

标题: 参数化-数据文件属性之数据分配方法和数据更新方法 [打印本页]

作者: Lemon_s    时间: 2008-10-28 10:51
标题: 参数化-数据文件属性之数据分配方法和数据更新方法
本人初学LR的时候对这块挺困惑的,当时收集了一些相关资料,现整理了一下发出来,相信对刚刚接触到LR的朋友有点作用。


数据分配方法(Select next row)


"Select next row" 列表选项包括"Sequential(顺序)"、"Random(随机)"、"Unique(唯一)"、"Same Line as <parameter>(与以前定义的参数取同一行)"


1>Sequential:该方法顺序地向Vuser分配参数值。当正在运行的Vuser访问数据表的时候,它将会提取下一个可用的数据行。也就是说,按着顺序一个一个取,取了第一行再取第二行,取了第二行取地三行,一次类推。如果在数据表中没有足够的值,则VuGen返回到表中的第一个值,循环直到测试结束。

2>Random:该方法为每个Vuser分配一个数据表中的随机值。比如当前数据表中有100行数据,那么随机数就从1~100之间任取一个,作为行号,去取相应行的参数值数据。

3>Unique:该方法为每一个Vuser的参数分配一个唯一的顺序值。

在这种情况下,必须保证表中的数据对所有的Vuser和它们的迭代是充足的。如果拥有20个Vuser,并且要运行5次迭代,则表中必须至少包含100个唯一值。

超出范围之后可以在When out of values中设置

Abort Vuser-中止

Continue in a cyclic manner-继续循环取值

Continue with last value-取最后一个值

4>Same Line As <parameter>:该方法与以前定义过的参数中同样的一行分配数据,必须制定包含有该数据的列。下拉列表中会出现定义过的所有参数列表。至少其中的一个参数必须是Sequential、Random或Unique

如果数据表中有2列,2个参数定义在列表中,id和password,如下:

id          password

------      ---------

admin       admin888

guest       guest888

...

对于参数id,可以制定Vuser使用Random,而参数password就可以指定方法“Same Line as id”,这样一旦id "admin"被使用,那么,password "admin888"就同时被使用。


上面的Select next row指的是怎么取新值,这里的Update value on指的是什么时候取新值


数据更新方式(Update value on)


"Update value on" 列表中选择一个数据更新方式,以指示在Vuser脚本执行期间,指定如何更新参数值。选项包括"Each iteration(每次迭代)"、"Each occurrence(每次出现)"、"Once(一次)"


1>Each iteration:该方法指示Vuser在每次脚本迭代时使用新值。如果一个参数在脚本中出现了若干次,则Vuser为整个迭代中该参数的所有出现使用同一个值(在同一个迭代中,无论读几次参数,获得的都是同一个参数值)。

2>Each occurrence:该方法指示Vuser在每次参数出现时使用新值(在同一个迭代中,读一次参数,就要取其新值,新值从哪来,由Select next row来规定)。

3>Once:该方法指示Vuser在所有的循环中都使用同一个值(只取一次)


[ 本帖最后由 Lemon_s 于 2008-11-7 11:23 编辑 ]
作者: Lemon_s    时间: 2008-10-28 10:52
标题: 参考例子
参考例子:
假设文件中包括以下值:a, b, c, d, e, f …..
脚本中有两个参数取文件中的值,设置三个虚拟用户,每个用户迭代4次

如果选择顺序+迭代
迭代1
迭代2
迭代3
迭代4
User1
aa
bb
cc
dd
User2
aa
bb
cc
dd
User3
aa
bb
cc
dd

如果选择随机+迭代
迭代1
迭代2
迭代3
迭代4
User1
bb (都为随机数,不一定取值是这个顺序)
ff
dd
cc
User2
cc
bb
ee
aa
User3
aa
ee
dd
bb

如果选择唯一+迭代
迭代1
迭代2
迭代3
迭代4
User1
aa
dd
User2
bb
ee
User3
cc
ff
..


作者: Lemon_s    时间: 2008-10-28 10:53
如果选择顺序+遇到
迭代1
迭代2
迭代3
迭代4
User1
ab
cd
ef
gh
User2
ab
cd
ef
gh
User3
ab
cd
ef
gh

如果选择随机+遇到
迭代1
迭代2
迭代3
迭代4
User1
ae (都为随机数,不一定取值是这个顺序)
bf
ed
bh
User2
cb
User3
ab

如果选择唯一+遇到
迭代1
迭代2
迭代3
迭代4
User1
ad
User2
be
User3
cf

作者: Lemon_s    时间: 2008-10-28 10:53
如果选择顺序+一次
迭代1
迭代2
迭代3
迭代4
User1
aa
aa
aa
aa
User2
bb
bb
bb
bb
User3
cc
cc
cc
cc

如果选择唯一+一次
迭代1
迭代2
迭代3
迭代4
User1
aa
aa
aa
aa
User2
bb
bb
bb
bb
User3
cc
cc
cc
cc

如果选择随机+一次
迭代1
迭代2
迭代3
迭代4
User1
cc
cc
cc
cc
User2
ee
ee
ee
ee
User3
bb
bb
bb
bb

数据量:
如果选择唯一+迭代= m*n (m是虚拟用户数,n是迭代次数)
如果选择唯一+遇到= m*n *i(m是虚拟用户数,n是迭代次数,i是在脚本中出现该参数的次数)

作者: mr.bee    时间: 2008-10-28 13:13

我也写过一个类似的
作者: zhangdong    时间: 2008-11-7 11:11
学习了
作者: yetties2005    时间: 2008-11-7 11:19
收录了.
作者: 懵懂的女孩    时间: 2008-11-8 10:23
楼主,可不可以把这个在讲清楚一点啊
作者: kimber    时间: 2008-11-10 14:20
太感谢楼主了!
作者: archonwang    时间: 2008-11-11 11:46
很好的处理技巧。学习。谢谢
作者: dujun    时间: 2008-11-11 15:19
到处都能见到楼主啊 哈哈
作者: maosilu    时间: 2012-11-18 15:55
学习了




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