LoadRunner参数化---数据文件属性 之 数据分配方法和数据更新方法

本人初学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在所有的循环中都使用同一个值(只取一次)

 

参考例子
假设文件中包括以下值: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

..

如果选择顺序+遇到

 

迭代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

如果选择顺序+一次

 

迭代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是在脚本中出现该参数的次数)

posted on   Lemon_s  阅读(1201)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

导航

< 2008年10月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示