前言
上一篇博客講了如何測試多條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時,不會更新到數據庫,不影響其他數據
結語
九牛一毛