通过Jmeter压测存储过程

一、存储过程准备:

1、建立一个空表:

1

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

2、建立一个存储过程:

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、配置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配置


          【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 21:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 21:32:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 21:32:02       82 阅读
  4. Python语言-面向对象

    2023-12-11 21:32:02       91 阅读

热门阅读

  1. go进阶语法10问

    2023-12-11 21:32:02       59 阅读
  2. 含电热联合系统的微电网运行优化附Matlab代码

    2023-12-11 21:32:02       55 阅读
  3. Holynix

    Holynix

    2023-12-11 21:32:02      50 阅读
  4. PKCS#11及其在车联网中的应用

    2023-12-11 21:32:02       58 阅读
  5. 用keepalived做mysql高可用

    2023-12-11 21:32:02       59 阅读
  6. 使用can_require函数的测试程序

    2023-12-11 21:32:02       51 阅读
  7. 算法基础九

    2023-12-11 21:32:02       33 阅读
  8. 算法工程师-机器学习面试题总结(6)

    2023-12-11 21:32:02       54 阅读
  9. 自然场景图像中的文本检测综述

    2023-12-11 21:32:02       44 阅读