前言
上一篇博客讲了如何测试多条sql语句
可能某些细节没有提到
一般来说不太影响
但对于像我这样的孩子来说,某些地方会钻一丢丢角尖
就会感觉很别扭,少点什么似的
本来今天是主讲Update Statement的,正好这里的东西也不是太多
就顺带着和Callable Statement做个对比给客官们分析一下
捎带说两句Select Statement
如果是刚刚接触,想敲个小demo的客官,建议先看前几篇博客:
因为某些基本的配置,在下面不会过多阐述了,只会论其差异之处
正文
大概之前两篇博客都是在说如何测试select语句
当然这也正是我们测试sql语句时的重点
但不能说就不知道如何测试非select语句
现在咱们就说一说如何测试update、insert以及delete语句
基本测试
Query Type处选择Update Statement,在Query处写 需要测试的语句 如下图:
需要提醒的是测试的sql语句时, 默 认 情 况 下 都会对数据库进行更新的
我没有更改,因为个人感觉这样更有利于数据的观察,在文章结尾处会给大家介绍如何修改
下面看一下数据库在jmeter运行前后的 数 据 表 对 照
测试多条 非select语句
在 Query Type 为 Update Statement 时,是可以 同 时 测 试 多个非select语句的,比如:
虽然Jmeter中的响应数据显示的是更新了一行,但其实数 据 库 已经按照上面的sql语句改变了,如图:
比较Callable Statement、Select Statement
其实Select Statement、Update Statement、Callable Statement三者之间区别都是一点点的
放在一起对比看下,会更容易一点:
Select Statement:仅支持测试select语句,并且一次只能测试一条
Update Statement:支持测试非select语句,并且支持测试多条
若其中夹杂select语句,自动忽略
若第一条语句为select语句,报错
Callable Statement:只要语法正确,任何语句,再多的条数都能支持
最后统一说一句:在Jmeter中测试sql语句,默认会更新到数据库,但是不像在数据库中执行SQL语句那么严格
比如:删除某一数据时,如果数据库中没有改数据,而Jmeter并不会报错
下面给大家看个例子:
初始状态数据库的数据:
按从上到下的顺序排列的两个JDBC Request内容:
Jmeter运行之后两个Request分别对应的响应数据:
最后给大家看一下,Jmeter运行之后数据库中的数据:
更新数据库配置修改
在JDBC Connection Configuration的配置中
Auto Commit为True时,会自动提交更新到数据库
Auto Commit为False时,不会更新到数据库,不影响其他数据
结语
九牛一毛