測試的過程中,我們經常要對數據庫表數據進行查詢、修改、添加等操作。在用 JMeter 做性能或者接口等測試時,也可以讓 JMeter 連接數據庫然後對數據庫數據進行相關操作。下面先來學習如何使用 JMeter 連接 MySql 數據庫進行操作。
一、創建測試
首先創建一個測試計劃和線程組,然後在線程組下添加配置元件 JDBC Connection Configuration 。

二、設置數據庫連接配置
接下來要對數據庫連接的配置項進行設置。

Variable Name for created pool: 創建池的變量名 。這個變量在後面介紹的 JDBC Request 請求中用到。
Max Number of Connections: 池中允許的最大連接數。在大多數情況下,將其設置為零(0),這意味着每個線程都將擁有自己的池,其中只有一個連接,即線程之間不共享連接。如果您真的想使用共享池,那麼將 max count 設置為與線程數量相同,以確保線程不會彼此等待。
Max Wait(ms):在試圖檢索連接的過程中超過了超時時間,則池會拋出一個錯誤 。
Time Between Eviction Runs (ms):在被逐出的時間間隔(ms)。在空閑對象驅逐線程之間運行的毫秒數。當非正的時候,就不會運行無用的對象驅逐線程(默認為”60000″,1分鐘) 。
Auto Commit:將自動提交或關閉連接到連接上 。
transaction isolation:事務隔離 。這個默認即可,具體用法暫時還沒有研究過,會的可以分享一下。
Test While Idle :測試池的空閑連接 ,後面的驗證查詢將用於測試它。
Soft Min Evictable Idle Time(ms) :軟Min可驅逐空閑時間(ms) 。在它有資格被閑置的對象驅逐者強制驅逐之前,一個連接可能閑置在池中,並且至少在池中存在空閑連接的額外條件,默認值為5000(5秒) 。
Validation Query :驗證查詢 。一個簡單的查詢,用來確定數據庫是否仍在響應。 這個驗證查詢在池創建中使用,即使“空閑測試”建議查詢只在空閑連接上使用,也可以驗證它。
驗證查詢的列表可以配置 jdbc.config.check。查詢屬性,默認情況下:
hsqldb:select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
Oracle:select 1 from dual
DB2:select 1 from sysibm.sysdummy1
MySQL:select 1
Microsoft SQL Server (MS JDBC driver):select 1
PostgreSQL:select 1
Ingres:select 1
Derby:values 1
H2:select 1
Firebird:select 1 from rdb$database
Database URL:數據庫的JDBC連接字符串。格式:jdbc:mysql://host[:port]/dbname,稱舉個栗子:
jdbc:mysql://127.0.0.1:3306/db_api。為了避免讀取數據出現亂碼,可以在前面基礎上加上處理亂碼的字符串,例如:jdbc:mysql://127.0.0.1:3306/db_api?useUnicode=true&characterEncoding=utf8。
JDBC Driver class :JDBC驅動程序類 。MySql 選擇 com.mysql.jdbc.Driver,另外我們要把 mysql-connector-java.jar 包放到 JMeter/lib目錄下,然後重啟 JMeter 。
mysql-connector-java.jar 包下載地址:
https://pan.baidu.com/s/14N4Beohy14SvKJziAHVSDg 密碼:vmy3
下面列舉一些數據庫及其參數的實例:
MySQL
- Driver class:com.mysql.jdbc.Driver
- Database URL:jdbc:mysql://host[:port]/dbname
PostgreSQL
- Driver class:org.postgresql.Driver
- Database URL:jdbc:postgresql:{dbname}
Oracle
- Driver class:oracle.jdbc.OracleDriver
- Database URL:jdbc:oracle:thin:@//host:port/service ORjdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))
Ingress (2006)
- Driver class:ingres.jdbc.IngresDriver
- Database URL:jdbc:ingres://host:port/db[;attr=value]
Microsoft SQL Server (MS JDBC driver)
- Driver class:com.microsoft.sqlserver.jdbc.SQLServerDriver
- Database URL:jdbc:sqlserver://host:port;DatabaseName=dbname
Apache Derby
- Driver class:org.apache.derby.jdbc.ClientDriver
- Database URL:jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]
Username :連接數據庫的用戶名。
Password:連接數據庫的密碼。
三、連接數據庫操作
設置完成後,接下來在線程組下創建一個 JDBC Request 請求。

1、查詢操作
例如我們先來個查詢語句。

運行腳本之前,我們先在 SQLyog 中查詢看 table_api 表中有哪些數據?

接着在 JMeter 中添加一個查看結果樹監聽器,運行一次腳本。

從上面的結果可以看出,JMeter 已經成功操作了數據庫,並且把 table_api 表的數據查詢出來了,和在 SQLyog 中查詢到的結果是一致的。
2、增加操作
下面往表內插入一行新數據。

運行腳本,查看結果。

從結果可以看出,插入數據也是沒問題的。
3、修改操作
接下來,我們把隔壁老王的電話修改一下。

運行腳本,查看結果。

數據修改成功。
4、刪除操作
最後,我們把隔壁老王的數據刪除。

運行腳本,查看結果。

從查詢結果看出,隔壁老王數據被刪除,永遠離開了我們。
以上就是 JMeter 連接 MySql 對數據庫的一些操作,希望對大家有所幫助。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/229816.html