Jmeter系列(31)- 獲取並使用 JDBC Request 返回的資料

小菠蘿測試筆記發表於2020-06-24

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

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

 

前言

  • Jmeter 使用 JDBC Request 獲取資料庫中資料,很多人都會用,因為測試中,有時候需要大量的使用者進行登入,然後獲取資料庫中真實的資料用於測試
  • 前面也詳細講到 JDBC Request 的具體使用,一般是通過 Variable names 和 Result variable name 來獲取返回的資料
  • 這篇文章主要講的就是把 Variable names 和 Result variable name 獲取到的資料提取出來,給到 HTTP 請求使用

 

Variable names + Foreach控制器

執行緒組結構樹

 

JDBC Request

 

除錯取樣器執行結果

有 100 條記錄

 

ForEach控制器

 

迴圈執行的結果( mobile:${mobile} )

 

Variable names + 迴圈控制器

和上面的栗子只是換了個控制器而已,沒太大變化

執行緒組結構樹

 

迴圈控制器

填寫 100,是代表迴圈100次

 

計數器

從 1 開始,遞增加到 100為止,每次遞增 1

  • 初始值=1
  • 每次增加 1
  • 最大的值=100(包含)
  • 新變數 num

 

迴圈控制器內的 Debug Sampler

 ${__V()} 是關聯函式,後面講到

 

迴圈執行的結果( mobile:${mobile} )

 

Result variable name + Foreach控制器

執行緒組結構樹

 

JDBC Request

 

正則提取器

 

重點

Applu to 選中 Jmeter Variable Name to use,因為要從 Jmeter Variables 中拿到 result_mobile 變數進行提取

 

除錯取樣器執行結果

正則提取後的值是不是跟上面 Variable names 獲取的值列表很像,是的!然後再結合 ForEach控制器就好啦

 

ForEach控制器

變數字首是正則提取器裡的引用名稱

 

迴圈執行的結果( mobile:${mobile} )

 

Result variable name + 迴圈控制器

和上面的栗子只是換了個控制器而已,沒太大變化

執行緒組結構樹

 

迴圈控制器

填寫 100,是代表迴圈100次

 

計數器

 

使用者引數

重點一

  •  ${__BeanShell(vars.getObject("result_mobile").get(${num}).get("mobile"))} 
  •  ${__BeanShell()} :執行BeanShell指令碼,一般比較短的指令碼可以用此方法來寫,後面會再詳細講解這個函式

重點二

  •  vars.getObject("result_mobile").get(${num}).get("mobile") 
  • result_mobile:是一個陣列,即 Result ariable name,每個元素都是 {mobile=158000480001} 
  • ${num}:上面計數器的值,每次遞增 1,這裡是陣列下標的意思
  • 總結:獲取 result_mobile 陣列,每次取陣列中第 num 個元素,從元素中取 mobile 鍵的值【這是固定寫法,只改Object 名、鍵名就行了】

 

迴圈執行的結果( mobile:${user_mobile} )

相關文章