JMeter連接mysql數據庫是很方便的,下面就演示一下具體的操作。
首先,在本地安裝好mysql服務器,建立庫和表,並準備數據以供測試使用。

接下來,在【測試計劃】中添加JDBC驅動,即下載mysql-connector-bin.jar並添加到classpath中。如下圖所示:

當然,如果將這個jar包直接放在JMeter安裝目錄的lib文件夾中,就無需在【測試計劃】中添加了。
當上面的準備工作完成後,就可以在線程組下添加一個【配置元件】–【JDBC Connection Configuration】

參數詳解:

添加【JDBC Request】

最終腳本結構完成,運行腳本,結果如下:

再看Debug Sampler中:

可以看到,sql查詢結果存儲在變量中,例如name的變量,name_#=3,表示sql語句name字段有3個結果,name_1、name_2、name_3,在腳本後續想使用這些值時用${variable name}引用,例如用${name_1}即可使用”Tom”這個值。
以上便是JMeter操作mysql數據庫的常規用法,已經能滿足大部分使用情況,畢竟測試中一般只會進行查庫操作,很少寫庫。但有時候我們難免遇到一次性執行多種類型sql語句(類似事務)的場景,按照上文中的寫法,是實現不了的。
要實現這個功能,有兩種方案,首先看方案一。
- 【JDBC Connection Configuration】配置頁面,Database URL:jdbc:mysql://localhost:3306/hkkTest後添加?allowMultiQueries=true

2、【JDBC Request】的【Query Type】選擇Callable Statement,然後將多條sql語句按順序寫好,每條語句要以分號結尾。

運行後,查看結果:

再說方案二。方案二使用的前提是,mysql服務器上已經建好相應的存儲過程並執行,如下例:
delimiter $$;
# 存儲過程後面必須有()
CREATE PROCEDURE user_procedure()
BEGIN
UPDATE test.user SET age=24 WHERE name='Tom';
INSERT INTO test.user(id,name,age,address) VALUES(4,'Lucy',17,'Paris');
INSERT INTO test.user(id,name,age,address) VALUES(5,'Messi',32,'Barcelona');
DELETE FROM test.user WHERE name='Jack';
SELECT * FROM test.user;
END
$$;delimiter;3、然後,【JDBC】中【Query Type】同樣選擇Callable Statement,sql語句只寫上調用存儲過程的語句即可。

運行腳本,查看結果,可以看到存儲過程已經被執行,數據庫數據被修改成功:

至此,JMeter操作mysql數據庫的部分完結。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/224508.html
微信掃一掃
支付寶掃一掃