Jmeter系列(30)- 詳解 JDBC Request
阿新 • • 發佈:2020-06-24
如果你想從頭學習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 |
|
Parameter values |
需要傳遞的變數值,多個變數用 , 分隔 |
Parameter types |
變數型別 |
Variable Names |
|
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