1. 程式人生 > >Jmeter系列(30)- 詳解 JDBC Request

Jmeter系列(30)- 詳解 JDBC Request

如果你想從頭學習Jmeter,可以看看這個系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

前言

  • JDBC Request 主要是向資料庫傳送一個 JDBC 請求(sql 語句),並獲取返回的資料集
  • 它需要和資料庫連線池配置(JDBC Connection Configuration)一起使用,可參考此篇博文:https://www.cnblogs.com/poloyy/p/13182706.html

 

JDBC Request

 

JDBC Request 介面介紹

 

欄位含義

欄位 含義

Variable Name Bound to Pool

資料庫連線池配置的名稱

Query Type

sql 語句的型別

SQL Query

  • sql 語句
  • 語句結尾不需要新增 ; 
  • 變數用 ? 佔位

Parameter values

需要傳遞的變數值,多個變數用 , 分隔

Parameter types

變數型別

Variable Names

  • 儲存sql語句返回的資料和返回資料的總行數
  • 用 , 分隔
  • 跳過列用空

Result Variable Name

一個 Object 變數儲存所有返回值

Query timeout(s)

超時時間;預設0,代表無限時間

Limit ResultSet

和 limit 類似作用,限制 sql 語句返回結果集的行數

Handle ResultSet

如何定義 callable statements 返回的結果集;預設是儲存為字串

後續通過各種栗子來深入理解常用欄位的含義

 

舉栗子的前提

需要自己找一個有資料庫的資料來練手哦!這裡拿的表資料如下哈

 

只有 sql 語句的栗子

JDBC Request

沒啥特別的,平時 sql 怎麼寫,這裡就怎麼寫

 

執行結果

 

引數化的栗子

JDBC Request

 

執行結果

 

知識點

  • 有幾個問號,Parameter value、Parameter type 填寫值的數量要保持一致,用,分隔
  • 問號其實是佔位符,如果學過程式設計的童鞋應該也知道這種寫法,可以避免 SQL 注入的問題
  • sql 中使用佔位符時,Query Type 必須選擇 Prepared Select Statement 或者 Prepared Update Statement 
  • 我們可以用 Jmeter 變數去賦值,看下面栗子

 

引數化+變數的栗子

JDBC Request

 

執行結果

 

知識點

  • 如果在 sql 語句中使用變數,且是字串型別,需要加上引號(前提是變數值沒有加引號),如 '${name}' 
  • 如果在 Parameter values 中使用變數,且是字串型別,不需要加上引號,只需要在 Parameter types 裡寫明為 varchar 即可

 

使用 Variable Names 的栗子

結構樹

 

JDBC Request

新增一個 Debug Sampler 就知道這個欄位有什麼作用了

 

JDBC Request 執行結果

 

除錯取樣器執行結果

 

知識點

  • mysql:資料庫連線池物件
  • a_#、b_#、c_#、d_#:代表行數
  • a_1:第 1 行、第 1 列
  • b_2:第 2 行、第 2 列
  • c_3:第 3 行、第 3 列
  • d_3:第 3 行、第 4 列
  • 以此類推....
  • 一般如果 HTTP 請求需要用到 sql 查出來的資料的話,就會用到 Variable names 這個欄位

 

使用 Result variable name 的栗子

JDBC Request

 

Debug Sampler  執行結果

 

知識點

該變數是個陣列,每一個元素代表一條記錄

 

重點

關於通過 Variable names、Result variable name 獲取到的值如何提取,我們將在下一篇文章中詳細講解

 

使用 Limit ResultSet 的栗子

JDBC Request

 

 

執行結果

 

知識點

  • Limit ResultSet 是對 sql 語句返回的結果集限制行數
  •  limit 10 限制只返回了 10 條資料,然後 Limit ResultSet = 6 限制結果集最終只返回 6 條資料

 

&nbs