Jmeter 数据库压力测试
1 、启动 jmeter ,打开界面工具,添加一个线程组,添加驱动
2 、添加一个 JDBC Connection Configuration ,连接池配置文件。右键线程组【添加】 -- 【配置元件】 -
- 【 JDBC Connection Configuration 】
Variable Name: 连接池名称。 JDBC Request 会通过此名称来获取连接池的配置,名称可以随意填写,但
是最好具体实际的业务意义,方便理解和记忆。
其他的可以默认,可以根据实际情况来调节优化性能。
Database URL :数据链接 url ,格式: jdbc:mysql://localhost:3306/host
注释:数据库的 ip 地址 + 端口 / 数据库名(查询数据库端口号 show global variables like 'port' )
jdbc:mysql://127.0.0.1:3306/mydb2?serverTimezone=UTC& allowMultiQueries=true
JDBC Driver Class :驱动器名称。固定: com.mysql.jdbc.Driver
Username: 用户名
Passowrd: 密码
添加一个 JDBC Request 。
3 、右键线程组【添加】 - 【 Sampler 】 - 【 JDBC Request 】
Select Statement :查询语句
只能执行查询语句 select ,执行第一条 sql 语句,而且第一条必须是 select 语句,否则报错
Updata Statement :更新语句
支持测试非 select 语句,并且支持测试多条,若其中夹杂 select 语句,自动忽略,若第一条语句为 select
语句,报错
Callable Statement :所有语句
只要语法正确,任何语句,再多的条数都能支持
Prepared Select Statement :预编译查询语句。(长时间执行效率更高,支持占位符)
Prepared Update Statement :预编译更新语句。(同上)
Commit (立即提交) Rollback (回滚)
Parameter values :参数值。参数化 sql 语句中的值
Paramter types :参数类型。数据库的参数你可以去查看一下。这里是 varchar 类型。
Variable names :变量名字,也就是将筛选出来的值放在变量里面。例如这三列数据分为放在变量: A,B,C
中(实际操作中命名一定要有实际意义)。
Result variable name :存储变量名。将整个结果存储在变量中。取名: rs
Query timeouts :超时时间。
对 linux 服务器的服务进行压测
1 、资源准备
可通过该网址下载 jmeter 所有插件 http://jmeter-plugins.org/downloads/all/
万能的网盘:
本次所需插件:
JMeterPlugins-Extras.jar
JMeterPlugins-Standard.jar
ServerAgent-2.2.1
将 JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar 放到 apache-jmeter-3.0\lib\ext 目录下
将 ServerAgent-2.2.1 放到 linux 服务器 opt 目录下
2 、环境准备
ServerAgent 服务端口号默认为 4444 ,需要设置防火墙对此端口不拦截:
开放 Linux 的对外访问的端口 4444
/sbin/iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
/etc/rc.d/init.d/iptables save --- 将修改永久保存到防火墙中
(vi /etc/sysconfig/iptables ,在端口 22 下面添加 iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
// 允许 4444 端口访问 )
然后在服务器中启动监控服务:
启动