~什麼是JDBC?:全稱名為Java DataBase Connectivity,(java資料庫連線),在jmeter中是一種可以遠端運算元據庫的一類元件。
~jmeter如何運算元據庫?:jmeter是一款java應用,一般都是通過JDBC方式來實現;
*準備工作:jmeter運算元據庫需要JDBC驅動包,但下載的jmeter本身沒有提供任何的JDBC驅動包,需要另外下載。
*JDBC獲取途徑:可以找開發,可以去官網下載(地址:https://dev.mysql.com/downloads/connector/j/),需要注意的是,如果你是做效能測試的,JDBC的驅動包版本一定要下對,否則效能的瓶頸原因可能就出現版本號不一致上。如果是自動化,下載的驅動包版本比你資料庫版本高即可,低於的話可能會導致連線報錯。
*如何安裝驅動包?請檢視該篇文章:https://www.cnblogs.com/FBGG/p/11758565.html
~jmeter中和資料操作有關的元件幾個?他們的作用是什麼?:四個,作用如下
*JDBC Connection Configuration:(JDBC連線配置)元件,屬於必選元件。當需要連線多個庫時,可以新增多個。新增路徑(配置元件)>(JBDC Connection Configuration)
*JDBC Request:(JDBC請求),用於輸入sql資料運算元據庫。路徑(執行緒組)(取樣器)>(JDBC Request)
*JDBC PreProcessor:(JDBC前處理器),功能與JDBC Request類似,只不過這是在執行請求之前執行。路徑(前置處理器)>(JDBC PreProcessor)
*JDBC PostProcessor:(JDBC後處理器),功能與JDBC Request類似,只不過這是在執行請求之後執行。路徑(後置處理器)>(JDBC PostProcessor)
~JDBC Connection Configuration 配置講解?: 新增路徑(配置元件)>(JBDC Connection Configuration)
*Variable Name:(變數名稱),用來儲存連線配置資訊,後續的JDBC請求,JDBC前、後置處理器都需要用到。建議格式(庫名_主機ip:TestJdbc_192)
*connestion Pool Configuration:(連線池配置),這塊資訊之和效能測試有關,一般不用操作,在此不作深度解析。
*connestion Validation by pool:(連線池驗證),有用的只有Validation Query(驗證查詢),這個直接選,一般mysql就選select 1
*JDBC Connection Configuration:(JDBC連線配置)資訊(重點)
*Database URL:資料庫的URL地址,不同型別的資料庫JDBC的URL寫法是不一樣的。可以從官網檢視每個不同資料庫的配置方法
分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*JDBC Driver class:JDBC驅動類的路徑。不同資料庫的驅動類不一樣,需要根據自身情況選擇。這個路徑從哪裡來呢?請看下圖
分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Username:使用者名稱。資料庫的使用者名稱,這個不多說了,複製貼上就行
*Password:密碼。資料庫的密碼。,這個不多說了,複製貼上就行
~JDBC Request 配置講解:路徑(執行緒組)(取樣器)>(JDBC Request)
*Variable Name......:該處填寫的是在JBDC Connection Configuration 中所定義的變數名稱,表示使用對應的JDBC 資料庫連線配置。(因為JBDC Connection Configuration可以是多個,想連哪個就使用哪個變數名)
*Query Type:請求型別,要求實際執行的SQL和所選的Query Type(請求型別)一致。可選的值和描述如下
*Select statement:select型別,對應可執行的SQL關鍵字有(select),也就是隻能使用這些關鍵字進行運算元據庫
*Updata Statement:updata型別,對應可執行的SQL關鍵字有(create、drop、alter:針對表結構調整)(install、delet、updata:針對表資料調整),也就是隻能使用這些關鍵字進行運算元據庫
*Callable Statement:Callable型別,支援所有的關鍵字,主要用於儲存過程的呼叫。對應可執行的關鍵字有,可以認為是call,所有。也就是所有型別的sql語句都支援
*Prepared Select statement:前置select型別,又叫批量select型別。對應可執行的SQL關鍵字和Select statement完成一樣。
*Prepared updata statement:前置select型別,又叫批量updata型別。對應可執行的SQL關鍵字和Updata statement完成一樣。
PS:(Prepared Select statement)和(Prepared updata statement)屬於Prepared型別,支援在sql語句中通過問號?來實現引數的佔位和傳遞。該功能可以節約資料庫的效能資源。主要用作效能測試,非效能測試不必要用。Prepared型別需要用到下方的兩個屬性來實現,請看截圖描述
*Parameter values:引數值。s代表可以填寫多個;引數值的個數,型別要求和sql語句中的問號所在的值保持一致;引數值之間使用逗號進行分隔。
*Parameter types:引數型別。s代表可以填寫多個;引數型別的個數、型別值要求與引數保持一致;假如引數值是數字型別,則引數型別就為int,假如是字串,則引數型別就為float;引數型別之間也是用逗號進行分隔。
*Variable names:變數名稱s。
*該處的變數名稱由使用者自定義,建議用有意義命名格式。
*如s所表示,變數名可以有多個,使用逗號進行分隔。
*所定義的變數是用來儲存查詢結果的。
*每一個變數對應的查詢結果的一列值,按照變數名順序一一對應;即N個查詢結果對應N個變數名,注意是按列來對應,一個變數存一列值,也就是如果你查詢的結果中返回的有兩個列,id和name,那你的變數名需要寫兩個來對應,一個儲存id列的所有值,一個儲存name列的所有值。可以看截圖腦補
*值的儲存是採用類似於陣列的方式來實現。如列變數_1,列變數_2......列變數_N。
圖片分隔線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
到此,JDBC類元件講解完成!!!!!