jmeter技巧記錄3: JDBC操作

JDBC操作

jdbc操作包括jdbc的連接與數據庫操作,主要用於數據初始化和事後數據清洗

準備: 連接前需要下載驅動jar包,mysql爲例,先下載mysql-connector-java-x.x.x-bin.jar,把mysql-connector-java-x.x.x-bin.jar放到Jmeter安裝目錄下的lib目錄下

下載地址: https://www.mysql.com/products/connector/

1. JDBC Connection Configuration

位置: 添加-配置元件-JDBC Connection Configuration

參數說明:

Variable Name: 數據庫連接的別名,在後面JDBC Request中也有一個叫做“Variable name”的變量名稱,需要關聯起來,主要作用用於當多數據源時候區分數據源。

Max Number of Connections: 線程池中允許的最大連接數

Max Wait(ms):在連接池中取回連接最大等待時間

Time Between Eviction Runs (ms):連接空閒回收時間,如果當前連接池中某個連接在空閒了time Between Eviction Runs Millis時間後任然沒有使用,則被物理性的關閉掉。

Auto Commit:自動提交sql語句

transaction isolation:事務隔離級別 

  • TRANSACTION_NODE 事務節點
  • TRANSACTION_READ_UNCOMMITTED  事務未提交讀
  • TRANSACTION_READ_COMMITTED   事務已提交讀 
  • TRANSACTION_SERIALIZABLE   事務序列化
  • DEFAULT  默認
  • TRANSACTION_REPEATABLE_READ 事務重複讀

Test While Idle :當空閒的時候測試連接是否斷開

Soft Min Evictable Idle Time(ms) :最少的時間連接可能在池中閒置,然後纔有資格被閒置的對象驅逐出去,額外的條件是至少在池中保持連接。默認值爲5000(5秒)

Validation Query :驗證查詢 。一個簡單的查詢,用來確定數據庫是否仍在響應

Database URL:數據庫url,jdbc:mysql://localhost:3306/test?characterEncoding=utf-8

JDBC Driver class:JDBC驅動

username:數據庫登陸的用戶名

passwrod:數據庫登陸的密碼

2. JDBC Request

位置: 添加-Sampler-JDBC Request

參數說明:

Variable Name:數據庫連接池的名字,需要與JDBC Connection Configuration中需要查詢的數據庫的Variable Name名字保持一致

Query Type:sql操作類型(10種類型)

  • Select statement  查詢語句,只能執行一條查詢語句(多個查詢語句只執行第一條語句,需要查詢多個type爲Callable Statement)
  • Update statement 包含insert和update的更新語句(多個更新語句只執行第一條語句,需要更新多個type爲Callable Statement)
  • Callable statement  存儲結構調用方式 ,  調用方式  call 存儲過程名(?,?)
  • Prepared select statement  對於多次執行的查詢SQL語句,並且參數需要循環參數化, sql語句可用?佔位符(如select * from table where user = ? and age = ?  時候, Parameter types可以填寫 ${name},${age}   Parameter types填寫VARCHAR,Integer)
  • Prepared update statement 同上
  • Commit 將未存儲的SQL語句結果寫入數據庫表
  • Rollback 撤銷指定SQL語句
  • AutoCommit(false) 禁止自動提交模式,MySQL默認操作模式就是autocommit自動提交模式
  • AutoCommit(true) 無論何種情況,都自動提交將結果寫入,結束當前事務開始下一個事務。
  • 編輯(${})jmeter中的JDBC請求中的SQL語句是無法使用參數的,比如: SELECT * FROM ${table_name} 是無效的。如果需實現同時多個不同用戶使用不同的SQL,可以通過把整條SQL語句參數化來實現;(把SQL語句放在csv文件中,然後在JDBC Request的Query 中使用參數代替 ${SQL_Statement})

Query:填寫的sql語句地方(如果只有單條SQL,則不要添加分號,如果有多條,需要在不是最後一條的其他sql結尾處加分號)

Parameter valus:參數值

Parameter types:參數類型,可參考:Javadoc for java.sql.Types

Variable names:保存sql語句返回結果的變量名

Result variable name:創建一個對象變量,保存所有返回的結果

Query timeout:查詢超時時間

Handle result set:定義如何處理由callable statements語句返回的結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章