您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

jmeter(14)-使用jdbc请求构建性能测试数据

bubuko 2022/1/25 20:10:03 其他 字数 6175 阅读 976 来源 http://www.bubuko.com/infolist-5-1.html

1.通过jdbc请求往数据库中插入数据, 举例: create table student( snumber int(11) NOT NULL, sname VARCHAR(32) NOT NULL, sage int(11) NOT NULL, ssex VARCHAR(8) NOT NULL, ...


1.通过jdbc请求往数据库中插入数据,

举例:

create table student(
snumber int(11) NOT NULL,
sname VARCHAR(32) NOT NULL,
sage int(11) NOT NULL,
ssex VARCHAR(8) NOT NULL,
PRIMARY KEY (snumber)
);

执行SQL为:

insert into loan.student (snumber,sname,sage,ssex) values (2,‘yuanyuan‘,18,‘女‘) ;

技术分享图片

 

jdbc请求:

SQL Query
技术分享图片

Query Type:

1、Select Statement:需要填写的sq|是一句完整可执行的sql,select查询;常用!

2、Update statement:对于Insert、Update、 Delete语句,需要设置此选项数据修改语句中可以使用参数,而且可以顺序执行多个修改语句。常用!

3、Callable statement:多个查询语句(不使用参数的情况下)可以放在一起按照顺序执行,  
(1)需要设置Query Type为Callable Statement, 然后顺序输入select语句, 需要加分号分割开。

select * from student where snumber=2;

select * from student;

 

技术分享图片


(2)如果Query Type设置为: Select Statement的话,只执行第一个SQL语句。

理解:怪不得我写了2个sql,但是只执行第一个sql。

select * from student where snumber=2;

select * from student;

 


4、Prepared select statement:
5、Prepared update statement:

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

7、Rollback: 把JDBC connection configuration中的自动提交为false,执行更改,增加或删除操作后,查询数据并无更改(相当于编辑没保存),
再添加一个JDBC Request,设置其QueryType为rollback(相当于编辑后撤销),再次查询,仍然没有更改。
如果把JDBC connection configuration中的自动提交为true,执行更改,增加或删除操作后,查询数据更改,但一旦事物被提交就无法rollback。

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

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

【6-10是与事务的隔离级别有关系,平常用不到,暂时不需要管!!!】

参数:

1、Parameter values:表示我们要添加的数据,需要不同数据添加可以使用参数化,比如我们写的SQL里面有个值是要通过csv data的参数化,比如ID参数化为1 2 3 4 5 6,保存变量为uu_id

那么我们在执行SQL的时候就需要用到参数化的uu_id,因为这里的Parameter values我们需要填写为uu_id 
2、Parameter types为上面需要输入数据的类型,与上面的一一对应,即为uu_id参数的数据类型。

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

4、Result variable name :用于存放select操作返回的查询结果集。
5、Query timeout (s) :超时时间

6、Handle ResultSet:在程序代码中,SQL语句执行结果后获取到结果集,一般都会进行处理,结果集的处理就需要依赖ResultSetHandler接口和其实现类。作用是将ResultSet转换为其他对象的类型

说明

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

这里还涉及到应该使用哪种类型?
具体例子见:
1.如果Query Type选择select statement, 在写SQL的时候需要写成:

select  *  from  student where snumber=${Id};  即该地方需要直接使用变量名的方式,该地方的变量名就是参数化csv data中的variable names的Id)

 

技术分享图片 

技术分享图片

 

2.如果Query Type选择Prepared Select Statement, 在写SQL的时候:
snumber后面的参数化形式可以直接用?, 然后在Parametervalues中写上参数的名字$ {Id}

技术分享图片

技术分享图片

 

3.如果Query Type选择update statement, 在写SQL的时候需要写成:

update  student set cc=XXXX where snumber=${Id};  即该地方需要直接使用变量名的方式,该地方的变量名就是参数化csv data中的variable names的Id)

 

4.如果Query Type选择Prepared Upate Statement, 在写SQL的时候:
snumber后面的参数化形式可以直接用?, 然后在Parametervalues中写上参数的名字$ {Id}

insert into loan.student (snumber,sname,sage,ssex) values (6,‘yuanyuan‘,18,‘女‘) 

${snumber}   ‘${name}‘  ${sage}  ‘${ssex}‘

这几个变量可以放在用户定义的变量
也可以放在csv data参数化文件中

insert into loan.student (snumber,sname,sage,ssex) values (${snumber},‘${name}‘,${sage},‘${ssex}‘) 

技术分享图片

因为jdbc设置了
如果想执行多条语句可以使用(allowMutiQueries=true表示在JDBC中执行多条Select或者update类型的语句)

jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

所以可以放多条sql语句

技术分享图片

 

jmeter(14)-使用jdbc请求构建性能测试数据

原文:https://www.cnblogs.com/yiyaxuan/p/12367848.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶