gpt4 book ai didi

testing - vars.putObject 和 vars.getObject 是否在 jmeter 中消耗额外的内存

转载 作者:行者123 更新时间:2023-11-28 21:19:32 28 4
gpt4 key购买 nike

我有一个看起来像这样的测试计划

Test plan
Jsr223 sampler
{
def lst = [100 elements];
vars.putObject("lst",lst);
}
loop controller(100 times)
{
Http request
preprocessor
{
lst = vars.getObject("lst");
}
}

现在,预处理器中的 lst 使用与 jsr223 采样器中 lst 相同的内存,还是创建新内存并使用。Q2) 另一个问题是,预处理器中的 lst 内存是否在每次迭代时被清除,或者它是否为每次迭代创建新内存。

最佳答案

在您的设置中,您总是引用位于 JMeterVariables 中的同一对象类实例,它既不分配新的内存部分,也不在新的迭代期间释放它。

但是请注意,每个 JMeter 线程(虚拟用户) 都会在其 local storage 中包含此对象所以对于 1 个线程,你将有 1 个实例,对于 2 个线程 - 2 个实例。

因此,如果您有 > 1 个线程并在所有线程中使用相同的对象 - 最好使用 props 而不是 vars,根据 documentation :

Properties are not the same as variables. Variables are local to a thread; properties are common to all threads

如果你想手动清除对象使用vars.remove()在需要的地方发挥作用,例如:

vars.remove('lst')

为了减少内存消耗,您可以考虑将您的对象放入 CSV 文件并查找 CSV Data Set Config。它不会将整个文件加载到内存中并且具有灵活的 sharing options跨线程的值。

关于testing - vars.putObject 和 vars.getObject 是否在 jmeter 中消耗额外的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53497263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com