首页 > 解决方案 > 使用 BeanShell 脚本拆分 Json 响应正文

问题描述

我正在尝试使用 JMeter 测试 REST API。我的领导告诉我使用 JMeter 对每个 API 进行负载测试。目前我正在测试一个 Get API 请求,并且我得到了下面带有双引号的 JSON 响应正文。

" https://api.rewards.com:/lists/v1/listcontainer/1?ts=20190221004021&auth=EngineeringSolutions:ydvMMlY2uxiKG0yuwh1IbVgR2mfqTQaQncTEaMr+Ef0= "

现在我必须将此 JSON 正文传递给另一个 HTTP 请求并测试 API。

我的问题:

如何使用拆分方法获取 ts 和 auth 的值,例如 (ts=20190221004021 和 auth=EngineeringSolutions:ydvMMlY2uxiKG0yuwh1IbVgR2mfqTQaQncTEaMr+Ef0=) 并将它们存储到两个不同的变量中并在日志视图中打印它们。

我正在尝试使用 split 方法从 json 响应中获取 ts 和 auth 值。我可以使用下面的代码将 URL 分成两部分。但是,这不是我的解决方案。我想获取 'ts' 和 'auth' 值并将它们存储在两个不同的变量中。

在此处输入图像描述

谁能指导我如何修剪和拆分 JSON 响应?

标签: jmeter-5.0

解决方案


要使用 JMeter 解析 JSON,您需要将JSON Extractor添加到您的测试计划中:

  1. 右键单击获取 JSON 的获取 API 请求
  2. 添加 -> 后处理器
  3. JSON 提取器。
  4. JSON Path expressions字段中指定您的 JSON 路径以解析 JSON 响应
  5. 在 中设置变量名称Names of created variables,例如tsauth
  6. 在下一个请求中将此变量用作:${ts}例如${auth}

    https://api.rewards.com:/lists/v1/listcontainer/1?ts=${ts}&auth=${auth}=

查看本文以获取有关 JSON 和其他提取器的更多信息:
使用 JMeter 提取器


推荐阅读