jmeter連接mysql數據庫
大致步驟如下:
1、下載mysql的jar包放入到jmeter的lib下,然后重啟jmeter
2、配置JDBC Connection Configuration
3、配置JDBC Request
4、在請求中引用查詢到的結果變量,可以結合計數器取每一個結果值:${__V(tname_${index})}
1、首先需要准備個Mysql jdbc驅動包
盡量保證其版本和你的數據庫版本一致,至少不低於數據庫版本,否則可能有問題。
mysql官網下載地址:https://dev.mysql.com/downloads/connector/j/
JDBC驅動在mysql的官網下載:https://dev.mysql.com/downloads/file/?id=477058,不需要注冊,直接點擊左下角的小字

2、在測試計划下面把JDBC驅動包導入,如下圖

3、線程組下添加一個配置元件JDBC Connection Configuration。

Variable Name:自定義參數,在JDBC Request中會用到;
Database URL:jdbc:mysql:// 數據庫IP地址:數據庫端口/數據庫名稱;jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&characterEncoding=utf-8,注意:?后面的serverTimezone=UTC&characterEncoding=utf-8不能缺少,否則會報時區錯誤。
JDBC Driver Class:com.mysql.jdbc.Driver;
Username:數據庫用戶名;
Password:數據庫密碼;
4、在添加一個Sampler:JDBC Request

4.1、由於只需要在數據庫中取一次數據,即 jdbc取樣器只需要執行一次,可以使用僅一次控制器;如下圖:
配置路徑:邏輯控制器——僅一次控制器

5、運行之后,數據庫會返回某一列下的數據

6、在http請求中引用tname變量名,如果有一列數據返回,引用變量的時候可以輸入${tname_1},發送請求的參數值就是 周啟元

variables names 參數使用方法:
Jmeter官網的解釋是:如果給這個參數設置了值,它會保存sql語句返回的數據和返回數據的總行數。假如,sql語句返回2行,3列,且variables names設置為A,C,那么如下變量會被設置為:
A_#=2(總行數)
A_1=第1列,第一行;如上面的變量${tname_1};
A_2=第1列,第2行
C_#=2(總行數)
C_1=第3列,第1行
C_2=第3列,第2行
如果返回結果為0,那么A_#和C_#會被設置為0,其他變量不會設置值。
如果第一次返回6行數據,第二次只返回3行數據,那么第一次的6行數據變量會被清除
可以使用${A_#}、${A_1}...來獲取相應的值
7、如果想循環數據庫返回的值,可以使用計數器,加引用的變量${__V(tname_${index})};如下圖
根據上方數據庫返回的tname列下有9行數據,在計數器中最大值填入9,在輸入一個變量名index;

在http請求中引用數據量返回的變量+計數器的變量:${__V(tname_${index})};

8、運行結果

