在Jmeter http请求中使用vars.get而不是'$'

时间:2018-04-15 08:49:32

标签: http groovy jmeter

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

但是当我使用“$ {Expected_Offer_Name}”时,它运作正常。 1.有什么区别?在这两种情况下我想传递一个字符串参数。 他们是使用变种的方法,而是取而代之。

[Not working] [不工作]

[enter image description here] [工作]

他们是否可以在json的http请求中使用vars.get

2 个答案:

答案 0 :(得分:1)

您无法在HTTP请求中使用变量。

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

  1. JSR223 Elements个脚本
  2.   

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

    1. Beanshell / groovy元素或功能。
    2. 还使用right way

      添加变量
        

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

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

      获取变量

答案 1 :(得分:0)

将您的vars.get("Expected_Offer_Name")包裹到__groovy() function中:

${__groovy(vars.get("Expected_Offer_Name"),)}

JMeter Groovy Function

您可以在测试计划中的任何位置使用JMeter功能。

注意:您需要JMeter version at least 3.1才能使用__groovy功能