如何从Jmeter的JDBC响应对象中获取由数字引用的列的值?

如何从Jmeter的JDBC响应对象中获取由数字引用的列的值?,jdbc,jmeter,Jdbc,Jmeter,我知道他们建议通过这种方式获取单元格值: columnValue = vars.getObject("resultObject").get(0).get("Column Name"); 如上所述 但是:如何仅通过列的数量访问相同的RS单元格值 RS.get(0).get(4); …而不是给它一个列名称/标签字符串 编辑1:让我们使用Groovy/Java,而不是BeanShell。谢谢 编辑2:最初的动机是列名/标签之间的差异,因为它们似乎没有得到充分的保证(?这里似乎不清楚,对我来说不是)

我知道他们建议通过这种方式获取单元格值:

columnValue = vars.getObject("resultObject").get(0).get("Column Name");
如上所述

但是:如何仅通过列的数量访问相同的RS单元格值

RS.get(0).get(4);
…而不是给它一个列名称/标签字符串

编辑1:让我们使用Groovy/Java,而不是BeanShell。谢谢

编辑2:最初的动机是列名/标签之间的差异,因为它们似乎没有得到充分的保证(?这里似乎不清楚,对我来说不是),特别是由于区分大小写(“id”/“id”、“Name”/“Name”/“Name”。)

行本身是一个,在源代码中定义为:

HashMap<String, Object> row
在HashMap中,您无法按ID访问项(列)。但是,您可以应用所述的方法之一,但是
HashMap
不保证顺序,因此您无法确定“第4列”将包含什么

如果希望能够循环遍历所有列,最好使用映射样式,而不是索引。例如,将
entrySet()
与BeanShell一起使用:

for(Map.Entry entry : row.entrySet())
{
    log.info(entry.getKey() + "=" + entry.getValue());
}
请参阅遍历映射的各种方法。

行本身是一个,在源代码中定义为:

HashMap<String, Object> row
在HashMap中,您无法按ID访问项(列)。但是,您可以应用所述的方法之一,但是
HashMap
不保证顺序,因此您无法确定“第4列”将包含什么

如果希望能够循环遍历所有列,最好使用映射样式,而不是索引。例如,将
entrySet()
与BeanShell一起使用:

for(Map.Entry entry : row.entrySet())
{
    log.info(entry.getKey() + "=" + entry.getValue());
}

查看在地图中迭代的各种方法。

它应该类似于:

String value = (new ArrayList<String>(vars.getObject("resultObject").get(0).values())).get(4)
String value=(新的ArrayList(vars.getObject(“resultObject”).get(0.values()).get(4)
更多信息:


请注意,根据:

此类不保证地图的顺序;特别是,它不能保证订单在一段时间内保持不变


因此,列的顺序可能是一个大问号。

应该是这样的:

String value = (new ArrayList<String>(vars.getObject("resultObject").get(0).values())).get(4)
String value=(新的ArrayList(vars.getObject(“resultObject”).get(0.values()).get(4)
更多信息:


请注意,根据:

此类不保证地图的顺序;特别是,它不能保证订单在一段时间内保持不变


因此,列的顺序可能是一个很大的问号。

回答编辑2:一定要使用
row.entrySet()
或类似的方式,因为这是遍历map中所有条目的最佳方式。回答编辑2:一定要使用
row.entrySet()
或类似的方式,因为这是遍历map中所有条目的最佳方式。