Apache JMeter
视频讲解演示:https://www.bilibili.com/video/BV1Dh4y1J7NW/
Apache组织开发的基于Java的压力测试工具,常常用来模拟高并发压测场景
下载网址:https://jmeter.apache.org/download_jmeter.cgi
- 下载二进制包,解压即可用
- 安装JDK,配置环境变量(具体步骤百度吧,使用java -version能显示java版本即配置完成)
- 进入解压的bin目录
- Windows双击 jmeter.bat 启动
- 其他平台 sh jmeter 启动
将连接数据库的驱动jar包放置于lib目录下:apache-jmeter-5.5/lib/
各驱动配置信息和jar包下载:
DataBase | Driver | URL | 默认端口 |
---|---|---|---|
Oracle<9i | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@[host]:[port]:[serverName] | 1521 |
Oracle>=9i | oracle.jdbc.OracleDriver | jdbc:oracle:thin:@[host]:[port]:[serverName] | 1521 |
MySQL 5 | com.mysql.jdbc.Driver | jdbc:mysql://[host]:[port]/[dbName] | 3306 |
MySQL 8 | com.mysql.cj.jdbc.Driver | jdbc:mysql://[host]:[port]/[dbName] | 3306 |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql://[host]:[port]/[dbName] | 5432 |
MongoDB | MongoDB.Driver | mongodb://[userName]:[password]@[host]:[port]/[dbName] | 27017 |
- [host]:连接IP,本地localhost或127.0.0.1
- [port]:数据库端口
- [dbName]:数据库名
- [serverName]:服务名,等同于数据库名,像Oracle常用的ocrl
jmeter.properties 配置文件调整
修改解压包bin目录下的jmeter.properties配置文件,默认英文设置成中文显示并调整字符集为UTF-8避免内容乱(apache-jmeter-5.5/bin/jmeter.properties)
#language=en
language=zh_CN
#sampleresult.default.encoding=ISO-8859-1
sampleresult.default.encoding=UTF-8
常规压测结果查看“聚合报告”:
使用命令执行生成网页可视化的数据库tpc值:
# 进入解压包的bin目录下(也可配置环境变量)
cd apache-jmeter-5.5/bin
-- Windows
jmeter -n -t .\xxoo.jmx -l .\webreport\result.txt -e -o .\webreport\result
-- macOS
./apache-jmeter-5.5/bin/jmeter -n -t ./xxoo.jmx -l ./webreport/result.txt -e -o ./webreport/result
压测结果可网页直观查看:
主要关注并发数(Samples)和吞吐率(Throughput)
- 压测场景:由于压测场景是对比不同数据库在并发场景下的tpc值,为确保硬件一致,在同一台服务器上部署多个数据库,每次停其他数据库服务再进行单类库的压测。
- 压测存在问题:一次压测后需等待5min+后才可再次压测,否则结果波动会很大