Jmeter使用HTTP请求中的JDBC请求中的数据

时间:2015-10-26 14:27:41

标签: jdbc jmeter httprequest

我需要在HTTP请求中使用来自RDBC请求的数据。在提出这个问题之前,我先阅读了以下主题:

但我仍然不知道如何做到这一点。

测试结构:

JDBC Connection Configuration
JDBC Request
ForEach Controller
    BeanShell Sampler
    HTTP Request

我的步骤:

  1. 创建 JDBC请求,返回2列数据并添加变量名称(年份,元素)。
  2. 接下来,我使用 ForEach Controller 从行中读取数据。 输入变量前缀:年,元素输出变量名称:years1,elements1 ;
  3. 使用 BeanShell Sampler

    解析变量中的数据
    String yearsRange = vars.get("years1"); String year =
    yearsRange.split("-")[1];
    
    String ElementsStr = vars.get("elements1"); String element =
    ElementsStr.split(" ")[1];
    
    vars.put("year", year);
    vars.put("element", element);
    
  4. 现在我用参数创建HTTP请求:

    year ${year};
    element ${element};
    

    我知道问题出在 ForEach Controller (如果我设置了一个变量,一切正常)但我不知道如何让它与2个或更多变量一起工作。

  5. 请告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

使用Counter配置元素或__counter()函数迭代第二个变量,如:

Foreach Controller

View Results Tree

我认为你不需要Beanshell Sampler,因为JDBC Request会以ForEach Controller可以使用的形式返回结果变量,例如:

var_1=foo
var_2=bar
anothervar_1=baz
anothervar_2=somethingelse

有关详细说明,请参阅Debugging JDBC Sampler Results in JMeter指南。