JMeter中的JSON路径提取器

JMeter中的JSON路径提取器,jmeter,Jmeter,我是jmeter的新手。有人能帮我使用一个请求的响应对象作为下一个HTTP请求的请求头传递吗 让我解释一下 我在我的应用程序中获得一个访问令牌以及登录响应: {:“响应代码”:18,:“消息”:“已成功登录”。,:“响应对象”:“8zWExE4eSdhcJDwnW9MgIw=”} 否我想使用此访问令牌(8zWExE4eSdhcJDwnW9MgIw)作为下一个请求的参数之一 为此,我使用了JSON路径提取器。但它不起作用。我也在使用JSON路径提取器,如果配置正确,效果会很好。 只需将其放入请求和

我是jmeter的新手。有人能帮我使用一个请求的响应对象作为下一个HTTP请求的请求头传递吗

让我解释一下

  • 我在我的应用程序中获得一个访问令牌以及登录响应:

    {:“响应代码”:18,:“消息”:“已成功登录”。,:“响应对象”:“8zWExE4eSdhcJDwnW9MgIw=”}

  • 否我想使用此访问令牌(8zWExE4eSdhcJDwnW9MgIw)作为下一个请求的参数之一


  • 为此,我使用了JSON路径提取器。但它不起作用。

    我也在使用JSON路径提取器,如果配置正确,效果会很好。 只需将其放入请求和填充字段:

    • 变量名:access\u令牌(或稍后在请求中使用的任何其他令牌,如${access\u令牌})
    • 如果粘贴的JSON是完整响应,那么JSON路径:responseObject应该足够了(复制粘贴或JSON损坏时,额外的冒号只是一些错误?)
    • 默认值:我总是使用一些值,比如“NotUpdated!”在这里,我可以在下一步中断言,或者至少可以在请求中轻松地看到它

      • 没有看到完整的响应,很难找到正确的JSON路径表达式

        根据您发布的内容,它应该类似于
        $。responseObject


        有关插件安装说明和XPath到JSON语法映射,请参阅查询指南和语法示例(向下滚动至“解析JSON”)。

        如果任何人使用JSON提取器(如我)进行多变量提取时遇到问题,请确保:

        • 使用分号作为分隔符列出变量/路径表达式/默认值的名称
        • 为每个变量提供默认值
        第二点显然是必须的,我只是从
        中后期。

        但我已经尝试使用$.responseObject和$.responseObject[0],但它不起作用。让我解释一下我在这个场景中尝试了什么。这些是我在测试脚本中实现的组件。1 HTTP请求默认值2 HTTP Cookie管理器3。用户定义的变量(在此变量中,变量声明为“access_Token”,其值声明为“jsonVal”,即JSON路径提取器名称)4。HTTP请求(登录)(此请求给出的响应为{:“responseCode”:18,:“message”:“已成功登录”。,:“responseObject”:“NXVQR/bQBGJV4ugJOgpQeg==”})4.1 HTTP头管理器4.2 JSON路径提取器(提取器名称为jsonVal,我已在用户定义变量中传递)5 HTTP请求(保留)其请求体类似于{“eventId”:4446,“buyerId”:10,“invCount”:1,“eventPriceId”:169}5.1 HTTP头管理器接受应用程序/json内容类型应用程序/json访问令牌${access_令牌}6保留请求的结果树响应为{:“responseCode”:100,:“message”:“无效的访问令牌。”}您好,我希望您能看到给我accessToken的响应。我认为我已经正确配置了它。如果我错了,请纠正我。我认为问题可能是您使用responseObject进行响应,因为有些冒号不应该在那里,除非它只是一些奇怪的格式。我在r之前谈论冒号responseObject名称如下“:“responseObject””,这可能是对JSON的错误解析。我还看到一件事,如果您分配的值是“jsonVal”,而不是${jsonVal},那么问题可能就在这里。或者它是先分配然后提取的。请尝试在下一个请求中使用${jsonVal}然后看看它是否在那里。我又读了一遍你的评论,只是想补充一点-你不必分配那个jsonVal来访问令牌,只需在提取器中使用这个jsonVal来代替这个jsonVal,这样你就可以直接分配它,而不必使它复杂化。不,当我切换response t的视图时,冒号就出现了o结果树中从文本到json的json视图。这不是实际响应的一部分。JMeter仅将这些冒号放在该点上。实际响应如下。{“responseCode”:18,“message”:“Successfully logging.”,“responseObject”:“VhE/3ENBM9+METEQPLHI6Q==”}以及使用${jsonVal}的情况或者jsonVal,我需要用用户定义的变量来尝试吗?请求头:连接:保持活动接受:应用程序/json内容类型:应用程序/json访问令牌:${jsonVal}内容长度:71主机:182.72.159.116:8080用户代理:Apache HttpClient/4.2.6(java 1.5)