• 性能测试 —— 通过Jmeter压测存储过程!


    一、存储过程准备:

    1、建立一个空表:

    1

    CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER );

    2、建立一个存储过程:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    CREATE OR REPLACE PROCEDURE insert_test_data

    (n IN NUMBER) AS

    BEGIN

      --EXECUTE IMMEDIATE 'truncate table test_data';

      FOR i IN 1..n LOOP

        INSERT INTO test_data VALUES (i, 'Name' || i, i * 10);

      END LOOP;

    COMMIT;

    END insert_test_data;

    3、调试下:

    1

    select count(*) from test_data t; call insert_test_data(1000); truncate table test_data;

    二、测试工具准备:

    1、网上找到:mysql-connector-java-8.0.29.jar(版本不限定),放到Jmeter目录\lib\ext下。

    2、网上找或将本地:ojdbc14.jar,放到Jmeter目录\lib下。

    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036

    三、工具配置及执行:

    全局配置如下图:

    1、配置JDBC Connection Configuration:

    右键,Config Element下添加节点,配置如图:

    a. Name可以随意改,改后保存生效

    b. Variable Name for created pool,随便起一个,不过需要跟后续步骤的配置一致,建议就叫oracle

    c. 中间一大段暂时默认,Validation Query随意选一个

    d. Database URL: jdbc:oracle:thin:@{ip}/{oracle服务名},其中{ip}是数据库服务器ip,{oracle服务名}是TNS中的Service_Name,类似orcl这种

    e. 连接数据库的用户名和密码

    2、配置吞吐量控制器(可跳过):

    如图就是占20%的吞吐量。示例中SP占20%,SQL占80%。模拟实际的80%查询,20%写入的场景。

    3、配置JDBC Request:

    右键,Sampler里找到JDBC Request,添加。

    对于存储过程:

    a. Variable Name of Pool...:和JDBC Connection Configuration配置一致,这里配为:oracle

    b. Query Type: 存储过程的话,选Callable Statement

    c. Query: 如图,写存储过程调用,照图上格式写,参数用?表示,多个参数用逗号隔开

    d. Para Values,参数值,多个用逗号隔开

    e. Para types, 参数的数据类型

    f. Variable names,返回值列名

    g. HandleResutleSet:Store as String即可

    对于SQL语句:

    Query Type选Select Statement,Query中直接写SQL语句即可。注意语句最后不要写“;”

    4、其他配置如查询结果树,聚合报告,TPS,PerfMon监控等,同基础Jmeter配置

    今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦...... 

  • 相关阅读:
    java计算机毕业设计基于安卓Android/微信小程序的论坛交流系统App
    结合使用数据库和最小 API、Entity Framework Core 和 ASP.NET Core
    Pthread 并发编程(二)——自底向上深入理解线程
    并联型模糊PID复合控制器的simulink建模与仿真
    代码随想录51——动态规划:309最大买卖股票时机含冷冻期、714买卖股票的最大时机含手续费、300最长递增子序列
    基于计算机技术的媒体分析
    mysql 常见操作指令
    我摊牌了!真正的灰度队列实现方案!全网你都搜不到!
    JavaScript动画库:Anime.js
    1)合同/案件/法务/合规/风险 开篇
  • 原文地址:https://blog.csdn.net/m0_47485438/article/details/133906384