Jmeter取數據庫數據進行參數傳遞
https://www.jianshu.com/p/256be580bb14?utm_campaign=maleskine&utm_content=note&utm_medium=pc_all_hots&utm_source=recommendation
1.背景
所有的練習,都是訪問的禪道系統(自己在服務器上搭建)。本次練習的主題是:從數據庫中獲取所有的用戶名和密碼,然后將參數傳遞給登錄請求,進行登錄。
需要了解的知識點:
1.數據庫的連接及變量設置
2.循環控制器
3.配置元件Count(計數器)
4.__BeanShell()函數及基本的腳本編寫
5.__V()函數的使用(用於兩個變量的拼接)
2.Jmeter連接Mysql數據庫
1.參考文檔:http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration

Q:Database URL為什么添加了一串后綴呢?【?characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull】
A:因為在我的sql語句查詢出的結果中,包含了時間格式的數據時,會出現錯亂,故加上這個后綴。
2.在JDBC Request中添加sql語句,設置后面要引用的變量名。

3.查詢結果如圖:

3.取數據庫數據進行參數化
在登錄時,計划通過讀取數據庫的數據進行參數化,將上面的11條數據都傳遞下去。
1.方式一:采用__BeanShell函數獲取值,其中index是通過添加計數器count獲取的;
${__BeanShell(vars.getObject("result").get(${__intSum(${index},-1)}).get("account"))}
${__BeanShell(vars.getObject("result").get(${__intSum(${index},-1)}).get("password"))}

2.方式二:采用__V函數拼接2個變量。2個變量的拼接,以下4種方式都是錯誤的:
1.${account_index}
2.${account_${index}}
3.${account}_${index}
4.${__V(${account} _${index})}
正確的方式如下:
${__V(account _${index})}

3.結果如圖:

作者:樂大爺L
鏈接:https://www.jianshu.com/p/256be580bb14
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。