【问题标题】:How to get object result set from JDBC Sampler in JMeter Beanshell如何从 JMeter Beanshell 中的 JDBC Sampler 获取对象结果集
【发布时间】:2014-04-09 17:28:46
【问题描述】:

我无法从 JMeter 中的 JDBC Sampler 获取结果集对象。 JMeter 文档准确地说明了这一点:

Result Variable Name
If specified, this will create an Object variable containing a list of
    row maps. Each map contains the column name as the key and the column 
    data as the value. 
Usage:
  columnValue = vars.getObject("resultObject").get(0).get("Column Name");

所以,我这样配置它并且它可以工作。但是由于上面的文档说我创建了一个“行映射列表”,我想我会尝试在 BeanShell 中从它创建一个 List 对象以使其更具可读性。我试过这样做,但没有奏效。有人知道答案吗?

List<Map<String,Integer>> results = vars.getObject("resultList");

而且错误或多或少是这样的:

jmeter.util.BeanShellInterpreter: Error invoking bsh 
 method: eval   In file: inline evaluation of:
 ``List<Map<String,Integer>> results = vars.getObject("resultList")

【问题讨论】:

    标签: jmeter jmeter-plugins


    【解决方案1】:

    Beanshell 不是 Java,您需要稍微不同地访问它。

    Beanshell 不太支持那些“菱形”括号。请修改您的代码如下:

    ArrayList result = vars.getObject("resultList");
    for (HashMap table : result) {
        for (Object column : table.keySet()) {
            log.info(column + "=" + table.get(column));
        }
    }
    

    以上代码假定您已在 JDBC 请求采样器中将 resultList 设置为“结果变量名称”。

    这应该将查询结果打印到 jmeter.log 文件中。

    请参阅How to use BeanShell 指南了解更多详细信息和 Beanshell 食谱类型。

    【讨论】:

    • 是的,这确实很好用。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2017-05-17
    相关资源
    最近更新 更多