【发布时间】:2021-04-29 16:21:16
【问题描述】:
我正在处理 Jmeter 的一些问题。我向 API 发出 HTTP 请求,该 API 以 JSON 形式回答我,因此我使用 JSON 提取器来提取我需要的信息(我使用 JSON 路径表达式“$.asset_host”来获取并将其存储在名为“data”的变量中)。所以现在我有一个变量,它是一个名为“data”的数组,其中 data[0] = asset_host。
问题是我需要在下一个 HTTP 请求中使用此信息,但我不知道如何在不使用 foreach 控制器的情况下从“数据”获取asset_host。我尝试了 ${data[0]}、${data}[0] 和 ${data_0},但它不起作用.
请问有人知道如何在数组数据的键 0 处获取asset_host 值吗?
编辑
这是 JSON 响应:
{
"chat_web_socket_port": "9009",
"assets_server": "\/\/assets.local",
"chat_web_socket_host": "chat",
"chat_web_socket_secure": false
}
EDIT_2
好的,我找到了它不起作用的原因。 JSON响应给了我“//assets.local”,所以如果我在下一个请求中使用它作为主机,它会将“//assets.local”作为主机,这就是它不起作用的原因。我将不得不操纵字符串来删除“//”。
EDIT_3
好的,为了完成这篇文章,我使用了一个 JSR223 采样器来操作字符串并删除“//”。我把代码放在这里,也许对以后的人有帮助。
String assets = vars.get("assetServerHost_1");
String newAssets = assets.replace('//', '');
vars.put("hostForAssets", newAssets);
它正在将“//assets.local”更改为“assets.local”
感谢您的阅读和帮助。
【问题讨论】:
标签: arrays jmeter load-testing