pentaho ce Jmeter 板中的mysql查询参数

nvbavucw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(470)

首先,我在pentaho ce 8.0上。我不是宾托舞的Maven。
这个问题似乎很简单,但我无法解决。我正在尝试让 Jmeter 板为mysql查询中的where条件使用一个简单的参数。引导布局有3列,每个组件一列(过滤器、文本、表格)。
简单参数:

- Name: salesrep_selection  
- Property value: mike

筛选器组件(用于选择销售代表):

- Name: salesrep_selection_filter  
- Parameter: salesrep_selection  
- Values Array: [["mike","Mike"],["paul","Paul"],["peter","Peter"]]  
- Value as Id: false

文本组件:(仅检查参数是否已设置):

- Name: selection_show_text  
- Listeners: ["salesrep_selection"]  
- Expression: function() {return this.dashboard.getParameterValue("salesrep_selection");}

表组件(按销售代表列出的客户列表):

- Name: customers_list_table  
- Listeners: ["salesrep_selection"]  
- Datasource: customers_list_data

数据源(mysql查询):

- Name: companies_list_data  
- Jndi: business_datawarehouse  
- Query: SELECT customerid,customername FROM customers WHERE salesrep=${salesrep_selection}  
- Parameters: [] (empty)

当我启动 Jmeter 板时,我会得到包含销售代表姓名的选择列表。当我选择其中一个时,id显示在文本组件中,但是表仍然是空的“表中没有可用的数据”。
如果我硬编码条件 "WHERE salesrep='mike'" ,我得到了客户名单。
使用参数 "WHERE salesrep=${salesrep_selection}" ,mysql查询日志显示 "WHERE salesrep=null" . 因此参数不会发送到查询。
我还尝试用 [["salesrep_selection","salesrep_selection"]], 但是表仍然是空的“表中没有可用的数据”,mysql查询日志显示 "WHERE salesrep='salesrep_selection'". 我在网上搜索了很多,关于这个的文章不多,但不管怎样,我找到的正是我实现的。但我还是什么都没做。
pentaho ce 8.0中的参数处理是否不同?查询参数也是?

1yjd4xko

1yjd4xko1#

您需要将参数从组件传递到数据源。
添加调用的参数 salesrep_selection 有价值的 salesrep_selection 表组件的属性 Parameters . 这将在组件中设置参数,并将其值传递给数据源。
在数据源的属性中添加相同的参数 Parameters . 这将在数据源中设置参数,并将其值传递给查询。
表组件(按销售代表列出的客户列表):

- Name: customers_list_table  
- Listeners: ["salesrep_selection"]  
- Datasource: customers_list_data  
- Parameters: [["salesrep_selection", "salesrep_selection"]]

数据源(mysql查询):

- Name: companies_list_data  
- Jndi: business_datawarehouse  
- Query: SELECT customerid,customername FROM customers WHERE salesrep=${salesrep_selection}  
- Parameters: [["salesrep_selection", "salesrep_selection"]]

相关问题