Jmeter系列(25)- 獲取並使用 JDBC Request 返回的資料
阿新 • • 發佈:2020-12-23
一、前言
- Jmeter 使用 JDBC Request 獲取資料庫中資料,很多人都會用,因為測試中,有時候需要大量的使用者進行登入,然後
獲取資料庫中真實的資料用於測試
- 前面也詳細講到 JDBC Request 的具體使用,一般是通過 Variable names 和 Result variable name 來獲取返回的資料
- 這篇文章主要講的就是把 Variable names 和 Result variable name 獲取到的資料
提取
出來,給到 HTTP 請求使用
二、Variable names + Foreach控制器
2.1 執行緒組結構樹
2.2 JDBC Request
2.3 除錯取樣器執行結果
有 100 條記錄
2.4 ForEach控制器
2.5 迴圈執行的結果( mobile:${mobile} )
三、Variable names + 迴圈控制器
和上面的栗子只是換了個控制器而已,沒太大變化
3.1 執行緒組結構樹
3.2 迴圈控制器
填寫 100,是代表迴圈100次
3.3 計數器
從 1 開始,遞增加到 100為止,每次遞增 1
- 初始值=1
- 每次增加 1
- 最大的值=100(包含)
- 新變數 num
3.4 迴圈控制器內的 Debug Sampler
${__V()}
是關聯函式,後面講到
3.5 迴圈執行的結果( mobile:${mobile} )
四、Result variable name + Foreach控制器
4.1 執行緒組結構樹
4.2 JDBC Request
4.3 正則提取器
重點
Apply to 選中 Jmeter Variable Name to use,因為要從 Jmeter Variables 中拿到 result_mobile 變數進行提取
4.4 除錯取樣器執行結果
正則提取後的值是不是跟上面 Variable names 獲取的值列表很像,是的!然後再結合 ForEach控制器就好啦
4.5 ForEach控制器
變數字首是正則提取器裡的引用名稱
4.6 迴圈執行的結果( mobile:${mobile} )
五、Result variable name + 迴圈控制器
和上面的例子只是換了個控制器而已,沒太大變化
5.1 執行緒組結構樹
5.2 迴圈控制器
填寫 100,是代表迴圈100次
5.3 計數器
5.4 使用者引數
重點一
${__BeanShell(vars.getObject("result_mobile").get(${num}).get("mobile"))}
${__BeanShell()}
:執行BeanShell指令碼,一般比較短的指令碼可以用此方法來寫,後面會再詳細講解這個函式
重點二
vars.getObject("result_mobile").get(${num}).get("mobile")
- result_mobile:是一個
陣列
,即 JDBC Request 裡的 Result variable name,每個元素的格式都是{mobile=158000480001}
${num}
:上面計數器的值,每次遞增 1,這裡是陣列下標
的意思總結:
獲取 result_mobile 陣列,每次取陣列中第 num 個元素,從元素中取 mobile 鍵的值【這是固定寫法,只改Object 名、鍵名就行了】
5.5 迴圈執行的結果( mobile:${user_mobile} )