LoadRunner参数化情况分析

来源:互联网 发布:联想网络同传edu8.0.1 编辑:程序博客网 时间:2024/06/05 01:10

LoadRunner参数化详解

本文不讲LoadRunnr参数化具体步骤,只分析参数化的组合情况,并用具体数据来一步步分析各种情况,如果写的有不对的地方或者不明白的地方,请指出!

1. 为什么使用参数化?

在使用LoadRunner录制脚本的时候,只是记录的从客户端发出到服务器的数据,而在脚本回放或者进行性能测试的时候,如果不进行参数化则并没有真正的模拟真实用户操作。因为一些信息需要每次提交不同的数据,这时候就可以用参数化来模拟真实用户操作,而代替不同请求服务器的数据。

2. 参数类型为FIle/Table的参数值更新方式:

在参数化中,有更新方法(Update Value on)和 数据分配方法(Select next row ),两者结合使用,并且相互影响。

2.1 其中Update value on(更新方式) 有三种:
1. Each Iteration(每次迭代) : 每次迭代的时候,根据数据分配方法取值
2. Each Occerrence (每次出现): 每次出现的时候,根据数据分配方法取值
3. Once(一次): 这个比较特殊,一次,既在同一虚拟用户中,第一次的迭代值将作为后续所有迭代的值

2.2 其中Select next row (数据分配方法) 有三种:
1. Sequential(顺序取值) : 从数据表中顺序取值(接着上次取值)
2. Random (随机取值) : 随机的取值
3. Unique(唯一) : 也比较特殊,保证了用户的差异,也就是保证值的唯一

2.3 两者组合

Sequential顺序取值 Random随机取值 Unique唯一 Each Itertion (每次迭代) 针对每次迭代,都会顺序取值 针对每次迭代,都会随机取值 Each Occurrence(每次出现) 参数每次出现,都会顺序取下一个值,即使在同一迭代中 参数每次出现,都会随机取值,即使是在同一迭代中 Once(一次) 第一次迭代出现的值将作为后去所有迭代的值 第一次迭代随机分配的值将作为后续所有迭代的值

一起来分析一下为什么会出现这样的情况吧

3.具体数据演练各种组合情况

– 组合1
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现2次
3. 组合方式:Sequential+Each Iteration
(每次迭代的时候,都会接着上次的值,同一迭代出现多次,不会重新取值

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 aa bb cc dd ee aa 用户2 aa bb cc dd ee aa 用户3 aa bb cc dd ee aa 用户4 aa bb cc dd ee aa 用户5 aa bb cc dd ee aa

– 组合2
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现2次
3. 组合方式:Sequential+Each Occurrence(每次出现都会接着上次取值)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 ab cd ea bc de ab 用户2 ab cd ea bc de ab 用户3 ab cd ea bc de ab 用户4 ab cd ea bc de ab 用户5 ab cd ea bc de ab

– 组合3
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现2次
3. 组合方式:Sequential+ once
(前面提到过,once比较特殊,不做解释)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 aa aa aa aa aa aa 用户2 aa aa aa aa aa aa 用户3 aa aa aa aa aa aa 用户4 aa aa aa aa aa aa 用户5 aa aa aa aa aa aa

– 组合4
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Random + each Iteration

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 e a a e c d 用户2 a c e b e d 用户3 b d a a e a 用户4 a e e b c a 用户5 e a d c e b

– 组合5
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现2次
3. 组合方式:Random + each Occurrence

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 ea aa ac ea ca da 用户2 aa cd ae ba ee dc 用户3 be dd ac ae ba ab 用户4 ea ed bd db cd aa 用户5 ec aa dd ce ea ba

– 组合6
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Random + once

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 ee ee ee ee ee ee 用户2 aa aa aa aa aa aa 用户3 bb bb bb bb bb bb 用户4 dd dd dd dd dd dd 用户5 cc cc cc cc cc cc

– 组合7
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Unique + each Iteration + continue with last value+ Automatically allocate bloce size (当到了某个用户值不够的时候,就将上次迭代的值作为该用户后续迭代的值)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 a b c d e e 用户2 用户3 用户4 用户5

– 组合8
1. 九个参数:a,b,c,d,e,f,g,h,i
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Unique +Each Iteration + continue in a cyclic manner + Automatically allocate bloce size (当到了某个用户值不够的时候,循环取值)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 a b c d e f 用户2 g h i g h i 用户3 用户4 用户5

– 组合9
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Unique + each Iteration + continue with last value+ Allocate 3 values for each Vuser (每个用户分配三个值,当不够分配的时候,最后一次迭代的值将作为后续迭代的值)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 a b c c c c 用户2 d e e e e e 用户3 用户4 用户5

– 组合10
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现2次
3. 组合方式:Unique + each Occurrence + continue with last value+ Allocate 3 values for each Vuser (每个用户分配三个值,当不够分配的时候,最后一次迭代的值将作为后续迭代的值)

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 ab ca bc ab ca bc 用户2 de de de de de de 用户3 用户4 用户5

– 组合11
1. 五个参数:a,b,c,d,e
2. 五个虚拟用户,六次迭代,值在脚本中出现1次
3. 组合方式:Unique + Once

虚拟用户 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 迭代取值 用户1 a a a a a a 用户2 b b b b b b 用户3 c c c c c c 用户4 d d d d d d 用户5 e e e e e e

总结

  1. 不难发现,使用Unique的时候,可能会造成值不够的情况,所以用这个的时候要保证有足够的值能取到。其实使用这个为了保证用户不能在同一时间多处登陆
  2. 而使用sequence的时候,刚好相反,可以保证用户在同一时间多处登陆
  3. 可以看的出Once的权限比较大,一旦使用这个就不用考虑该用户在后续迭代的值了
  4. 不要死记每种组合情况,只要记住六个值的作用就行.
原创粉丝点击