gpt4 book ai didi

caching - JMeter - 何时不使用缓存编译脚本(如果可用)

转载 作者:行者123 更新时间:2023-12-05 04:09:13 25 4
gpt4 key购买 nike

我想在查看的时候知道Cache compiled script if available复选框错误,

正在关注 Best practices有一些情况不应该使用缓存编译脚本,但不使用的例子 ${varName}错了,我做了一个测试,它取的值是 ${varName} 的更新值而不是第一个值。

When using JSR 223 elements, it is advised to check Cache compiled script if available property to ensure the script compilation is cached if underlying language supports it. In this case, ensure the script does not use any variable using ${varName} as caching would take only first value of ${varName}.

有人知道使用缓存是错误的真实案例吗?

编辑

我在脚本中使用 ${varName} 进行检查,使用/不使用缓存都有类似的结果:

我在 Jmeter 中定义了一个名为 aa 的变量值为 1,并创建了一个脚本:

def aa = "2";
aa = "3";
log.info("${aa}");

checkbox 的两种情况下都返回值 1,因此它与缓存无关

也尝试使用 Beanshell(没有 def aa = "2"; 的编译语言)并得到相同的结果。

最佳答案

文档的意思是,每当 ${varName} 有一个不同的值时,一个新的条目就会存储在缓存中,最终会用无用的数据填充它。

所以在这种情况下是错误的,${varName} 应该替换为

vars.get("varName")

事实上,如果您使用正确的 JMeter 语法,我看不到取消选中此选项的真正原因

由于上述风险以及“非共识”原因,该选项默认未选中:

至于性能,无论您是否检查不支持编译的语言,它都完全相同,因为 JMeter 所做的第一件事是在使用复选框之前检查“supportsCompilable”,请参阅:

关于caching - JMeter - 何时不使用缓存编译脚本(如果可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418275/

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