在Jmeter JDBC请求中运行初步语句

在Jmeter JDBC请求中运行初步语句,jmeter,amazon-redshift,Jmeter,Amazon Redshift,我正在使用JMeter创建一个JDBC性能测试,以评估红移集群上一组查询的性能 在红移时,默认情况下会启用ResultSet缓存,并且可以使用语句在单个会话上禁用它 SET enable_result_cache_for_session=false; 如文件所述 在运行查询之前,我找不到在JMeter中运行此语句的方法。 如果我在实际的JDBC请求之前插入它,JMeter会抱怨只需要一个查询 如果我在线程组中创建了一个“一次性控制器”,在运行查询之前执行该控制器(位于同一线程组中的随机顺序控制

我正在使用JMeter创建一个JDBC性能测试,以评估红移集群上一组查询的性能

在红移时,默认情况下会启用ResultSet缓存,并且可以使用语句在单个会话上禁用它

SET enable_result_cache_for_session=false;
如文件所述

在运行查询之前,我找不到在JMeter中运行此语句的方法。 如果我在实际的JDBC请求之前插入它,JMeter会抱怨只需要一个查询

如果我在线程组中创建了一个“一次性控制器”,在运行查询之前执行该控制器(位于同一线程组中的随机顺序控制器中),则其执行似乎不会影响缓存:

查询时间从第一次运行的30秒到后续运行的250毫秒不等

如果我尝试为每个查询设置JDBC预处理器,也会发生同样的情况


有没有办法使用jmeter运行这个初步查询?或者,是否有一种方法可以全局禁用红移集群上的缓存

您可以使用参数组更改此参数:


在JMeter中,每个集群只需执行一次,而不是每个查询,因此,如果您使用
将会话的
启用\u结果\u缓存设置为
false
,则应应用该选项,直到将其设置回
true

如果必须使用JMeter执行此操作,我只能考虑通过SSH连接到红移实例

您可以使用JMeter(您需要使用安装它)完成这项工作,并通过相关的SSH命令设置参数

我也面临同样的问题。 以下是如何配置运行“缓存关闭”查询:

  • 在“测试计划”窗口中-检查“连续运行线程组”
  • 创建2个线程组
  • 在线程组1中-添加JDBC请求“将会话的enable\u result\u cache\u设置为off;”查询类型(重要)-更新语句(其他语句对我不起作用)
  • 在线程组2中-放置所有其他JDBC请求
  • 测试计划设置: 缓存关闭jdbc请求:

    对我的回答有什么反馈吗?如果您想进行测试,现在可以在JMeter 5.1中使用它