具有JDBC结果集变量和计数器变量的JMeter嵌套变量引用

时间:2014-06-04 13:26:51

标签: jdbc httprequest jmeter httpresponse database-testing

我需要在MYSQL数据库中查询siteID和siteURL的列表。我在JDBC Request的变量名称字段中指定了这些名称。

然后我创建了一个ForEach Logic Controller来循环遍历siteURL $ {siteURL_1},直到结果中的最后一条记录为止:

Input Variable Prefix: siteURL
Start Index: 0
End Index: 40
Output Variable Name: newSiteURL

然后我在HTTP Request的Path字段中将其用作:

${newSiteURL}

这很好,HTTP请求正在通过。

现在,我想正确命名HTTP请求,以便更好地编制索引。 为此,我决定使用结果集中的siteID字段。

为此,我创建了一个计数器变量:

Start: 1
Increment: 1
Maximum: 40
Reference Name: siteIndex

现在,为了从相应的HTTP请求中的结果显示中获取siteID,我将HTTP请求的Name字段编辑为:

${siteID_"({siteIndex})"}

但是我在查看结果树中的HTTP请求仍然显示为:

${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
...

而不是HTTP请求中相应siteURL的实际siteID,如:

21231
12315
21654
64574
76876
...

1 个答案:

答案 0 :(得分:4)

您需要更改此位:

${siteID_"({siteIndex})"}

${__V(siteID_${siteIndex})}

说明:

根据__V function documentation

  

例如,如果有变量A1,A2和N = 1:

     

$ {A1} - 工作正常

     

$ {A $ {N}} - 不起作用(嵌套变量引用)

     

$ {__ V(A $ {N})} - 工作正常。 $ {N}变为A1,__ V函数返回A1

的值

有关如何使用有用的JMeter函数完成工作的更多示例,请参阅Using JMeter Functions帖子系列。