Jmeter 在 HTTP 请求中使用来自 JDBC 请求的数据

Jmeter use data from JDBC Request in HTTP Request

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

但我还是不知道该怎么做。

测试结构:

JDBC Connection Configuration
JDBC Request
ForEach Controller
    BeanShell Sampler
    HTTP Request

我的步数:

  1. 创建了 JDBC 请求 2 列中的 return 数据并添加了变量名称(年份、元素)。
  2. 接下来我使用 ForEach Controller 从行中读取数据。 输入变量前缀:years, elements and 输出变量名: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 或更多变量。

请告诉我我做错了什么?

使用 Counter config element or __counter() 函数迭代第二个变量,如:

而且我认为您不需要 Beanshell Sampler,因为 JDBC 请求 returns 结果变量采用 ForEach 控制器可以使用的形式,例如:

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

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