【问题标题】:Jmeter JSON Format Post Processor breaks Token retrievalJmeter JSON 格式后处理器中断令牌检索
【发布时间】:2017-08-14 08:53:07
【问题描述】:

我正在使用 Jmeter,我想格式化 JSON 结果。所以我安装了 JSON 格式后处理器并将其添加到项目的根目录中。

它工作正常,它格式化了 JSON 响应以便于阅读。但是,还有一个请求需要令牌身份验证。它不适用于 JSON 格式后处理器。

例子:

在没有 JSON 格式后处理器的情况下正确检索硬币:

{"access_token":"Secret","expires_in":3600,"token_type":"Bearer"}

还有:

{
    "access_token": "Secret",
    "expires_in": 3600,
    "token_type": "Bearer"
}

我使用正则提取器来提取令牌:access_token":"([a-zA-Z0-9.\-\_]*)

这似乎与格式化程序结合使用。所有请求中均未拒绝有效令牌访问

有没有简单的方法解决这个问题?看来我可以在我的整个项目中使用 Jmeter JSON 格式后处理器,或者根本不使用。

有人知道我是怎么处理的吗?

【问题讨论】:

  • 您可能必须将值作为字符串读取。在以前的模式中,您正在对字符串应用正则表达式。第二,你有一个对象。你需要阅读“acces_token”键。尝试先阅读它,然后再应用正则表达式。 prev.get("access_token):"([a-zA-Z0-9.\-_]*) 祝你好运。
  • 您好,对答案有任何反馈吗?如果可以,它应该被接受和投票,以便对其他人有所帮助

标签: json jmeter access-token jmeter-plugins


【解决方案1】:

如果可能,请应用 JSON 格式后处理器 after 正则表达式提取器。这可能会有所帮助。 为了更轻松地访问 JSON 格式的数据,您可以使用 JSON Path ExtractorSmartMeter's Boundary Body Extractor

【讨论】:

  • 我已经尝试了所有 3 个未工作的遮阳篷。我尝试更改为 access_token":"([^"]+?)" 和 Template 更改为 $2$ 以及将后处理器的位置更改为令牌检索后。
  • 你试过上面提到的 JSON Path extractor 或者 Boundary Body Extractor 吗?
【解决方案2】:

要提取 JSON 数据,最好的选择是原生 JSON Extractor:

关于您的确切问题,更好的正则表达式是:

access_token":"([^"]+?)"

【讨论】:

    【解决方案3】:

    : 之后似乎有可选的空格

    正则表达式:

    access_token":(\s*)"([a-zA-Z0-9.\-\_]*)

    模板更改为使用$2$

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多