JMeter連接Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟
JMeter連接mysql數(shù)據(jù)庫(kù)是很方便的,下面就演示一下具體的操作。
首先,在本地安裝好mysql服務(wù)器,建立庫(kù)和表,并準(zhǔn)備數(shù)據(jù)以供測(cè)試使用。

接下來(lái),在【測(cè)試計(jì)劃】中添加JDBC驅(qū)動(dòng),即下載mysql-connector-bin.jar并添加到classpath中。如下圖所示:

當(dāng)然,如果將這個(gè)jar包直接放在JMeter安裝目錄的lib文件夾中,就無(wú)需在【測(cè)試計(jì)劃】中添加了。
當(dāng)上面的準(zhǔn)備工作完成后,就可以在線程組下添加一個(gè)【配置元件】–【JDBC Connection Configuration】

參數(shù)詳解:
| 名稱 | 描 述 | 必須 |
|---|---|---|
| Name | 腳本中顯示的這個(gè)元件的描述性名稱 | 是 |
| Variable Name for created pool | 連接所綁定的變量名??梢詣?chuàng)建多個(gè)連接,每個(gè)連接綁定到不同的變量名,后續(xù)【JDBC Request】通過(guò)對(duì)應(yīng)variable name使用相應(yīng)的連接 | 是 |
| Max Number of Connections | 連接池最大允許連接數(shù)。默認(rèn)設(shè)置為0,代表每個(gè)線程獲得自己的連接池。如果使用共享連接池,將其設(shè)置成與線程數(shù)相同即可 | 是 |
| Max Wait (ms) | 超時(shí)時(shí)間。如果嘗試連接的過(guò)程超過(guò)了這個(gè)時(shí)間,則拋出異常并停止連接 | 是 |
| Time Between Eviction Runs (ms) | 運(yùn)行狀態(tài)下,空閑對(duì)象回收線程休眠時(shí)間。如果設(shè)為負(fù)數(shù),空閑對(duì)象回收線程將不會(huì)運(yùn)行 | 是 |
| Auto Commit | 自動(dòng)提交開(kāi)關(guān),true代表開(kāi)啟 | 是 |
| Transaction isolation | 事務(wù)隔離,一般使用默認(rèn)即可 | 是 |
| Test While Idle | 當(dāng)連接空閑時(shí)是否進(jìn)行測(cè)試 | 是 |
| Soft Min Evictable Idle Time(ms) | 連接可以在池中處于空閑狀態(tài)的最短時(shí)間,超過(guò)這個(gè)時(shí)間的空閑連接才會(huì)被回收 | 是 |
| Validation Query | 用于確定數(shù)據(jù)庫(kù)是否仍在響應(yīng)的簡(jiǎn)單查詢 | 否 |
| Database URL | 數(shù)據(jù)庫(kù)的JDBC連接串 | 是 |
| Username | 數(shù)據(jù)庫(kù)連接的用戶名 | 是 |
| Password | 數(shù)據(jù)庫(kù)連接的密碼 | 是 |
添加【JDBC Request】

最終腳本結(jié)構(gòu)完成,運(yùn)行腳本,結(jié)果如下:

再看Debug Sampler中:

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

【JDBC Request】的【Query Type】選擇Callable Statement,然后將多條sql語(yǔ)句按順序?qū)懞茫織l語(yǔ)句要以分號(hào)結(jié)尾。

運(yùn)行后,查看結(jié)果:

再說(shuō)方案二。
方案二使用的前提是,mysql服務(wù)器上已經(jīng)建好相應(yīng)的存儲(chǔ)過(guò)程并執(zhí)行,如下例:
delimiter $$; # 存儲(chǔ)過(guò)程后面必須有() 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;
然后,【JDBC】中【Query Type】同樣選擇Callable Statement,sql語(yǔ)句只寫上調(diào)用存儲(chǔ)過(guò)程的語(yǔ)句即可。

運(yùn)行腳本,查看結(jié)果,可以看到存儲(chǔ)過(guò)程已經(jīng)被執(zhí)行,數(shù)據(jù)庫(kù)數(shù)據(jù)被修改成功:

至此,JMeter操作mysql數(shù)據(jù)庫(kù)的部分完結(jié)。
到此這篇關(guān)于JMeter連接Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)JMeter連接Mysql 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring中@Autowired自動(dòng)注入map詳解
這篇文章主要介紹了Spring中@Autowired自動(dòng)注入map詳解, spring是支持基于接口實(shí)現(xiàn)類的直接注入的,支持注入map,list等集合中,不用做其他的配置,直接注入,需要的朋友可以參考下2023-10-10
SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細(xì)講解
有時(shí)候參數(shù)的傳遞還需要更多的參數(shù),比如一個(gè)獲取用戶信息的請(qǐng)求中既有用戶ID等基本參數(shù),還要求對(duì)查詢結(jié)果進(jìn)行分頁(yè),針對(duì)這種場(chǎng)景,一般都會(huì)將分頁(yè)參數(shù)封裝成一個(gè)對(duì)象,然后將它和基本參數(shù)一起傳給控制器2023-02-02
java?Object的hashCode方法的計(jì)算邏輯分析
這篇文章主要介紹了java?Object的hashCode方法的計(jì)算邏輯分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot配置ssl后啟動(dòng)一直是端口被占用的解決
這篇文章主要介紹了springboot配置ssl后啟動(dòng)一直是端口被占用的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Spring依賴注入的兩種方式(根據(jù)實(shí)例詳解)
這篇文章主要介紹了Spring依賴注入的兩種方式(根據(jù)實(shí)例詳解),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
Java服務(wù)端如何解決跨域問(wèn)題?CORS請(qǐng)求頭方式
這篇文章主要介紹了Java服務(wù)端如何解決跨域問(wèn)題?CORS請(qǐng)求頭方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

