栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jmeter---jdbc协议脚本开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jmeter---jdbc协议脚本开发

jdbc协议脚本开发
  • 1.下载一个驱动
  • 2.添加JDBC Connection Configuration配置
  • 3.添加JDBC Request
    • 3.1用foreach对jdbc request的值处理
    • 3.2用beanshell对 jdbc result的值处理

1.下载一个驱动

JDBC
https://dev.mysql.com/downloads/

mysql-connector-java-5.1.46.jar放在ext的lib目录下就可以

2.添加JDBC Connection Configuration配置

添加–配置元件–JDBC Connection Configuration

添加后展示5个部分,分别解释一下5个部分

第一部分variable Name Bound to pool
Variable Name for created pool:数据库连接池的名称。
jmeter中一个测试计划可以有多个 JDBC Connection,要求名称不重复。

第二部分Connection pool Configuration连接池参数配置,保持默认
Max Number of Connections:连接池最大连接数(0表示线程不共享连接,每个线程都会获取连接,一般默认为0即可)
Max Wait(ms):连接池最大等待时间 ,默认10s,一般默认即可
Time Between Eviction Runs(ms):线程可空闲时间,若空闲超过该时间则关掉,默认1min
Auto Commit:自动提交sql语句(更新数据的操作,是否需要commit,true表示需要,false表示不需要)
Transaction isolation:事务隔离级别,一般保持默认即可

第四部分Connection validation by Pool验证连接池是否可响应(测试用)
Test While Idle:当连接空闲时是否断开,true表示是,false表示否
Soft Min Evictable Idle Time(ms):连接池处于空闲状态的最短时间
Validation Query:简单的查询,用来验证数据库是否仍在响应,一般选择select 1

第五部分Database Connection Configuration数据库链接配置
Database URL:数据库链接,例如:jdbc:mysql://ip:port/dbname?,后可跟useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8(用来支持多条sql、定义编码格式)
JDBC Driver class:数据库驱动,根据不同数据库选择,若是mysql,就选择com.mysql.jdbc.Driver

常见的数据库链接url
数据库驱动、URL

数据库驱动url
MySQLcom.mysql.jdbc.Driverjdbc:mysql://host:port/{dbname}
Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:user/pass@//host:port/service
sqlServer$com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:port;databaseName=databaseName
PostgreSQLorg.postgresql.Driverjdbc:postgresql:{dbname}
3.添加JDBC Request

线程组–添加–取样器–JDBC Request
展示三部分

第一部分Variable Name Bound to Pool
Variable Name of Pool declared in JDBC Configuration ,与配置元件中设置的JDBC Connection Configuration中Variable Name for created pool一致,若不一致获取不到配置的参数

第二部分:SQL QUERY搜索类型

Query Type(一般前三种就够用)
Select Satement 查询(将数据都查询出来)


问题:写了两条语句并未查询出两条语句

写了两条语句并未查询出两条语句的解决办法:将Query Type选择Callable Satement ,就可以展示两条数据


修改数据



Update Satement增删改
Callable Satement 包含
Prepared Select Satement预编译查询,语句条件字段值可以用占位符?(逗号分隔),选择这个时需要与后面的第三部分配合使用
一个占位符:
注意:假如数据库类型int ,Parameter types就只能是integer或bigint或varchar




两个占位符:
第三部分也要写两个值,第一个值赋给第一个占位符,第二个赋给第二个占位符

Prepared Update Satement
commit
Rollback
AutoCommit (false)

查询完后怎么用?(将查询的内容存起来)


查询到的cid、caption字段传给Variable Names的cid、caption变量,在Result Variable Name中用result变量将结果保存起来

3.1用foreach对jdbc request的值处理

若要遍历cid或caption的值可以用foreach操作,若要引用cid或caption都可以用${}引用


3.2用beanshell对 jdbc result的值处理

假若将变量result写到Result Variable Name,用beanshell对result的值处理


log.info(“==========”+vars.getObject(“result”));用日志打印出获取到的cid的值

log.info(““+vars.getObject(“result”).size());用日志打印出对象有15个元素(cid)

log.info(”
”+vars.getObject(“result”).get(0));用日志打印出对象第一个元素(cid)
log.info(“==========”+vars.getObject(“result”).get(5).get(“cid”));用日志打印出对象第5个元素的值

如果要获取元素的值供后面使用,先转成String ,在vas.put到一个变量就可以用了
Object obj=vars.getObject(“result”).get(5).get(“cid”);
vars.put(“var”, obj.toString());

第三部分
Parameter values用于替换SQL语句中占位符?(逗号分隔)
Parameter types对应参数数据库中的类型(假如数据库类型int 就只能是integer,bigint、varchar)
Variable Names:sql执行后,结果保存到变量名列表(多个变量名用逗号分割)
Result Variable Name:保存SQL执行结果,每一行结果是一个包含列名的map
Query timeout(ms):查询超时时间,可以不填
Handle Results保存的结果集,保持默认即可

JDBC 预处理程序:可以做数据初始化
JDBC 后置处理程序:可以做数据的清理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000260.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号