LoadRunner 参数化多用户“唯一”取值规则测试

转载:https://www.sohu.com/a/138141159_680421

在 LoadRunner 里面 参数化取值依赖两个基本维度:

1 取值顺序 要分成 [顺序][随机]和[唯一]

2 更新时刻 要分成 [每次迭代][每次出现]和[仅一次]

还有一个附加维度:

3 当参数不够用时的补救策略 分成[从头再来][凑合使用最后一个][放弃部分用户]

按照基本维度排列组合一下 会产生九种组合 而无法一眼看穿的 则只有[唯一]这个选项

所以我就单独说一下[唯一]这个取值规则

part1 测试脚本

测试中使用的脚本如下:

Action()

{

inti =0;

for(i=0;i<3;i++){

lr_eval_string("{paramtemp}");

}

lr_eval_string("{paramtemp}");

return0;

}

以上代码 运行一次叫做一个迭代 每个用户每个迭代中 参数 paramtemp 会出现 4 次

本次测试设置 3 次迭代 所以每个用户的参数 paramtemp 就会出现 12 次

下面我把该脚本的实际运行结果展示出来

part2 单用户运行

2.1 唯一 + 每次迭代(4 次出现 3 次迭代)

这个组合在单用户的情况下 并看不出效果

2.2 唯一 + 每次出现(4 次出现 3 次迭代)

这个组合在单用户的情况下 也看不出效果

2.3 唯一 + 仅一次(4 次出现 3 次迭代)

这个组合在单用户的情况下 也看不出效果

part3 多用户运行

在多用户的情况下来解释“唯一”

“唯一”的意思是 针对每一个参数而言 它只能属于唯一的用户

比方说 如果某个参数给 user1 使用了 那么它就不可以被 user2 取用

而实现这个规则的途径 就是参数分段

本次测试设置 5 个用户 每个用户的参数 paramtemp 会出现 12 次

每个用户都独立存活在自己的世界里 它们并不知道其它人在干什么

下面我把该脚本的实际运行结果展示出来

3.1 唯一 + 每次迭代(5 个用户 4 次出现 3 次迭代)

脚本迭代 3 次 更新发生在每次启动一个新迭代的时候 所以每个用户需要 3 个参数

将第 1 - 第 3 个参数分给 user1 使用

将第 4 - 第 6 个参数分给 user2 使用 后面的以此类推

所以参数按 3 来分段 就可以保证实现“唯一”规则了

那么就有人要问了 如果 5 个用户 每个用户分段分到了 20 个参数 (取用 3 个 闲置 17 个)

一共需要 100 个参数 参数表里面只准备了 60 个参数 不够用 怎么办?

我选择了在参数不够用的情况下 放弃部分用户

也就是说 参数表里面的 60 个参数 按 20 分段 只能支持 3 个用户 需要放弃 2 个用户

运行结果如下:

3.2 唯一 + 每次出现(5 个用户 4 次出现 3 次迭代)

脚本迭代 3 次 每次迭代中参数出现 4 次

更新发生在每次参数出现的时候 所以每个用户要用到 12 个参数

所以参数按 12 来分段 5 个用户 总共准备 60 个参数

就可以保证实现“唯一”规则了

那么又有人要问了 每个用户需要 12 个参数才够用

如果按照 8 来分段 那就不够用了 不够用怎么办呢?

我选择了在参数不够用的情况下 取用最后一个参数

也就是说 每个用户只能取到 8 个值 剩下 4 个就“凑合”使用最后那个值

运行结果如下:

3.3 唯一 + 仅一次(5 个用户 4 次出现 3 次迭代)

在这种组合下 与分段相关的选项是置灰的:

这个组合的意思是:

每个值只能给一个用户取用 用户取好值之后打死也不再更新了

这样子运行起来 要么是参数的数量比用户的数量多 正常取值就行了

要么是参数的数量比用户的数量少 参数不够用的话 直接报错就行了

因此 无论参数够不够用 都不需要给参数分段

part4 关于自动分段

在讨论[唯一]这个规则的时候 你会发现一个问题:

这是为什么呢?我想了半天。。。

后来我发现 之所以想晕了 是因为问题的描述有问题。。。

这个问题应该这么来想:

这样就能分析了:

如果是[唯一 每次迭代] 迭代次数是设置好的 所以自动分段可以按照迭代次数来实施

比方说 脚本迭代 5 次 那么自动分段就默认按照 5 来分就可以了

如果参数够用 则不会闲置 如果参数不够用 允许你选择不够用时的补救策略

当然你也可以手动分段 假如按照 8 来分段的话 无非就是每段里面闲置 3 个参数而已

假如按照 3 来分段的话 后面 2 次迭代没有合适的参数 你也要选择不够用时的补救策略

如果是[唯一 每次出现] 脚本里面参数出现了多少次 是 LoadRunner 无法获知的

比方说上面那段测试脚本 你循环变量高兴写几就写几 你没有办法通知到 LoadRunner

LoadRunner 不知道参数会出现多少次 所以它也就不知道参数应该如何分段才够用

这样子你就必须手动分段

PS:图文并茂的原创文章写得很累,所以最接推一些学生的原创文章。

原文地址:https://www.cnblogs.com/qiaoli0726/p/10535898.html