美文网首页百人计划
【JMeter】jdbc-procedure:mysql存储过程

【JMeter】jdbc-procedure:mysql存储过程

作者: Joey_GZ | 来源:发表于2018-09-17 23:23 被阅读71次
    【问题】

    如何在jmeter的一个脚本里实现增删改查四个sql语句?

    【解决】

    若在一个请求里实现,则用一个存储过程,把4个操作写在一起。

    1. 方法一:
      在数据库上创建存储过程,再在jmeter上call一下,jdbc类型选择callable statement。
    2. 方法二:
      在jmeter的一个请求里创建存储过程,另一个请求执行,jdbc类型均选择callable statement。
    一、【Mysql数据库实现存储过程】
    DELIMITER ||
    DROP PROCEDURE IF EXISTS sp_test;
    create PROCEDURE sp_test()
    BEGIN
       insert into test_copy (id,name,age) values(8,'ss1','9'),(9,'ss2','9'),(10,'ss3','9');
       update test_copy set age=4 where name like '%ss%';
       select * from test_copy WHERE age='4';
       delete from test_copy where age='4';
    END ||
    
    call sp_test;
    
    执行结果
    二、【Jmeter实现存储过程】
    -- 请求1:创建存储过程
    DROP PROCEDURE IF EXISTS sp_test;
    create PROCEDURE sp_test()
    BEGIN
       insert into test_copy (id,name,age) values(8,'ss1','9'),(9,'ss2','9'),(10,'ss3','9');
       update test_copy set age=4 where name like '%ss%';
       select * from test_copy WHERE age='4';
       delete from test_copy where age='4';
    END 
    -- 请求2:执行存储过程
    call sp_test;
    
    jmeter创建存储过程 创建存储过程results jmeter执行存储过程 执行存储过程results
    注意:

    在mysql里执行成功的语句,黏贴到Jmeter里,需要把分隔符 DELIMITER 去掉。

    三、【Jmeter报错】

    【error1】
    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 'DELIMITER ||
    DROP PROCEDURE IF EXISTS sp_test;
    create PROCEDURE sp_test' at line 1
    【解决】把把分隔符 DELIMITER || 注释掉

    【error2】
    Can not issue data manipulation statements with executeQuery().
    【解决】jdbc类型 Query Type选择 callable statement。

    【error3】
    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 'call sp_test201809b' at line 10
    【解决】执行存储过程的语句不能跟创建语句写在同一个请求里,分开两个请求写。

    相关文章

      网友评论

      • _王子_:这法子你也能想到,不错不错
        😏😏😏

      本文标题:【JMeter】jdbc-procedure:mysql存储过程

      本文链接:https://www.haomeiwen.com/subject/ucljnftx.html