文档章节

关于Jmeter中JDBC相关参数的应用

蓝蝶飞扬
 蓝蝶飞扬
发布于 2014/10/27 09:29
字数 1328
阅读 209
收藏 0

.数据库驱动类和URL格式:

Database

Driver class

Database URL

MySQL

com.mysql.jdbc.Driver

jdbc:mysql://host[:port]/dbname

PostgreSQL

org.postgresql.Driver

jdbc:postgresql:{dbname}

Oracle

oracle.jdbc.OracleDriver

jdbc:oracle:thin:@//host:port/service OR
        jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))        

Ingres (2006)

ingres.jdbc.IngresDriver

jdbc:ingres://host:port/db[;attr=value]

SQL Server (MS JDBC driver)

com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc:sqlserver://host:port;DatabaseName=dbname

Apache Derby

org.apache.derby.jdbc.ClientDriver

jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;...]]        

注:仅供参考

.相关参数

1.Variable Name

其中的Variable Name和上面JDBC Connection Configuration中的Variable Name相同,这里表示JDBC Connection Configuration 建立一个名为pubpool的连接池,之后其他JDBC Request 都共用这个连接池。

2.SQL Query

(1)Query Type

xxx Statement需要填写的sql是一句完整可执行的sql,而Prepared  xxx Statement允许用户在sql中使用??然后再Parameter valuesParameter types中填写参数和类型,最终执行时替代sql中的?,形成一句完整的sql语句。

Select statement:

##待验证,网上找的例子:

如果SQL语句中需要使用参数变量,那么Query Type 需要设置为Select Statement ,需要先添加Random Variable,然后在Parameter Values中输入${变量名称},${变量名称}

Paramter types中输入变量的数据类型。 如下图示:

中间用逗号分隔。只能执行第一个SQL语句。

Update statement: 对于InsertUpdateDelete语句,需要设置Query Type为:Update Statament.数据修改语句中可以使用参数,而且可以顺序执行多个修改语句。

Egg

Callable statement

##待验证:

多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query TypeCallable Statement,然后顺序输入select语句,不用加go或者分号。如果Query Type设置为:Select Statement的话,只执行第一个SQL语句。

Prepared select statement:

Prepared update statement:

Commit

JDBC connection configuration中的自动提交为false,执行更改,增加或删除操作后,查询数据并无更改,再添加一个JDBC Request,设置其Query Typecommit,再次查询,之前的操作生效。

Rollback

JDBC connection configuration中的自动提交为false,执行更改,增加或删除操作后,查询数据并无更改(相当于编辑没保存), 再添加一个JDBC Request,设置其Query Typerollback(相当于编辑后撤销),再次查询,仍然没有更改。

如果把JDBC connection configuration中的自动提交为true,执行更改,增加或删除操作后,查询数据更改,但一旦事物被提交就无法rollback

Autocommit(false)Autocommit(true):

JDBC connection configuration中的自动提交为truefalse,是设置系统参数的默认值。添加一个JDBC Request,设置其Query Type Autocommittruefalse后(相当于修改系统参数),再进行对数据库的增加、删除、修改操作。

Edit:必须是对上述之一的结果的引用, 为使用正则表达式的操作。

2Parameter values:表示我们要添加的数据,需要不同数据添加可以使用参数化

Parameter types为上面需要输入数据的类型,与上面的一一对应

Parameter valuesParameter types:成对出现,且sql语句中有多少个?,这里就必须有多少对参数键值对,假设sql语句为select * from ZMYW_USER  where ID=?,那么可以设置Parameter values${id}Parameter typesVARCHAR 

(3)Variable names:变量名称,为数据库的字段名称,有多个字段返回时,可以使用逗号隔开,用于存放select操作返回的查询结果 

Result variable name:用于存放select操作返回的查询结果集。

3.扩展:

(1) 当选择了"Prepared select statement"”Prepared update statement "Callable statement"的类型时,每个连接的语句缓存使用 JDBC 请求。在默认情况下将存储每个连接高达 100 Prepared Statements,这可能会影响您的数据库 (打开的游标)。这可以通过定义"jdbc sampler.nullmarker"属性更改。

(2)在实际的项目中,至少有2种类型的JDBC请求需要关注:select语句和存储过程。前者反应了select语句是否高效,以及表的索引等是否需要优化;后者则是反应存储过程的算法是否高效。它们如果效率低下,必然会带来响应上的不尽如人意。对于这两种请求,JDBC请求的配置略有区别。


1Query TypeSelect Statement时,对应执行代码为:stmt = conn.createStatement(); 

ResultSet rs = null; 

rs = stmt.executeQuery(sql); 

return getStringFromResultSet(rs).getBytes(ENCODING); 

2Query TypeCallable Statement时,对应执行代码为:CallableStatement cstmt = getCallableStatement(conn); 

int out[]=setArguments(cstmt); 

boolean hasResultSet = cstmt.execute(); 

String sb = resultSetsToString(cstmt,hasResultSet, out); 

return sb.getBytes(ENCODING); 

3Query TypeUpdate Statement时,对应执行代码为:stmt = conn.createStatement(); 

stmt.executeUpdate(sql); 

int updateCount = stmt.getUpdateCount(); 

String results = updateCount + " updates"; 

return results.getBytes(ENCODING); 

4Query TypePrepared Select Statement时,对应执行代码为:PreparedStatement pstmt = getPreparedStatement(conn); 

setArguments(pstmt); 

ResultSet rs = null; 

rs = pstmt.executeQuery(); 

return getStringFromResultSet(rs).getBytes(ENCODING); 

5Query TypePrepared Update Statement时,对应执行代码为:

PreparedStatement pstmt = getPreparedStatement(conn); 

setArguments(pstmt); 

pstmt.executeUpdate(); 

String sb = resultSetsToString(pstmt,false,null); 

return sb.getBytes(ENCODING); 

6Query TypeRollback时,对应执行代码为:

   conn.rollback(); 

return ROLLBACK.getBytes(ENCODING); 

7Query TypeCommit时,对应执行代码为:

conn.commit(); 

return COMMIT.getBytes(ENCODING); 

8Query TypeAutoCommit(false)时,对应执行代码为:conn.setAutoCommit(false); 

return AUTOCOMMIT_FALSE.getBytes(ENCODING); 

9Query TypeAutoCommit(true)时,对应执行代码为:

conn.setAutoCommit(true); 

return AUTOCOMMIT_TRUE.getBytes(ENCODING); 

10)其它情况直接抛异常:throw new UnsupportedOperationException("Unexpected query type: "+_queryType);


© 著作权归作者所有

上一篇: http状态码
下一篇: _StringFromFile函数
蓝蝶飞扬
粉丝 25
博文 122
码字总数 89785
作品 0
西双版纳
私信 提问
Apache JMeter 5.1 发布,JDBC 测试可设置 init SQL

Apache JMeter 5.1 发布了,JMeter 是一个纯 Java 编写的用于测试服务器的应用。它可以用来生成测试负载,并测试性能与功能性行为。JMeter 支持包括 HTTP(S)、JDBC、JMS、FTP、LDAP、TCP 与本...

h4cd
02/20
1K
2
使用Jmeter自动化压测TCP Server经验

使用Jmeter自动化压测TCP Server经验 • Jmeter简介 • Jemter的主要功能 • Jmeter TCP发送方式 • Jmeter 测试TCP配置 • Jmeter快速上手使用 1、Jmeter简介 Apache JMeter是Apache组织开发...

HowieXue
03/20
0
0
JMeter-Java Sampler 编写范例

 今天,听段念的培训,学了一下Jmeter写Java请求的过程。   根据某博文,修改其中代码的bug后,贴在下面吧;另外公司一同学Raylupas在半年前也写过关于JMeter写Java Sampler的文章,现在终...

今幕明
2015/03/30
902
0
压力测试 使用Jmeter进行RPC压力测试

版权声明:本文为博主原创文章,转载请注明来源。开发合作联系luanpenguestc@sina.com https://blog.csdn.net/luanpeng825485697/article/details/83787284 Jmeter 下载地址:http://jmeter....

数据架构师
2018/11/07
0
0
JMeter学习-001-JMeter初识

Apache JMeter是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试)。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试...

拎壶冲冲冲
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
6
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部