JMeter - 如何将 HTTP Sampler 的输出作为输入传递给 OS Process Sampler

JMeter - How to pass output from HTTP Sampler as input to OS Process Sampler

我有一个带有一对采样器的 jmeter 测试计划。第一个从 HTTP 端点检索 keycloak 令牌。第二个是 OS Process Sampler,它应该从第一个采样器获取响应并从响应中删除 JSON 工件。

第一个采样器工作正常,我得到了返回的 json-wrapped 令牌。第二个采样器没有像我希望的那样对第一个采样器的输出进行操作。这是命令:

jq .access_token -r

这条命令在技术上执行成功,但响应中没有数据。我猜我不得不以某种方式告诉 OS Process Sampler 使用 HTTP 采样器的响应作为输入(通过 curl 命令,您可以将来自 HTTP 调用的响应通过管道传输到 jq)。

如果有人知道我如何将第一个采样器的输出作为第二个采样器的输入,我将不胜感激。谢谢

如果这确实是您要找的东西,您可以:

  1. 添加 Boundary Extractor 作为 HTTP 请求采样器的子项并提供任意变量名称,即 response 那里
  2. HTTP Request 采样器的响应将作为 ${response} JMeter Variable 提供,您将能够在其他任何地方使用它,包括 OS Process Sampler

但是请注意,JMeter 带有 JSON Extractor and JSON JMESPath Extractor,因此您可以使用它们中的任何一个从 JSON 响应中提取您的令牌,这样您将避免不必要地调用 command-line解释器,此外,您将不必依赖 jq 程序在您将要 运行 测试的机器上的存在。