Jmeter連接SqlServer數據庫進行壓力測試


前提准備:先安裝jdbc驅動

將sqljdbc4.jar放置jmeter的安裝目錄/lib下;復制之后重新啟動jmeter;

 

1.測試計划—配置驅動程序

  測試計划右下角,點擊瀏覽,選擇jdbc驅動

 

2.添加線程組

右擊測試計划——添加——Thread——線程組

 

3.添加配置元件JDBC Connection Configuration

 

4.配置JDBC Connection Configuration

  

 

Variable Name: 變量名稱,需要變量名綁定到池。需要唯一標識。與JDBC取樣器中的相對應,決定JDBC取樣的配置。簡單理解就是在JDBC request的時候確定去哪個綁定的配置。

MaxNumber of Connection: 數據庫最大鏈接數

PoolTimeout: 數據庫鏈接超時,單位ms

Idle Cleanup Interval (ms): 數據庫空閑清理的間隔時間,單位ms

Auto Commit:自動提交。有三個選項,true、false、編輯(自己通過jmeter提供的函數設置)

Transaction Isolation:   

事務間隔級別設置,主要有如下幾個選項:(對JMX加解密) 

【TRANSACTION_NODE  事務節點 、

TRANSACTION_READ_UNCOMMITTED事務未提交讀、

TRANSACTION_READ_COMMITTED事務已提交讀 、

TRANSACTION_SERIALIZABLE事務序列化 、

DEFAULT默認、

TRANSACTION_REPEATABLE_READ事務重復讀、

編輯】

Keep-Alive: 是否保持連接

Max  Connection age (ms):最大連接時長,超過時長的會被拒絕

Validation Query:驗證查詢,檢驗連接是否有效(數據庫重啟后之前的連接都失效,需要驗證查詢)

 

需要配置的參數有:

(1)Variable Name:test  后續JDBC Request中也會用到這個值;

(2)Database URL:jdbc:sqlserver://192.168.1.2:1222;databaseName=DBname  (DBname為數據庫名稱);

(3)JDBC Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver(sql2008之前的版本)   (SqlServer固定寫法,每個數據庫的不一樣com.microsoft.sqlserver.jdbc.SQLServerDriver(sql2008));

(4)Username Password數據庫的用戶名和密碼; 

Database URL的構成參照表(jmeter的help中也有)見下:

  

5.添加JDBC Request

 

6.配置JDBC Request參數

 

7.添加監聽器

 

查看結果樹在正式測試壓力的時候,要去掉,否則會由於IO的情況,使JMeter和系統都會變得很卡。切記。

8.運行,查看結果

 

 

9.第八步的結果是正常的話,刪除查看結果樹;設置線程組,選擇forever;添加聚合報告,點擊run按鈕,通過監控器——聚合報告,查看結果。

 

10.DB端壓步上去,調整當前JMeter的線程數,或者增加JMeter的測試機器數。

 

可能出現的問題:

1、出現:java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL錯誤解決

原來是因為沒有加載包的緣故,關閉jmeter,然后將class12.jar復制到jmeter目錄下面的lib目錄中,重新啟動運行即可。

 

2、連接MySQL數據庫時,出現:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'錯誤

看起來似乎是設置字符的問題,后來在JDBC連接配置那里將Database URL加上字符編碼即可(?characterEncoding=UTF-8)

jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8

 

3、出現:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).

出現這個原因是因為連接超時,增大Pool TimeOUT就可以了。

 

轉自:https://blog.csdn.net/qq_36260310/article/details/76179592

           https://blog.csdn.net/qq_35451939/article/details/79728789


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM