Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。
「注意:我们需要在windows上使用jmeter 界面来调试及生成测试(.jmx)文件,然后再以命令行模式进行 jmeter 命令进行压测」
❝为什么要用命令行运行Jmeter? 1、NON GUI模式能大大缩减所需要的系统资源;GUI模式,会会消耗大量的内存资源,容易使压力机本身达到瓶颈,从而影响测试结果。 2、GUI模式,不能支持大型的负载测试与性能测试,并发超大时,JMeter会崩溃。 ❞
JMeter是Java程序, 需要先安装JDK来运行它。此处使用 JDK8 版本。
后续直接下一步,安装即可,如果需要更改安装位置则自己新建个jdk1.8.0、jre1.8.0 目录安装。
在环境变量-》系统变量
JAVA_HOME
,变量值是JDK
安装路径.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
%JAVA_HOME%\bin
cmd ,输入 java -version
即可查看到当前配置的版本号,则证明配置成功
❝在 Binaries 下面的 JMeter 程序压缩包文件 下载列表,点击 apache-jmeter-5.x.x.zip 这样的下载链接,下载到一个合适的目录,我这里是 D:\tools 目录下。 ❞
sh jmeter.sh
JMETER_HOME
,变量值是jmeter
安装路径%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
本次环境为centos7+jdk8
需要修改/etc/profile文件,添加JAVA_HOME
编辑/etc/profile
#set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
#使配置生效
. /etc/profile
echo $JAVA_HOME
java -version
javac
下载好对应的版本直接到 linux 解压就好,要提前装好java环境。
java -version
vim /etc/profile
打开配置文件export JMETER_HOME=/usr/local/software/apache-jmeter-5.5
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
#使配置生效
. /etc/profile
chmod +x jmeter
赋予权限./jmeter -v
查看jmeter是否正确安装在 jmeter 目录下的bin目录中双击运行 jmeter.bat 来启动
我们可以在节目选项中来设置语言、界面外观风格、字体大小等。
右键测试计划来添加线程组,可以给线程组重命名,通过线程组来设置线程数、所有线程执行的时间等信息:
❝参数说明:
❞
在线程组上右键,选择添加-》取样器-》HTTP请求
填上测试接口信息:
参数意义:
❝
❞
我们通过上面的测试用例来调试没问题后,保存生成 .jmx 测试文件,最后来以命令行模式下运行。
这里以windows 为例,cmd 终端运行:
jmeter -n -t demo.jmx -l result.jtl
注意,jmeter 我们在安装的时候配置了环境变量,否则需要在安装路径下运行,如:
D:\tools\apache-jmeter-5.5\bin\jmeter -n -t demo.jmx -l result.jtl
命令行参数释义
-n 非GUI模式 -> 在非GUI模式下运行JMeter
-t 测试文件<参数> ->要运行的jmeter测试(.jmx)文件
(若命令行模式在bin/文件夹下,则可以使用相对路径,否则使用绝对路径)
-l 日志文件<参数> ->生成的日志文件,指定结果文件路径 (同上)
-j 指定日志文件路径 (同上)
-o 指定报表文件路径(同上)
-R 指定远程服务器列表
-g 制定csv测试结果文件路径(同上)
-e 测试完成生产报表
-r 设置分布式执行
-H 设置JMeter设置代理服务器IP或域名
-P 设置JMeter代理服务器端口号
-h 打印使用信息并退出
使用生成的jmeter测试结果日志文件 .jtl,来生成HTML性能测试报告:
jmeter -g result.jtl -o report
命令行参数释义
# -g:后跟 result.jtl文件所在的路径
# -o:后跟生成的HTML文件存放的路径,路径目录可以不存在,或者为空,否则jmeter怕覆盖其中内容而报错
通过以上命令便可生成图表,我们通过浏览器打开 index.html 便可看到相关信息:
其中 APDEX (Application Performance Index) 里面的 T (Toleration threshold) 和 F (Frustration threshold) 可以通过 JMeter 工具 bin 目录下面的 user.properties 配置文件里面 这两个选项来设置:
jmeter.reportgenerator.apdex_satisfied_threshold
jmeter.reportgenerator.apdex_tolerated_threshold
图片及部分相关技术知识点来源于网络搜索,侵权删!