使用vars.get代替'$';在Jmeter http请求中

使用vars.get代替'$';在Jmeter http请求中,http,groovy,jmeter,Http,Groovy,Jmeter,我有一个关于在Jmeter中使用http请求的问题 我创建了一个json请求。我尝试传递我在前面步骤中使用的参数(我使用vars.put(“预期的\u提供\u名称”)保存它)。 我想使用vars.get(“Expected_Offer_Name”)作为参数,但Jmeter拒绝使用此参数 但是当我使用“${Expected\u Offer\u Name}”时,它工作正常。 1.区别是什么?在这两种情况下,我都希望传递一个字符串参数。 2.他们是使用VAR的一种方式,取而代之的是get []不工作]

我有一个关于在Jmeter中使用http请求的问题 我创建了一个json请求。我尝试传递我在前面步骤中使用的参数(我使用vars.put(“预期的\u提供\u名称”)保存它)。
我想使用vars.get(“Expected_Offer_Name”)作为参数,但Jmeter拒绝使用此参数

但是当我使用“${Expected\u Offer\u Name}”时,它工作正常。 1.区别是什么?在这两种情况下,我都希望传递一个字符串参数。 2.他们是使用VAR的一种方式,取而代之的是get

[]不工作]

[]工作]


是在json的http请求中使用vars.get的一种方法

您不能在http请求中使用vars

vars
是一个仅用于脚本的特殊变量,仅在以下情况下可用:

  • 剧本
  • 在调用脚本之前,会设置一些变量。请注意,这些变量是JSR223变量,也就是说,它们可以直接在脚本中使用

  • Beanshell/groovy元素或函数
  • 还添加了用于使用以下命令获取变量的命令:

    确保脚本不使用任何使用${varName}的变量,因为缓存将只获取${varName}的第一个值。请改用: vars.get(“varName”)

    在其他位置,您需要使用
    ${varName}

    将您的
    vars.get(“预期提供名称”)
    包装成类似的格式:

    您可以在测试计划中的任何位置使用JMeter函数


    注意:您需要使用
    \uuu groovy

    函数,抱歉,我仍然不明白,我想在http请求中使用vars,get(“expected\u offer\u name”)。但是不允许使用Jmeter,所以我使用“${expected\u offer\u name}”。您提到这不好,因为它将被缓存,那么解决方案是什么?写什么来代替它$json http请求中的{Expected\u Offer\u Name}?@Bastian您不能在http请求中使用
    vars
    。因此您应该使用
    ${Expected\u Offer\u Name}
    。如果您的问题是关于JSR采样器内部的,则答案不同
    ${__groovy(vars.get("Expected_Offer_Name"),)}