带有插入参数的JMeter SQL语法错误

时间:2018-12-05 09:55:06

标签: mysql sql jmeter syntax-error sql-insert

我正在与JMeter一起在mySQL数据库(memsql服务器,mySQL语法)上加载测试查询。我正在使用JMeter的gui版本来创建测试计划xml文件,然后转到另一台服务器并以非gui模式运行该xml。

我正在运行两个查询,一个查询选择,一个查询插入。这两个查询都使用从脚本编写的csv文件中获取的参数。 我的SELECT语句与从csv文件获取的参数配合使用时效果很好,但是我的INSERT语句遇到语法错误:

INSERT INTO customer_transactions_current (`column_name1`, ... , `column_name12`)
VALUES ((${r1},${r2},${r3},${r4},${r5},${r6},${r7},${r8},${r9},${r10},${r11},${r12}));

在gui模式的“ CSV数据集配置”下的查询部分中,我选择用“,”定界数据,变量名称为r1,.. r12。 在查询本身下,我输入了参数类型,并再次输入了相同的名称,就像在正常的SELECT查询中一样。

运行查询时,我在第一列(日期时间类型)中遇到语法错误:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '19:00:00,75400492,936988,56,1115,5,2156,8,2,3,909,3))' at line 2

我输入的日期的格式为:“ 2018-11-2 20:00:00”,并且在csv文件中它们不带撇号。

语法错误似乎与日期和保持空格的位置有关。我尝试为该列输入STR_TO_DATE函数,但一直收到语法错误。 但是,当我尝试从文件中获取一些值并手动运行查询时,它运行良好!因此,我的想法是在发送查询之前,它需要执行JMeter的空间转换。

我的JMeter配置是否有问题?由于查询是手动确定的。

1 个答案:

答案 0 :(得分:1)

添加撇号以插入和删除不必要的括号

INSERT INTO customer_transactions_current ('column_name1', ... , 'column_name12')
VALUES ('${r1}','${r2}','${r3}','${r4}','${r5}','${r6}','${r7}','${r8}','${r9}','${r10}','${r11}','${r12}');

如果您有日期问题,请使用STR_TO_DATE