1 Jmeter介绍
Jmeter是进行负载测试的工具,可以在任何支持Java虚拟机环境的平台上运行,比如Windows、Linux、Mac。
Jmeter模拟一组用户向目标服务器发送请求,并统计目标服务器的性能信息,比如CPU、memory usage。

2 Jmeter下载
1 去官网:https://jmeter.apache.org/download_jmeter.cgi下载
点击Binaries->

2 下载到本地、解压

3 Jmeter配置
打开bin文件夹,双击jmeter.bat会打开一个cmd窗口及打开Jmeter。
cmd窗口里有一些提示信息,比较重要,可以看以下。
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html

问题:字体太小了
1 解决字体太小的问题:修改jmeter.properties配置
1 用notepad++打开D:\developSoftware\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin\jmeter.properties
2 更新以下字段并重启Jmeter
Description | Key=Value | 必须 |
---|---|---|
修改字体大小 | jsyntaxtextarea.font.size=24 | Y |
修改右侧参数比例 | jmeter.hidpi.mode=true jmeter.hidpi.scale.factor=2.0 | N |
修改左侧树结构比例 | jmeter.tree.icons.size=32x32 | N |
修改工具栏图标大小 | jmeter.toolbar.icons.size=32x32 | N |
注意:设置完后要重启Jmeter进行检查。
但是设置完重启后,打开字体还是很小。
3 需要修改界面外观:
Options-Look and feel->改到Windows,然后重启:字体显示就好了,不会那么小

2 每次都要去到Jmeter/bin,不方便
选中jmeter.bat,右键,选择发送到桌面。

下次就可以直接双击快捷方式,直接打开Jmeter,不用再去到bin: D:\developSoftware\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin
4 新建Jmeter脚本并保存
0 双击桌面的快捷方式,打开Jmeter
1 Thread Group 线程组
1 测试计划下:创建线程组
Test Plan右键:Add->Threads->Thread Group

2 修改Thread Group参数:120s内启动300并发数,脚本跑1h
Key | Value | 描述 |
---|---|---|
Number of Threads (users) | 300 | 并发请求数量 线程数:虚拟用户数,一个用户占一个线程。 |
Ramp-up period (seconds) | 120 | 准备时长:设置的虚拟用户数需要多久能全部启动。 比如120s启动300个线程。 |
Loop count | Infinite | 循环次数:每个线程发送的次数。配置1 就发送一次,配置无穷,就一直发,直到配置的时间到期或手动停止。 |
Duration (seconds) | 3720 | 这个脚本跑多久,公式duration=mins*60s+ramp-up period 比如,3720=60*60+120 |
[Thread Group] |

2 线程组下:HTTP request请求
0.1 创建HTTP request
右键选中线程组, Add->Sampler->HTTP Request

0.2 修改HTTP request请求
Key | Value | 描述 |
---|---|---|
protocol | https | 协议 |
Server name or IP | baidu.com | |
Port number | 443 | 端口号 |
HTTP request method | GET | 请求类型,如GET、POST |
Body Data | 请求体,一般是POST要配置Body |

3 HTTP request下创建5项
1 HTTP Header manager 信息头管理
1 创建http header manager
右键选中HTTP request,Add->Config Element->HTTP Header Manager

2 新增header
按页面下方的Add按钮,就会新增一行Name-Value

2 Constant Throughput Timer
1 创建Constant Throughput timer
右键选中HTTP request,Add->Timer->Constant Throughput Timer

2 修改throughput timer
Target throughput per minute = Target_TPS *60
比如6000=100TPS*60,如果想测试1300TPS,那么这个throughput就填78000 (1300*60)

3 Response Assertion
1 右键选中HTTP request,Add->Assertions->Response Assertion

2 修改response assertion
Key | Value | 描述 |
---|---|---|
Response code | Checked | 怎样验证request成功或失败? 检查点通常可以选response code |
Pattern matching rules | Equal | 匹配规则:要相等 |
Patterns to test | 200 |
4 查看结果树:view result tree
1 创建view result tree
右键选中HTTP request,Add->Listener->View Results tree

然后就能看到新创建出来的result tree。

5 Aggregrate report
1 创建Aggregrate report
右键选中HTTP request:Add->Listener->Aggregrate report


4 保存test plan


然后就会生成.jmx文件
5 运行测试脚本
1 把参数改小,方便调试
比如:
key | Value |
---|---|
Number of thread | 1 |
Ramp-up period | 10 |
Duration | 60 |
Throughput | 600 |

2 按Run按钮,开始跑脚本
3 检查结果
1 可以View result tree 来检查request、response

2 也可以在Aggregrate report里检查跑完结果,比如average、error rate、throughput等

右上角能看到跑了多久,也可以通过选中errors来只显示Error的统计数据

4 清理数据
这次跑完,把数据清理了,参数修正下,接着跑下一轮。要先把数据清理掉,避免混杂在一起,不方便看log。
左边按钮是Clear,右边是Clear all

6 脚本测试通过后,可以用命令跑真正的测试或者可以在VM上跑perf test script.
1 CLI命令跑脚本:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
2 把jmx通过跳板机放到VM上,去执行。
参考:
1 https://blog.csdn.net/weixin_45014379/article/details/124190381