jmeter工具使用(压测数据库)

压测场景:单sql压测试、批量执行sql测试

工具下载连接:https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz

前提准备:需要准备一台可以部署jmeter的win机器,指定压测文件(数据库、sql等)

1、打开jemter页面

2、创建线程组(可以设置jdbc连接等)

模版--选择JDBC Load Test--create

3、点击JDBC Connection Configuration设置数据库连接信息

Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
Database URL:数据库url,jdbc:oracle:thin:@host_ip or machine_name:Oracle 监听器监听的端口:Oracle实例的名 (可在oracel安装目录下tnsnames.ora文件中找到这些信息)
JDBC Driver class:JDBC驱动
username:数据库登陆的用户名
passwrod:数据库登陆的密码

4、线程组配置

1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。 
2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。 
3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。 
4. Delay Thread creation until needed:直到需要时延迟线程的创建。 
5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远) 
持续时间(秒):测试持续时间,会覆盖结束时间 
启动延迟(秒):测试延迟启动时间,会覆盖启动时间 
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。 
结束时间:测试结束时间,持续时间会覆盖它。

5、配置JDBC Request

Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果

6、保存jmeter文件生成.jmx的文件命令行去执行压测

/jmeter -n -t /Users/ronin/Downloads/dws_linux.jmx  -j /Users/ronin/Downloads/dws_linux.log  -l /Users/ronin/Downloads/dws_linux.jtl -e -o /Users/ronin/Downloads/
命令行参数释义 
-n 非GUI模式 -> 在非GUI模式下运行JMeter
-t 测试文件<参数> ->要运行的jmeter测试(.jmx)文件
(若命令行模式在bin/文件夹下,则可以使用相对路径,否则使用绝对路径)
-l 日志文件<参数> ->生成的日志文件,指定结果文件路径 (同上)
-j 指定日志文件路径 (同上)
-o 指定报表文件路径(同上)
-R 指定远程服务器列表
-g 制定csv测试结果文件路径(同上)
-e 测试完成生产报表
-r 设置分布式执行
-H 设置JMeter设置代理服务器IP或域名
-P 设置JMeter代理服务器端口号
-h 打印使用信息并退出

7、聚合报告参数详解

Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +     68 in 00:01:09 =    1.0/s Avg: 37515 Min: 10001 Max: 67907 Err:    56 (82.35%) Active: 50 Started: 50 Finished: 0
summary +     98 in 00:00:32 =    3.1/s Avg: 19705 Min: 10001 Max: 94671 Err:    60 (61.22%) Active: 50 Started: 50 Finished: 0
1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 
2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100 
3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 
4. Median:中位数,也就是 50% 用户的响应时间 
5. 90% Line:90% 用户的响应时间 
6. Min:最小响应时间 
7. Max:最大响应时间 
8. Error%:错误率——错误请求数/请求总数 
9. Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 
10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

使用生成的jmeter测试结果日志文件.jtl,生成HTML性能测试报

.jmeter -g
jmeter -g test.jtl -o /path
# -g:后跟test.jtl文件所在的路径
# -o:后跟生成的HTML文件存放的路径

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值