在 LoadRunner 场景中有几个随机源:
rand
() 功能- 随机思考时间增量(运行时设置)
- 随机起搏时间组件(运行时设置)
- 随机参数(作为 VUGen 测试的一部分)
我使用这些功能,我可以忍受它们的伪随机性。但是,我不能接受这样一个事实,即包含至少其中一个功能的所有场景运行都是伪随机且不确定的,即对于给定的开始状态(随机种子),我希望两次运行生成完全相同的负载,包括时间(步调和思考时间)。所以我希望两次运行都基于完全相同的随机序列。这意味着我想自己播种所有随机生成器,作为每次运行初始化的一部分。
我可以使用srand
() 为 () 设置种子值rand
。在初始化时设置一个特定的(硬编码的)种子值总是导致由rand
() 传递的相同序列——对于所有虚拟用户。如果我使用 VUser ID 号播种,我什至会rand
为每个 vuser 获得不同的 () 序列,而对于每个用户,它们从运行到运行仍然是相同的。
LR 中的其他伪随机源,那些超出rand
() 的呢?我是否有机会将它们全部播种,以便获得确定性的场景行为?
我认为这将有很大帮助。
如果没有这样的机制,就必须计划很长时间和/或非常高流量的测试场景,以便“平均”结果统计中的随机性(你同意这一点吗?),我整天都在做。