JMeter 函数和变量
JMeter functions and variables
我是 JMeter 的新手,所以这个问题听起来可能非常愚蠢...
我有一个循环,其中一个变量(假设它被称为 "raw")在每次迭代中被更改并写入文件。该变量包含 HTML 编码文本,因此必须将其转换为纯文本。我发现这可以使用 __unescapeHtml
函数来完成。当我尝试使用它时,它起作用了,但我最终总是收到与第一次迭代时相同的文本。然后我了解到我必须使用 vars.get
而不是 ${}
来访问变量。所以我将 ${__unescapeHtml("${raw}")}
更改为 ${__unescapeHtml(vars.get("raw")}
哪种方式有所帮助:vars.get
每次迭代都获得了 raw
的新值,但 __unescapeHtml
现在根本不起作用- 它只是 returns 来自 raw
的编码文本。我没有成功找到关于这个确切问题的任何信息,所以我有点卡住了。
最终使用
import org.apache.commons.lang3.StringEscapeUtils
...
StringEscapeUtils.unescapeHtml4(vars.get("raw"))
不知道这样做是否是个好方法,但至少它有效。
我假设您在 JSR-223 采样器或类似上下文中使用表达式 ${...}
。 user manual for JSR-223 Sampler 指出,这些脚本可以由 JMeter 缓存。这就是为什么您只能从第一次创建上下文时获取值。
对于像 ${varname}
这样的简单变量求值也是如此,对于像 ${__unescapeHtml(...)}
.
这样的函数调用也是如此。
这里的解决方法是:
- 不要在可能被缓存的 JSR-223 上下文中使用
${...}
。
- 然而,您可以将这些表达式 (
${...}
) 用作参数,通过 JSR-223 采样器上标记为 Parameters
的输入将它们传递到上下文中——再次假设您正在使用它.
- 您可以使用您选择的 JSR-223 上下文为您提供的功能,正如您所做的那样,通过使用
StringEscapeUtils#unescapeHtml4
我是 JMeter 的新手,所以这个问题听起来可能非常愚蠢...
我有一个循环,其中一个变量(假设它被称为 "raw")在每次迭代中被更改并写入文件。该变量包含 HTML 编码文本,因此必须将其转换为纯文本。我发现这可以使用 __unescapeHtml
函数来完成。当我尝试使用它时,它起作用了,但我最终总是收到与第一次迭代时相同的文本。然后我了解到我必须使用 vars.get
而不是 ${}
来访问变量。所以我将 ${__unescapeHtml("${raw}")}
更改为 ${__unescapeHtml(vars.get("raw")}
哪种方式有所帮助:vars.get
每次迭代都获得了 raw
的新值,但 __unescapeHtml
现在根本不起作用- 它只是 returns 来自 raw
的编码文本。我没有成功找到关于这个确切问题的任何信息,所以我有点卡住了。
最终使用
import org.apache.commons.lang3.StringEscapeUtils
...
StringEscapeUtils.unescapeHtml4(vars.get("raw"))
不知道这样做是否是个好方法,但至少它有效。
我假设您在 JSR-223 采样器或类似上下文中使用表达式 ${...}
。 user manual for JSR-223 Sampler 指出,这些脚本可以由 JMeter 缓存。这就是为什么您只能从第一次创建上下文时获取值。
对于像 ${varname}
这样的简单变量求值也是如此,对于像 ${__unescapeHtml(...)}
.
这里的解决方法是:
- 不要在可能被缓存的 JSR-223 上下文中使用
${...}
。 - 然而,您可以将这些表达式 (
${...}
) 用作参数,通过 JSR-223 采样器上标记为Parameters
的输入将它们传递到上下文中——再次假设您正在使用它. - 您可以使用您选择的 JSR-223 上下文为您提供的功能,正如您所做的那样,通过使用
StringEscapeUtils#unescapeHtml4