Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter:捕获全局变量中的JDBC值_Jdbc_Properties_Global Variables_Jmeter - Fatal编程技术网

Jmeter:捕获全局变量中的JDBC值

Jmeter:捕获全局变量中的JDBC值,jdbc,properties,global-variables,jmeter,Jdbc,Properties,Global Variables,Jmeter,我对Jmeter非常陌生,我想知道是否有某种方法可以将查询结果存储在全局变量中,以便在不同的线程中使用 换句话说,我需要一个设置线程,从DB设置开始日期和结束日期(2个值)。 然后,在第二个线程(主线程)中,我必须使用开始日期和结束日期作为测试的参数 这可能吗 提前谢谢!, Nahuel使用以下元素: 组织如下: 其工作如下: JDBC连接配置将设置到DB的连接,命名为Variable name,以便它匹配JDBC请求的变量名,在我的例子中,我将其命名为conn 安装线程组将通过J

我对Jmeter非常陌生,我想知道是否有某种方法可以将查询结果存储在全局变量中,以便在不同的线程中使用

换句话说,我需要一个设置线程,从DB设置开始日期和结束日期(2个值)。 然后,在第二个线程(主线程)中,我必须使用开始日期和结束日期作为测试的参数

这可能吗

提前谢谢!,
Nahuel使用以下元素:

组织如下:

其工作如下:

  • JDBC连接配置将设置到DB的连接,命名为Variable name,以便它匹配JDBC请求的变量名,在我的例子中,我将其命名为conn

  • 安装线程组将通过JDBC请求运行查询,并将结果存储在变量中

  • 具有的Beanshell采样器使用该值并将其存储为属性,以便所有线程都可以共享该值

  • 注意以下几点:

    • JDBC请求的变量名必须与SQL查询返回的列数匹配,请注意,在示例中,我有3列,我放置了3个变量,并将使用clt_nom_1名称,因为我确保查询只返回行

      • 在Bean Shell sampler中,我输入了以下代码:

        props.put("toto",vars.get("clt_nom_1"));
        
      • clt_nom_1是这样命名的,因为它是第一行值

      • 最后,在线程组中,我可以通过以下方式使用属性toto:

        ${__P(toto)}
        

    您还可以使用名为的调试采样器替换BeanShell采样器:

    ${__setProperty(toto,${clt_nom_1})};
    

    它将变量存储在属性中

    我的做法不同: 我创建了一个BSF后处理器,使用“Javascript”作为语言:

    var strData = prev.getResponseDataAsString(); //This is a string delimited with character return
    var listData = strData.split('\n');
    
    然后,您可以从列表数据中执行各种操作,例如
    vars.putObject


    注意:它与JDBC请求上的SELECT query一起工作。

    使用调试采样器名称设置属性非常简单。谢谢你的提示。