JMeter:是否可以在 运行 期间添加 HTTP 请求采样器?
JMeter: Is it possible to add HTTP Request sampler during run?
我有一个 HTTP 请求 returns 一个 JSON 包含多个 url(主要是图像资源)的对象。
我不知道响应 JSON 中的网址数量,并且该数量可能会随时间变化。
我需要为我收到的每个网址创建一个 HTTP 请求。
是否可以在 运行 JMeter 流程中创建 HTTP 请求采样器?
是否有其他解决方案可以建议我执行以便将 HTTP 请求发送到 url 列表?
谢谢
- 添加 JSON Extractor as a child of the main request and come up with a JSON Path 表达式以提取图像链接和您想要点击的任何其他 URLs
- 添加第 1 步中的 ForEach Controller and configure it to read the JMeter Variable 引用名称并将输出变量设置为任何有意义的值
- 添加 HTTP Request 采样器作为 ForEach 控制器的子项,并将其配置为使用输出变量
- 就是这样,JMeter 将为原始 JSON
中出现的每个 URL 触发一个 HTTP 请求采样器
假设你有以下 JSON:
{
"urls": [
{
"url": "http://example.com"
},
{
"url": "http://jmeter.apache.org"
},
{
"url": "http://jmeter-plugins.org"
}
]
}
您可以使用以下 JSON 提取器设置将 URL 提取到 JMeter 变量中:
它将为您提供以下 JMeter 变量:
url_1=http://example.com
url_2=http://jmeter.apache.org
url_3=http://jmeter-plugins.org
url_matchNr=3
现在,如果您添加 ForEach 控制器并将其配置为:
您将能够在作为 ForEach 控制器
的子级的 HTTP 请求采样器中将 URL 引用为 ${current_url}
我有一个 HTTP 请求 returns 一个 JSON 包含多个 url(主要是图像资源)的对象。 我不知道响应 JSON 中的网址数量,并且该数量可能会随时间变化。 我需要为我收到的每个网址创建一个 HTTP 请求。
是否可以在 运行 JMeter 流程中创建 HTTP 请求采样器? 是否有其他解决方案可以建议我执行以便将 HTTP 请求发送到 url 列表?
谢谢
- 添加 JSON Extractor as a child of the main request and come up with a JSON Path 表达式以提取图像链接和您想要点击的任何其他 URLs
- 添加第 1 步中的 ForEach Controller and configure it to read the JMeter Variable 引用名称并将输出变量设置为任何有意义的值
- 添加 HTTP Request 采样器作为 ForEach 控制器的子项,并将其配置为使用输出变量
- 就是这样,JMeter 将为原始 JSON 中出现的每个 URL 触发一个 HTTP 请求采样器
假设你有以下 JSON:
{ "urls": [ { "url": "http://example.com" }, { "url": "http://jmeter.apache.org" }, { "url": "http://jmeter-plugins.org" } ] }
您可以使用以下 JSON 提取器设置将 URL 提取到 JMeter 变量中:
它将为您提供以下 JMeter 变量:
url_1=http://example.com url_2=http://jmeter.apache.org url_3=http://jmeter-plugins.org url_matchNr=3
现在,如果您添加 ForEach 控制器并将其配置为:
您将能够在作为 ForEach 控制器
的子级的 HTTP 请求采样器中将 URL 引用为${current_url}