Jmeter 不为人知的细节

Posted louiezhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter 不为人知的细节相关的知识,希望对你有一定的参考价值。

 
文章内容以Jmeter5.0 版本为分享, 前提条件是: 需要有jdk1.8 版本以上.
 
将Jmeter解压后可以看到如下结构目录:

技术图片

 
1.Backups目录
文件备份目录, 备份jmeter运行时的脚本,备份文件的存储位置
 
2.Bin 目录
bin存放了配置文件(比如jvm设置,日志设置), 核心可执行文件, 启动文件, 报告生成方式, 启动jar包, 示例脚本等.
 

技术图片

启动文件就在bin目录下, 点击jmeter 就可以启动jmeter应用程序了.
 
bin/jmeter
网上有很多文章介绍如何修改jmeter内存配置, Windows环境在jmeter.bat , Linux或Mac os 在jmeter.sh文件里, 我们通过实际操作发现修改这两文件没有作用, 那该怎么办呢? 官网肯定会给出解释.
 
我们来查阅一下官方文档是最权威的.

技术图片

直译:Jmeter需要设置一些环境变量去配置JVM 使用, 这些变量的设置在shell启动jmeter script 里. 翻译的如有偏颇请勿拍砖!
原来配置jvm内存在这里

技术图片

我们打开看下

技术图片

果然我们在jmeter 的启动脚本里找到了它.
这里是配置jmeter所需的jvm空间,我们要找的是jmeter启动后,运行时内存大小该如何配置, 接着往下看官网的解释

技术图片

在这里我们发现了jmeter start后,java运行时内存管理
技术图片
我们依然在对应的文件里顺利的找到了.
以上设置完成后, 我们保存重启jmeter.
 
我们设置好以后, 去验证一下jmeter启动后内存设置情况, 这里我们用到了Jconsole远程连接来查看jmeter内存情况

技术图片

 
从中我们不难发现, 和我们配置是相符的.
 
Bin/jmeter-server
在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大, 当需要模拟数以万计的并发用户时,使用单台机器模拟所有并发用户就有些力不从心, 甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能,可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试. 模型是一台Master, 多台slave, jmeter分布式 很好的解决了单台运算能力不足的问题
 
 
Bin/jmeter.properties
一个重要的核心配置文件, 包含配置默认语言, 远程主机配置, 以及各类结果文件配置, 报告输出格式等等

技术图片

 
 
 
3.docs目录
放置jmeter api 离线文档
 
4. extras目录
扩展插件目录。提供了对Ant的支持,可以使用Ant来实现自动化测试,如批量脚本执行,产生html格式的报表,测试运行时,可以把测试数据记录下来,jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行"ant -Dtest=文件名 report",就可以生成测试统计报表。
 
5. lib目录
JMeter 依赖的一些基础包放在 lib 根目录下,比如我们扩展了Java 请求,这个扩展是为了完成特定的任务,而这个特定的任务程序需要依赖其他的 Jar 包,那么这些 Jar 包就放置在 lib 根目录下。
JMeter 组件以 Jar 包的形式放罩在 lib/ext 目录下,如果我们要扩展 JMeter 组件,扩展后的 Jar 包即放在此目录下,JMeter 启动时会加载此自录下的 Jar 包。
此地无论是我们自己扩展的还是第三方扩展jar包, 都在这个目录下进行管理.

技术图片

 
6.license目录
JMeter licenses 相关声明信息放在此文件夹,全部是文本文件,对测试没有任何实际意义
 
7.printable_docs目录
jmeter提供的在线帮助文档, 类似于一个用户学习文档, 是我们学习了解jmeter的最佳渠道.
 
 
 
 
 

以上是关于Jmeter 不为人知的细节的主要内容,如果未能解决你的问题,请参考以下文章

“国货之光”文心一言正式发布:百度大语言模型背后那些不为人知的细节

Android 组件通信中有哪些不为人知的细节?

网络协议万文长篇,带你深入理解 TCP;场景复现,掌握鲜为人知的细节(上)

Spring IOC容器中那些鲜为人知的细节

JAVA中天天使用的String,鲜为人知的众多细节梳理

#yyds干货盘点# Spring核心原理之 IoC容器中那些鲜为人知的细节