如何在JMeter中通过JDBC采样器运行多个MySQL语句

gopyfrb3  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(134)

我在JMeter 2.13中使用JDBC采样器。
我在JMeter采样器中有大约100个delete语句,如下所示:

delete from abc where id >= ${Variable_Name};
delete from qwe where id >= ${Variable_Name};
delete from xyz where id >= ${Variable_Name};

问题是,当我在JDBC采样器中运行一条语句时,它运行得很好。但是当我试图从我的JDBC采样器运行2个或2个以上的语句时。它总是抛出错误。
SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法来使用near 'delete from qwe where id >= 1;
有没有人能提出一个解决方案?以及如何克服这个问题。

r1zhe5dt

r1zhe5dt1#

似乎不能在一个**JDBC Request元素中执行多个语句。
我也遇到过类似的情况,在继续进行其余测试之前,我需要在数据库上执行一些清理语句。我能够通过从外部文件阅读SQL语句来实现这一点,使用
CSV Data Set Config嵌套在Loop Controller中,在单独的setUp Thread Group**中。
这些元素是这样放置的:

我使用了以下配置:

循环控制器

  • 循环计数:Forever
    CSV数据集配置
  • 文件名:/path/to/multiple-statements.sql
  • 变量名称:STMT
  • 在EOF上回收:False
  • 在EOF上停止线程:True
    JDBC请求
  • 查询:${STMT}

Loop Controller被设置为永远运行,因为CSV Data Set Config上设置了停止条件。每次迭代将读取文件的一行,设置变量STMT,然后JDBC Request将执行查询${STMT}
当到达文件结束时,setUp Thread Group将停止,核心测试Thread Group将继续。

相关问题