通过Jmeter压测存储过程

一、存储过程准备:

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、调试下:
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配置

更多测试好文,请关注公众号:诗泽园

通过Jmeter压测存储过程的更多相关文章

  1. jmeter压测app

    使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...

  2. JMeter压测基础(三)——Mysql数据库

    JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.ja ...

  3. jmeter压测参数设定(转)

    jmeter压测参数设定 一.基本公式 线程数 = QPS * time: 注:QPS--每秒完成请求的个数:time--每个请求响应完成平均需要时间: 故QPS * time就是所有请求完成响应所需 ...

  4. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

  5. jmeter压测之添加负载机

    jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...

  6. jmeter 压测duobbo接口,施压客户端自己把自己压死了

    jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...

  7. jmeter压测-负载配置

    jmeter 压测 一般压测的时间是10-15分钟 TPS:服务端每秒钟处理的请求数  越大越好 响应时间 :越短越好 并发用户数  也就是多少并发 指标给你:tps要达到多少 响应时间要达到多少 并 ...

  8. JMeter压测“java.net.BindException: Address already in use: connect”解决方法

    之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意 ...

  9. jmeter压测学习1-window环境准备与案例

    前言 最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题. 在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketExcep ...

  10. JMeter压测上对于并发的认识误区

    1.误区 在JMeter压测过程中,我们通常认为1s内100的并发量(即:QPS为100)的设置如下: 此时,没有再添加额外的控制器.上述中的参数设置解释:Number of Threads(user ...

随机推荐

  1. AspNetCore 成长杂记(一):JWT授权鉴权之生成JWT(其二)

    引子 前面说了用第三方类库生成JWT的故事,给我带来了很大的方便,并且我也承诺要写一篇用常规方法生成JWT的文章(一般都是用微软官方的类库),因此才有了这篇文章. 另外,在前面的文章中,我要纠正一下一 ...

  2. Jenkins-Email Extension Plugin邮件配置

    前言:此文为 Jenkins 2.346 版本 一.配置准备 1.安装 Email Extension Plugin 插件 二.配置邮件 Email Extension Plugin 部分 1.进入系 ...

  3. 2023-03-06:给定一个二维网格 grid ,其中: ‘.‘ 代表一个空房间 ‘#‘ 代表一堵 ‘@‘ 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之

    2023-03-06:给定一个二维网格 grid ,其中: '.' 代表一个空房间 '#' 代表一堵 '@' 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之 ...

  4. 2022-08-28:把字符串 s 看作 “abcdefghijklmnopqrstuvwxyz“ 的无限环绕字符串, 所以 s 看起来是这样的: ...zabcdefghijklmnopqrstuv

    2022-08-28:把字符串 s 看作 "abcdefghijklmnopqrstuvwxyz" 的无限环绕字符串, 所以 s 看起来是这样的: -zabcdefghijklmn ...

  5. 2020-11-22:mysql中,什么是filesort?

    福哥答案2020-11-22:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/412)如果mysql在排序的时候没有使用到索引那么就会输出 using ...

  6. 2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 。返回能走出来的最长的递增链长度。

    2021-05-06:给定一个二维数组matrix, 你可以从任何位置出发,走向上下左右四个方向 .返回能走出来的最长的递增链长度. 福大大 答案2021-05-06: 自然智慧即可. 动态规划.二维 ...

  7. json在线效验检测工具

    json在线效验检测工具:https://www.sojson.com/ 解析结果: { 'os_type': 'Windows', 'os_release': '10 64bit 10.0.1904 ...

  8. lec-5-Policy Gradients

    直接策略微分 Goal: idea:求最大值:直接求导 tip:利用log导数等式进行变换 具体推导: 理解策略梯度 假定开始policy服从高斯分布,采样得到回报,计算梯度,根据reward增加动作 ...

  9. Spring Cloud开发实践(五): Consul - 服务注册的另一个选择

    目录 Spring Cloud开发实践(一): 简介和根模块 Spring Cloud开发实践(二): Eureka服务和接口定义 Spring Cloud开发实践(三): 接口实现和下游调用 Spr ...

  10. 【工作随手记】deaklock排查

    生产环境当中还没真正遇到过死锁的问题.有些疑似死锁的问题,后来经过排查也只是其它问题导致的.所以通过jstack到底怎样排查死锁问题有点疏忽了.这里作个记录. 模拟一个死锁 顺便复习一下. 死锁的产生 ...