Jmeter压测
本文以向mysql数据库数据表插入数据为例,介绍Jmeter压测的基本操作,Jmeter连接mysql数据库操作参见博客"Jmeter连接mysql数据库"。
操作步骤:
- 添加jdbc request请求
- 对请求添加响应断言
- 对请求添加断言结果
- 添加查看结果树
- 添加聚合报告
- 在线程组中配置压测参数
- 执行压测
- 查看响应断言、断言结果
- 查看聚合报告
--------------------------------------------------------------------------------------------------------------------------------
********************************************************************************
------------------------------------------------------------------------------------------------------------------------------
1、JDBC request 中写入数据插入的sql脚本
2、添加响应断言
右键jdbc request –>添加->断言->响应断言
根据成功请求返回数据,添加断言匹配内容。
3、右键jdbc request->监听器->断言结果
4、添加察看结果树
5、添加聚合报告,查看压测结果。
6、线程组种配置参数,设计压测场景。
线程组参数详解:
1. 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
2. Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
3. 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为2,那么每个线程发送2次请求。总请求数为2*10=2 。如果勾选了"永远",那么所有线程会一直发送请求,一到选择停止运行脚本。
4. Delay Thread creation until needed:直到需要时延迟线程的创建。
5. 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间
启动延迟(秒):测试延迟启动时间。
7、压测执行
单击工具栏绿色箭头执行
8、查看执行结果
(1)查看断言结果---(好像没啥用,察看结果树中就可以看到此内容)
(2)查看结果树
(3)查看聚合报告
错误率较高因为参数用户名用的${__time(mmss,),1秒可插入多条语句,所以用户名重复。
insert into app_myuser (username,passwd,is_admin) values ('a${__time(mmss,)}','12345678',44);
聚合报告参数详解:
1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
2. #Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代2次,那么这里显示20
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 吞吐量。
3、