我都知道.Properties文件一般都为配置文件。我们可以通过在.Properties文件中定义的各类属性来实现一些特定的配置。例如:语言类型的问题、cookie的问题、输出日志类型的问题、定义日志级别的问题、编码问题等等。

在JMeter的bin目录中,存在多个配置文件(5.0版本):

  • jmeter.properties
  • reportgenerator.properties
  • saveservice.properties
  • system.properties
  • upgrade.properties
  • user.properties

其中最重要的配置文件是jmeter.propertiesjmete.properties是JMeter的核心配置项文件,是JMeter-GUI运行的配置说明文件。

JMeter配置文件官方文档https://jmeter.apache.org/usermanual/properties_reference.html

下面对其常用的一些配置项,进行设置与说明。

1、默认语言设置

# language=en
language=zh_CN #简体中文

功能:设置JMeter-GUI界面的显示语言。

说明:若没有设置,则使用JVM(Java虚拟机)设置的Locale语言。

拓展:在Linux中设置JVM的Locale语言:

# 查看locale
[root@localhost ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL= # 配置,内容编辑:LANG="zh_CN.UTF-8"
[root@localhost ~]# vi /etc/sysconfig/i18n
[root@localhost ~]# cat !$
cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"

注意:此配置项只能在jmeter.properties文件中设置才有效。

2、配置默认编码格式

# sampleresult.default.encoding=ISO-8859-1
sampleresult.default.encoding=UTF-8

JMeter-GUI默认编码格式为ISO-8859-1,防止中文乱码可以改成UTF-8编码格式。

3、GUI图标放大比例设置

JMeter-GUI界面布局的设置,当JMeter以GUI模式运行时,窗口主要由三部分构成:功能区视图区内容区

如下图:

GUI图标放大比例设置:

jmeter.hidpi.mode=true          #开启视网膜模式
jmeter.hidpi.scale.factor=1.2 #将图标放大1.2倍

4、功能区工具栏图标大小设置

# 工具栏图标默认size: 22x22
# 可用size选项: 22x22, 32x32, 48x48
jmeter.toolbar.icons.size=32x32

5、视图区目录树图标大小设置

# 目录树图标默认size: 19x19
# 可用size选项: 19x19, 24x24, 32x32, 48x48
jmeter.tree.icons.size=24x24

6、内容区编辑字体设置

调整JMeter内容区的编辑字体:

# 默认Hack字体太难看,使用经典的consolas
# 这两个配置项必须同时设置才有效
jsyntaxtextarea.font.family=consolas
jsyntaxtextarea.font.size=18

7、添加JMeter元素快捷键设置

jmeter.properties配置文件中,可以添加JMeter-GUI使用时的快捷键,最多支持10个。

提示:

  • 在Windows系统上可以使用Ctrl+0Ctrl+9
  • 在macOS系统上可以使用Command+0Command+9
gui.quick_0=ThreadGroupGui     #新增线程组
gui.quick_1=HttpTestSampleGui #新增HTTP取样器
gui.quick_2=RegexExtractorGui #新增正则表达式提取器
gui.quick_3=AssertionGui #新增响应断言
gui.quick_4=ConstantTimerGui #新增常量定时器
gui.quick_5=TestActionGui #新增测试活动
gui.quick_6=JSR223PostProcessor #新增JSR223 后置处理程序
gui.quick_7=JSR223PreProcessor #新增JSR223 预处理程序
gui.quick_8=DebugSampler #新增调试取样器
gui.quick_9=ViewResultsFullVisualizer #新增察看结果树

8、捕捉cookie

将Cookie存储为变量:

# CookieManager.save.cookies=false  # 默认
CookieManager.save.cookies=true # 将cookie存储为变量

9、HTTP Request Post Content-Type设置

在使用JMeter-GUI发送Post请求的时候,若不自己手动添加Content-Type属性内容,默认则不会添加Content-type的相关信息。

# Should JMeter add to POST request content-type header if missing:
# Content-Type: application/x-www-form-urlencoded
# Was true before version 5.0
post_add_content_type_if_missing=true

说明:

此配置项在JMeter5.0以前默认值为True,在5.0以及之后的版本默认值为False。

故在5.0以后的版本中发送POST请求时,将参数放在body data(消息体数据)中,且没有设置Content-Type时,默认会将Content-Type的值设置为text/plain,而不是application/x-www-form-urlencoded

通过查看JMeter官方文档和自己的实操,我的理解是

post_add_content_type_if_missing=true配置项,在POST请求时,如果Content-Type属性缺失,会自动补全Content-Type: application/x-www-form-urlencoded

但是经过我的操作,发现配置了post_add_content_type_if_missing=true,在body data(消息体数据)填写了Json数据,发送请求之后,Content-Type的值依然为text/plain,不知道该配置项是何用处。

所以在之后的实践操作时,如果在body data(消息体数据)中填写纯文本数据时,还是要依照接口文档中的要求,手动添加一个HTTP信息头管理器(配置元件),里面手动配置对应的Content-Type值,这样操作更为稳妥。

如果文档中没有标注,可以按常见的媒体格式类型填写,如下:

  • text/html : HTML格式。
  • text/plain :纯文本格式。
  • text/xml : XML格式。
  • application/json: JSON数据格式。
  • image/jpeg :jpg图片格式。

(还有很多,可以自行扩展。)

10、配置远程主机

我们需要找到remote_hosts属性,然后按照负载机ip地址:端口号的形式进行配置。

可以配置多个远程主机,中间用,分隔开,注意全部为英文符号。

remote_hosts=127.0.0.1:8999

11、日志级别设置

从JMeter3.2开始,日志级别不再在jmeter.properties中设置,而是通过log4j2.xml配置文件中,设置日志级别。

  <Root level="info">
<AppenderRef ref="jmeter-log" />
<AppenderRef ref="gui-log-event" />
</Root>

level的值改为对应的日志级别,默认为info,也可以在GUI界面临时设置日志级别。

log4j2定义了8个级别的日志,优先级从高到低依次为:

OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL

  • OFF:用于关闭所有日志记录。
  • FATAL:指出每个严重的错误事件将会导致应用程序的退出。
  • ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行。
  • WARN:表明会出现潜在错误的情形。
  • INFO:消息在粗粒度级别上突出强调应用程序的运行过程。
  • DEBUG:指出细粒度信息事件对调试应用程序是非常有帮助的。
  • TRACE:追踪日志。
  • ALL:用于打开所有日志记录。

12、总结

官方建议:将需要修改的属性值,复制粘贴到同目录下的user.properties 配置文件中,而不要直接在jmeter.properties配置文件中编辑。

好处:当JMeter升级时,可以避免修改的选项需要重新应用。

jmeter.properties配置文件内容如下:

意思表示:JMeter自动加载其他配置文件中的属性。

参考:https://zhuanlan.zhihu.com/p/92582351

『动善时』JMeter基础 — 7、jmeter.properties文件常用配置的更多相关文章

  1. 『动善时』JMeter基础 — 58、JMeter分布式测试

    目录 1.JMeter分布式测试概念 2.JMeter分布式测试前提条件 3.JMeter实现分布式测试 (1)在执行机中的配置 (2)在控制机中的配置 (3)启动执行机中的JMeter服务 (4)在 ...

  2. 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求

    目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...

  3. 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

    目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...

  4. 『动善时』JMeter基础 — 46、使用Badboy工具录制JMeter脚本

    目录 1.使用Badboy录制JMeter脚本 2.使用Badboy参数化配置 3.解决"当前页面的脚本发生错误"提示框 4.总结 1.使用Badboy录制JMeter脚本 打开B ...

  5. 『动善时』JMeter基础 — 2、JMeter的安装和启动

    1.安装Java环境 由于JMeter是纯Java的桌面应用程序,因此它的运行环境需要Java环境,即需要安装JDK或JRE.(也就是安装JDK环境) 步骤简要说明: 下载并安装JDK 配置环境变量 ...

  6. 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)

    目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...

  7. 『动善时』JMeter基础 — 29、JMeter响应断言详解

    目录 1.JMeter断言介绍 2.响应断言组件界面详解 3.响应断言组件的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)响应断言界面内容 (4)查看运行结果 (5)断言结果组件 ...

  8. 『动善时』JMeter基础 — 32、JMeter察看结果树组件详解

    目录 1.察看结果树介绍 2.察看结果树界面详解 3.察看结果树的其他功能 (1)将数据写入文件中 (2)Search功能 (3)Scroll automatically选项 4.总结 1.察看结果树 ...

  9. 『动善时』JMeter基础 — 33、JMeter察看结果树的显示模式详解

    目录 1.CSS Selector Tester视图 2.HTML查看器 (1)HTML视图 (2)HTML(download resources)视图 (3)HTML Source Formatte ...

随机推荐

  1. Learn Python the Hard Way,ex37-2

    本练习为复习python的符号和关键字 数据类型有:True False None Strings numbers floats lists dict tuple set ""&q ...

  2. 攻防世界 reverse leaked-license-64

    mark一下,以后分析 原文:http://sibears.ru/labs/ASIS-CTF-Quals-2016-Leaked_License/ [ASIS CTF Quals 2016] - 泄露 ...

  3. Qt添加注释模板

    背景 软件:Qt Creator 在写代码的时候我们为了规范化,一般会加文件注释.类注释和函数注释 用注释来说明我们的代码,也方便模块化开发 那么我们在写注释的时候经常会写一些重复的内容,我们会复制粘 ...

  4. Java进阶专题(二十六) 将近2万字的Dubbo原理解析,彻底搞懂dubbo

    前言 ​ 前面我们研究了RPC的原理,市面上有很多基于RPC思想实现的框架,比如有Dubbo.今天就从Dubbo的SPI机制.服务注册与发现源码及网络通信过程去深入剖析下Dubbo. Dubbo架构 ...

  5. 设计vue3的请求实体工厂

    设计一个vue3的请求实体工厂 目录 设计一个vue3的请求实体工厂 描述 实现 构建一个基础请求方法 创建具体请求的方法 下面是对请求的声明文件 下面是请求的定义 generateRequest对请 ...

  6. java例题_02 101~200以内的素数

    1 /*2 [程序 2 输出素数] 2 题目:判断 101-200 之间有多少个素数,并输出所有素数. 3 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明 ...

  7. 阅读作业2&CI/CD调研

    说明 项目 内容 这个作业属于哪个课程 2021春季软件工程 (罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 初步获得软件工程师的能力 这个作业在哪个具体方面帮助我实现目 ...

  8. 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr

    目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...

  9. 创建逻辑卷,格式化为xfs格式化,在线扩容

    创建逻辑卷,并且格式化为xfs格式化好,然后在线扩容 删除逻辑卷组

  10. C语言小知识(基于Linux)——个人笔记,不定时更新

    一.switch case语法,在case中定义变量时,需要在case的有效范围内使用花括号包起来,否则会编译报错: switch (name){ case "zhangSan": ...