我需要查询 MYSQL 数据库以获取 siteID 和 siteURL 列表。我已在 JDBC 请求的变量名称字段中指定了这些名称。
然后我创建了一个 ForEach 逻辑 Controller 来循环访问 siteURL ${siteURL_1} 直到结果中的最后一条记录,如下所示:
Input Variable Prefix: siteURL
Start Index: 0
End Index: 40
Output Variable Name: newSiteURL
然后我在 HTTP 请求的路径字段中使用它:
${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
...
最佳答案
您需要更改此位:
${siteID_"({siteIndex})"}
至
${__V(siteID_${siteIndex})}
说明:
For example, if one has variables A1,A2 and N=1:
${A1} - works OK
${A${N}} - does not work (nested variable reference)
${__V(A${N})} - works OK. A${N} becomes A1, and the __V function returns the value of A1
参见Using JMeter Functions发布系列文章,了解有关如何使用有用的 JMeter 函数完成工作的更多示例。
关于jdbc - 带有 JDBC 结果集变量和计数器变量的 JMeter 嵌套变量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038752/