JMeter JDBC准备的语句不绑定变量

JMeter JDBC准备的语句不绑定变量,jmeter,Jmeter,我正在使用JDBC采样器开发JMeter。我已经创建了查询类型为Select语句的采样器。我正在使用MySQL 5.5 我在查询部分写了一条Select语句。参数值部分中提到了这些参数,以及参数类型部分中相应的类型。参数从CSV文件中获取 我运行了查询并验证了来自视图结果树侦听器的结果。我得到了预期的结果。当我在多线程/多迭代模式下运行测试时,从数据检索的角度来看,结果是令人满意的,但是,从Mysql日志文件中,我发现,不只是设置绑定变量并执行查询,而是像执行简单的select语句一样再次执行整

我正在使用JDBC采样器开发JMeter。我已经创建了查询类型为Select语句的采样器。我正在使用MySQL 5.5

我在查询部分写了一条Select语句。参数值部分中提到了这些参数,以及参数类型部分中相应的类型。参数从CSV文件中获取

我运行了查询并验证了来自视图结果树侦听器的结果。我得到了预期的结果。当我在多线程/多迭代模式下运行测试时,从数据检索的角度来看,结果是令人满意的,但是,从Mysql日志文件中,我发现,不只是设置绑定变量并执行查询,而是像执行简单的select语句一样再次执行整个查询

它给我的印象是,尽管我选择了preparedselect语句作为查询类型,但它是以简单的Select语句执行查询的

有人遇到过这个问题吗?我可以在哪些方面解决这个问题?


从您展示的内容来看,对于我来说,JMeter正在使用PreparedStatements,因此绑定正在发生

MySQL中的哪个日志让您认为绑定没有发生? 你确定只有JMeter在访问MySQL吗

能否在user.properties中设置:

log_level.jmeter.protocol.jdbc=DEBUG

重新启动并显示jmeter.log

JMeter工作正常,请阅读以下内容:

因此,在JDBC连接配置中更改属性“Database URL”以包括:

?UseServerPrepsmts=true


你能展示一下测试元素的配置吗?@UBIKLOADPACK:在原始帖子中添加了JDBC config元素映像的链接。谢谢,但我想要一个JBDCRequest@UBIKLOADPACK:还添加了采样器快照嗨,我回答,有反馈吗?谢谢,这是我的一些发现。1) MySQL允许客户端和服务器端准备语句。默认情况下,不启用服务器端准备的语句。在这种情况下,若我们在JMeter查询类型中选择Prepared select语句,它将模拟客户端的Prepared语句。我们仍然会得到预期的结果,但是,在数据库端,该语句将作为简单的SQL语句执行。以下是日志。3查询集字符\u集\u结果=NULL 3查询集自动提交=1 3查询集sql\u模式='NO\u引擎\u替换,STRICT\u TRANS\u表'3查询集自动提交=1 3查询从出现此错误的表名中选择a、b、c。状态为“错误”而这个u.ACCOUNTID=1和这个.TIME u块介于'2015-10-20 15:10:02'和'2015-11-03 11:39:00'之间3查询集autocommit=1 3查询从表名this中选择a、b、c,其中这个.STATUS“ERROR”和这个.ACCOUNTID=2和这个.TIME u块介于'2015-10-20 09:47:37'和'2015-11-03 13:47:37'3以上日志之间,我们在mysql日志中没有看到任何prepare语句被记录。为了使服务器端准备好语句,我们必须传递“useServerPrepsMTS=true”以及连接字符串。一旦我们通过这个,我们将得到下面的日志。34准备从表名中选择a、b、c,该状态在哪里?这是什么?ACCOUNTID=?这段时间之间呢?然后呢?160104 12:51:16 34查询集自动提交=1 34查询集自动提交=1 34查询集自动提交=1 34查询集自动提交=1 34查询集自动提交=1 34查询集自动提交=1这表明服务器端准备的语句正在工作。我更新了我的答案,如果确定,您应该接受我的答案并进行投票