Jmeter直連postgresql數據庫進行壓測


  關於Jmeter直連數據庫進行壓測,網上有好多教程了,pg數據庫的相對少一些,今天自己測試了下,還是挺簡單的,有個別需要注意的地方。相較於Loadrunner這么全面龐大的壓測工具,Jmeter在數據庫協議的支持上還是要靈活好多的,也比LR易用。

下載通過jdbc連接postgresql的jar包

  這個地方要注意一下,如果沒有jar包或jar包的版本不對,會提示“could not load 'org.postgresql.Driver'”。

  根據自己機器安裝的jdk版本(如我的是1.8.1,下載JDBC4.2的版本),下載對應版本的jar包,如果下載版本不對,可能會出現上述錯誤。

  下載地址:https://jdbc.postgresql.org/download.html

  下載完成之后,放到Jmeter安裝路徑lib文件夾下,如C:/Program Files/Apach Jmeter4.0/lib/下,然后重啟Jmeter。

  我下載的是這個版本:

配置JDBC連接

  Jmeter基本使用就不說了,首先測試計划右鍵添加線程組,線程組下添加--配置元件--jdbc connection configuration。

  注意:

  • Variable Name for created pool:連接池名稱,隨意取,后續請求會用到,如名稱為pgsql。
  • Validation Query:這個有好多資料里都沒說到,validationQuery must be an SQL SELECT statement, that returns at least one row。不同的數據庫,所選擇的Validation Query是不同的,經過外國友人的測試,具體可參照以下(postgresql選select 1):
    • hsqldb - select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
    • Oracle - select 1 from dual
    • DB2 - select 1 from sysibm.sysdummy1
    • mysql - select 1
    • microsoft SQL Server - select 1 (tested on SQL-Server 9.0, 10.5 [2008])
    • postgresql - select 1
    • ingres - select 1
    • derby - values 1
    • H2 - select 1
    • Firebird - select 1 from rdb$database
  • Database Url:連接postgresql的配置,格式:jdbc:postgresql://ip:port/dbname,如 jdbc:postgresql://10.21.11.11:5432/testdb
  • JDBC Driver class:數據庫驅動,不同數據庫類型選擇不一樣,postgresql選擇“org.postgresql.Driver”
  • username,password:數據庫登錄信息

  配置完成后,就可以添加sql請求進行測試了。

 

配置jdbc Request

  線程組右鍵添加--Sampler--JDBC Request。

  •  Variable Name of Pool declared in JDBC Connection Configuration:這個地方就是之前說到的,在配置時取的連接池名稱,一定要一致,如之前連接池名稱為pgsql,該處填pgsql。
  • Query Type:根據自己要測試的sql類型,選擇對應的即可。如select語句為Select Statement。這個地方要注意的是,sql的執行,是有解析的,經過語法分析、語義分析、生成執行計划等,所以為了提高性能,會有預編譯,即對於多次執行的可變參數sql來講,選擇Prepared Statement性能要好一些。選擇Prepared Statement后,用?進行參數填充並在下邊進行參數配置。
  • Query:要測試的sql。

后續的參數化、壓測等就跟正常請求沒區別了。

 

 


免責聲明!

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



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