Jmeter JDBC显示事务处理

Jmeter JDBC显示事务处理

1.最近遇到一个奇葩需求,用jmeterJDBC Sampler写一个手动提交事务的用例。查看JDBC configuration :

Jmeter JDBC显示事务处理

发现此配置可以把 setAutoCommit设置为false;

 

2.接下来写JDBC Sampler 

Jmeter JDBC显示事务处理

Jmeter JDBC显示事务处理

3.跑下验证一下,奈何发现数据库始终无法插入数据。

4.查看源码,发现每个Sampler 在执行完成后都会关闭链接,难怪commit无法提交成功。

Jmeter JDBC显示事务处理

5.修改源码

1)根据在JDBC Connect Configuration中的 AutoCommit值为false来判断调用我们自己写的方法

Jmeter JDBC显示事务处理

2)在AbstractJDBCTestElement类中重载 execute方法(此处以PREPARED_UPDATE方法为例,其余的相似

Jmeter JDBC显示事务处理

Jmeter JDBC显示事务处理

3)修改getPreparedStatement方法

Jmeter JDBC显示事务处理


6.测试代码:

Jmeter JDBC显示事务处理

7.执行结果

Jmeter JDBC显示事务处理