【发布时间】:2014-07-24 01:12:38
【问题描述】:
这是我的情况:
我想这样做:
我有一个 MySQL 数据库中的 URL 列表,我想使用 HTTP 请求来查看响应是否为 404 的 HTTP 状态代码。
我已经这样做了:
- 添加并配置了 JDBC 配置元素。
- 添加并配置了 JDBC 请求采样器。基本上是一个选择语句,它返回一个包含 8 列的表。我为“变量名”字段提供了 8 个逗号分隔的变量,以便可以使用这些变量名来识别 JDBC 请求的结果。
- 创建了一个 HTTP 请求采样器,它在“服务器名称或 IP”字段中使用这些变量 ${url} 之一。
尽管 JDBC 请求完美运行并返回包含一堆行的表,但问题在于 HTTP 请求采样器从不从 JDBC 请求结果中提取变量。 HTTP 请求在“查看结果树”中如下所示:
GET http://${url}/
我尝试了以下解决方案:
- 将“将响应保存到文件”侦听器添加到 JDBC 请求。这将创建一个“.plain”类型的文件,而不是 CSV。如果它是 CSV,我可以通过创建 CSV 数据集配置来利用该 CSV 文件。所以这次尝试失败了。
- 我已尝试在上述尝试中强制文件名始终使用“C:\JMETERTest\data.csv”。但它最终会创建一个名为“C:\JMETERTest\data.csv1.plain”的新文件。这次尝试也失败了。
-
我尝试在 HTTP 请求的服务器名称字段中将 URL 列引用为 ${url_1}。有效。但现在的问题是,在结果树中,所有请求都只来自结果集的第一行的 URL。我看到这是因为上面 ${url_1} 中指定的行号“_1”。如果有人可以建议一种将“_1”参数化为我可以循环的变量(可能使用“计数器”元素)的方法,我可以使用它。我通过引用名称“loopCounter”创建了一个计数器配置元素。并在 HTTP 请求的服务器名称字段中使用它:
${url_("${loopCounter}")}
但现在我的 HTTP 请求看起来更糟糕了:
GET http://${url_("${loopCounter}")}/
这也没有用。
只有当我能够解决行号的参数化时,解决方案 3 才看起来更可行。 我也愿意接受 JMeter 插件的建议。 我会在继续的过程中更新我尝试的任何其他内容。
附注如果我的问题仍然不清楚,请告诉我。
【问题讨论】:
标签: mysql jdbc jmeter export-to-csv jmeter-plugins