下载
官方网站:https://jmeter.apache.org/
下载地址:https://jmeter.apache.org/download_jmeter.cgi
image.png
- Windows 选择 Binaries - apache-jmeter-5.4.1.zip
- Linux 选择 Binaries - apache-jmeter-5.4.1.tgz
Windows GUI 启动调试
解压 apache-jmeter-5.4.1.zip 进入bin目录下,启动 jmeter.bat(首次以管理员身份启动)
image.png
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
图形化界面会额外消耗执行机性能,所以最好仅在调试时使用。
脚本建立
建立线程组
添加取样器 http request(定义请求发送的元件)
填写请求信息
添加结果查看元件
配置线程组:线程启动数量与时间、循环
如图:4 个线程,在 2s 内启动
添加表格查看结果
启动测试
查看结果
服务器处理失败,无法解析参数
Content-Type 增加 application/json
再次执行,成功
2s 内启动4个线程
Linux(CentOS 7)使用
- 下载
# 本地下载 apache-jmeter-5.4.1.tgz 上传Linux服务器
# 或 wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 安装
# 解压 tar -zxvf apache-jmeter-5.4.1.tgz
# 配置环境变量
# jmeter需要java环境,需提前配置好
java -version
# 配置环境变量
vim /etc/profile
# 追加
export JMETER_HOME=/usr/local/apache-jmeter-5.4.1/
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin/:$PATH
# 刷新
source /etc/profile
# 查看
jmeter -v
# 如下
May 15, 2021 10:20:44 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
......
Copyright (c) 1999-2021 The Apache Software Foundation
# 添加 jmeter 为全局命令
ln -s /usr/local/apache-jmeter-5.4.1/bin/jmeter /usr/local/bin/
CentOS 7 下 none gui 执行 jmx
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
-n 表示在非 GUI 模式下运行 JMeter;
-t 表示要运行的 JMeter 测试脚本文件,一般是 jmx 结尾的文件;
-l 表示记录结果的文件,默认以 jtl 结尾;
-e 表示测试完成后生成测试报表;
-o 表示指定的生成结果文件夹位置。
- 执行
jmeter -n -t hello\ world.jmx -l result.jtl -e -o /usr/local/apache-jmeter-5.4.1/test_plan/report/
# 输出
Creating summariser <summary>
Created the tree successfully using hello world.jmx
Starting standalone test @ Sat May 15 10:51:39 CST 2021 (1621047099799)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary = 4 in 00:00:02 = 2.6/s Avg: 8 Min: 1 Max: 25 Err: 4 (100.00%)
Tidying up ... @ Sat May 15 10:51:41 CST 2021 (1621047101659)
... end of run
[root@bogon test_plan]# pwd
/usr/local/apache-jmeter-5.4.1/test_plan
[root@bogon test_plan]# ls -a
. .. hello world.jmx jmeter.log report result.jtl
补充
Ramp-Up
Ramp-Up 其实是一个可选项,如果没有特殊要求,保持默认配置脚本即可。如果填 1,代表在 1 秒内所有设置线程数全部启动。不过这个是理论上的,实际启动时间也依赖于硬件的接受程度。如果硬件跟不上,启动时间自然也会增加组件的作用
JMeter 有六大组件: 配置元件、定时器、前置处理器、后置处理器、断言、监听器。
配置元件:用于初始化变量,以便采样器使用。类似于框架的配置文件,参数化需要的配置都在配置元件中。
定时器:一般用来指定请求发送的延时策略。在没有定时器的情况下,JMeter 发送请求是不会暂停的。
前置处理器:在进行取样器请求之前执行一些操作,比如生成入参数据。
后置处理器:在取样器请求完成后执行一些操作,通常用于处理响应数据,从中提取需要的值。
断言:主要用于判断取样器请求或对应的响应是否返回了期望的结果。
监听器:监听器可以在 JMeter 执行测试的过程中搜集相关的数据,然后将这些数据在 JMeter 界面上以树、图、报告等形式呈现出来。不过图形化的呈现非常消耗客户端性能,在正式性能测试中并不推荐使用。