1. 程式人生 > 資料庫 >JMeter介面測試-連線SQL Server

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)執行指令碼,檢視結果樹