JMeter介面測試-連線SQL Server
(1)下載jdbc驅動(注意下載對應版本),並放在jmeter的lib目錄下,重啟jmeter,如下圖:
sqljdbc4.jar sqljdbc4-2.0.jar.zip 解壓一下再放在lib目錄下
(2)測試計劃下配置驅動程式,如下圖
點選瀏覽,把jar的路徑新增進來
(3)新增配置原件JDBC Connection Configuration,如下圖
(4)在JDBC Connection Configuration配置中填寫相應項,注意通過sql賬號密碼連線SQL server和通過windows身份驗證連線SQL server這兩種情況下的填寫項有所不同,下面會分別介紹
4.1通過sql賬號密碼連線SQL server,這裡以通過賬號SOPAdmin,密碼SOPAdmin連線ebizflcnuat/SOP庫為例
Variable Name:自己定義一個變數名
Database URL: jdbc:sqlserver://localhost:port;databaseName=***
localhost和port可以通過檢視sql configuration manager獲取,如下圖,把Alias對應的server和parameters替換database url裡的localhost和port值即可
JDBC Driver class:com.microsoft.sqlserver.jdbc.SQLServerDriver,固定寫這個
Username:使用者名稱
Password:密碼
4.1通過windows驗證連線SQL server,這裡同樣以連線ebizflcnuat/SOP庫為例
下載sqljdbc_auth.dll(sqljdbc_auth(jb51.net).rar),並放到C:\Windows\System32,重新啟動Jmeter
Database URL: jdbc:sqlserver://localhost:port;integratedSecurity=true;databaseName=***
JDBC Driver class:com.microsoft.sqlserver.jdbc.SQLServerDriver,固定寫這個
Username和Password不用填
(5)新增JDBC Request,並填入對應引數,如下圖
(6)引用sql返回的某一個欄位值作為http請求的request 引數
引數引用:${JDBC Request中的變數名_N},N表示sql返回的該欄位下面的第N行
例如我想取select top 10 * from dbo.permission_jobs返回的jobid欄位的第7行的值,jobid我定義為變數a,引用引數的地方用${a_7}
(7)引用sql返回的批量欄位值作為請求引數,用於壓力測試
例如我想取select top 10 * from dbo.permission_jobs返回的10個jobid,依次去呼叫http請求2
【說明】
JDBC Request中Variables name:
假設variables names設定為a,b,c那麼如下變數會被設定為:
a_#=10 (總行數) 因為我設定的sql是top 10,所以總行數是10條
a_1=第1列, 第1行
a_2=第1列, 第2行
c_#=10 (總行數)
c_1=第3列, 第1行
c_2=第3列, 第2行
可以使用${a_#}、${a_1}...來獲取相應的值
(8)新增迴圈控制器,設定迴圈次數為總行數,如下圖
(9)因為我們取的值是根據${a_N}來取的,那麼這個N可以通過計數器遞增的方式獲得,我們需要新增一個計數器,如下圖:
(10)引用引數的地方用${__V(a_${N})}
(11)執行指令碼,檢視結果樹