gpt4 book ai didi

mysql - 如何在 HTTP 请求中使用来自 Jmeter JDBC 请求的响应

转载 作者:可可西里 更新时间:2023-11-01 07:39:43 24 4
gpt4 key购买 nike

这是我的情况:

我想这样做:

我在 MySQL 数据库中有一个 URL 列表,我想使用 HTTP 请求访问它以查看响应是否为 404 的 HTTP 状态代码。

我这样做了:

  1. 添加并配置了 JDBC 配置元素。
  2. 添加并配置了 JDBC 请求采样器。基本上是一个 select 语句,它返回一个包含 8 列的表。我为“变量名”字段提供了 8 个以逗号分隔的变量,以便可以使用这些变量名来标识 JDBC 请求的结果。
  3. 创建了一个 HTTP 请求采样器,它在“服务器名称或 IP”字段中使用其中一个变量 ${url}。

虽然 JDBC 请求完美运行并返回一个包含一堆行的表,但问题是 HTTP 请求采样器从不从 JDBC 请求结果中获取变量。HTTP 请求在“查看结果树”中看起来像这样:

GET http://${url}/

我已经尝试过这些解决方案:

  1. 为 JDBC 请求添加“保存对文件的响应”监听器。这会创建一个“.plain”类型的文件,而不是 CSV。如果它是 CSV,我可以通过创建 CSV 数据集配置来利用该 CSV 文件。所以这次尝试失败了。
  2. 我已尝试在上述尝试中强制文件名始终使用“C:\JMETERTest\data.csv”。但它最终会创建一个名为“C:\JMETERTest\data.csv1.plain”的新文件。这次尝试也失败了。
  3. 我尝试在 HTTP 请求的服务器名称字段中将 URL 列引用为 ${url_1}。有效。但现在的问题是,在结果树中,所有请求都只从结果集的第一行获取 URL。我看到这是因为在上面的 ${url_1} 中指定了行号“_1”。如果有人可以建议一种将“_1”参数化为我可以循环访问的变量的方法(可能使用“计数器”元素),我可以使用它。我通过引用名称“loopCounter”创建了一个计数器配置元素。并在 HTTP 请求的服务器名称字段中使用它:

    ${url_("${loopCounter}")}

但现在我的 HTTP 请求看起来更乏味了:

GET http://${url_("${loopCounter}")}/

这也行不通。

解决方案 3 看起来更可行,前提是我可以解决行号的参数化问题。我也对 JMeter 插件建议持开放态度。随着我们的进行,我会更新我尝试的任何其他内容。

附言如果我的问题无论如何都不清楚,请告诉我。

最佳答案

您是否尝试过将 HTTP 采样器包装在 ForEach Controller (父级)中,其中 Controller 的变量是从 JDBC 采样器获取的 URL 变量?

此外,ForEach 中的输出变量将是您现在在 HTTP 采样器中使用的变量。

这样它将遍历从索引开始到结束的每个变量,并每次运行一次采样器。

关于mysql - 如何在 HTTP 请求中使用来自 Jmeter JDBC 请求的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com