jmeter連接數據庫,並且使用數據庫的用戶名密碼進行登錄操作,具體步驟如下:
1、參考博客<Jmeter連接SqlServer數據庫並操作>進行相關內容的補充,修改JDBC Request查詢sql語句,並定義變量名為username,如下圖:
【參數說明】
ariable Name: 數據庫連接池的名字,需要與上面配置的JDBC Connection Configuration中Variable Name Bound Pool的Variable Name相同
Query:填寫的sql語句未尾不要加“;”
Parameter valus:參數值
Parameter types:參數類型,可參考:Javadoc for java.sql.Types
Variable names:保存sql語句返回結果的變量名
Result variable name:創建一個對象變量,保存所有返回的結果
Query timeout:查詢超時時間
Handle result set:定義如何處理由callable statements語句返回的結果
2、設置http請求的參數,若JDBC Request中Variable name設置了多個參數,如A,B,C,那么HTTP中參數的設置就是${參數AorBorC_N},及表示參數AorBorC列的第N行數據值,如下圖:
3、運行腳本,查看運行結果,如下圖:
以上完成了運用數據庫中數據作為接口參數的單個使用,如何進行批量使用,即如何做到運用數據庫數據做接口參數做壓力測試呢,下面做一個簡要說明:
【說明】
JDBC Request中Variables name:
variables names設置為A,B,C那么如下變量會被設置為:
A_#=2 (總行數)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (總行數)
C_1=第3列, 第1行
C_2=第3列, 第2行
可以使用${A_#}、${A_1}...來獲取相應的值
4、 添加循環控制器,設置循環次數為總行數,如下圖:
5、因為我們取的值是根據${username_N}來取的,那么這個N可以通過計數器遞增的方式獲得,我們需要添加一個計數器,如下圖:
6、 使用函數助手,獲取嵌套函數,如下圖:
【說明】
${A1}:能正常工作。
${A${N}}:無法正常工作(嵌套變量引用)。
${__V(A${N})}:可以正常工作。A${N}變為A1,函數 __V返回變量值A1。
7、 替換掉http請求中的參數,如下圖:
8、運行腳本,查看結果,如下圖: