这是我的情况:

我想这样做:

我在mysql数据库中有一个URL列表,我想使用HTTP请求点击,看看响应是否是404的HTTP状态代码。

我已经完成了这个:

  1. 添加并配置了JDBC配置元素。
  2. 添加并配置了JDBC请求采样器。基本上是一个选择语句,返回具有8列的表。我为“变量名称”字段提供了8个逗号分隔的变量,以便可以使用这些变量名称标识JDBC请求的结果。
  3. 创建了一个HTTP请求采样器,它在“服务器名称或IP”字段中使用其中一个变量$ {url}。
  4. 虽然JDBC请求完美无瑕地工作并用一堆行返回一个表,但问题是HTTP请求采样器从未从JDBC请求结果中拾取变量。 HTTP请求在“View结果树”中如此如此如此如此如此如此在“视图结果树”中如下所示:

    GET http://${url}/
    
    .

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

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

      $ {url _(“$ {loopcounter}”)}

    4. 但现在我的http请求看lame:

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

      这也没有工作。

      解决方案3只有在我可以解析行号的参数化时,才会看起来更具可行模式。 我也向JMeter插件建议开放。 我会更新我尝试的任何其他东西。

      P.S。请告诉我我的问题是否在不管怎样。

有帮助吗?

解决方案

您是否尝试在Foreach Controller(父)中包装HTTP采样器,其中控制器的变量是从JDBC采样器获得的URL变量?

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

这种方式将从索引的开头迭代每个变量到结束,每次运行一次采样器。

其他提示

在'保存到文件侦听器的响应中,选择复选框“不添加后缀和前缀”。检查这两个选项将确保,您得到精确的日志文件名。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top