Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入

1.简介

为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的。更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了。听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以。

2.配置文件

在%JMETER_HOME%\bin(or $JMETER_HOME/bin)目录下搜索框中输入:properties 会发现存在多个配置文件,如下图所示:

宏哥接下来将按照其的重要性的先后顺序进行一一讲解和说明,其中最重要的是jmeter.properties.是Jmeter核心配置项文件,下面对其常用的一些配置项的设置进行总结与说明.

2.官方建议

将需要修改的属性值,复制粘贴到同目录下的 user.properties ,这里就是简单的提一下,后边再介绍user.properties文件

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

3.jmeter.properties文件

由于这个文件太大了,宏哥在这里就翻译了其中的一部分,有兴趣的可以全部翻一下看看到底都是干什么的。

3.1文件许可证说明
3.1.1第1段——许可证说明

(1)原文

################################################################################
# Apache JMeter Property file
################################################################################

## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.

(2)译文

# 示例user.properties文件
#
## Apache软件基金会(ASF)下一个或多个许可
## 贡献者许可协议。请参阅
## 此作品用于获取关于版权所有权的附加信息。
## ASF根据Apache 2.0 版本许可证协议将此文件授权给您。
## (“许可证”);除非符合以下条件,否则不能使用此文件
## 许可证。您可以在
## 
## http://www.apache.org/licenses/LICENSE-2.0
## 
## 除非适用法律要求或书面同意,软件
## 根据在“AS IS”BASIS上分发的许可证基础上发布的,
## 无任何明示或暗示的保证或条件。
## 有关管理权限的特定语
3.2文件修改说明
3.2.1第2段——用于说明jmeter.properties文件

(1)原文

################################################################################
#
# THIS FILE SHOULD NOT BE MODIFIED
#
# This avoids having to re-apply the modifications when upgrading JMeter
# Instead only user.properties should be modified:
# 1/ copy the property you want to modify to user.properties from jmeter.properties
# 2/ Change its value there
#
################################################################################

# JMeter properties are described in the file
# http://jmeter.apache.org/usermanual/properties_reference.html
# A local copy can be found in
# printable_docs/usermanual/properties_reference.html

#Preferred GUI language. Comment out to use the JVM default locale's language.
#language=en


# Additional locale(s) to add to the displayed list.
# The current default list is: en, fr, de, no, es, tr, ja, zh_CN, zh_TW, pl, pt_BR
# [see JMeterMenuBar#makeLanguageMenu()]
# The entries are a comma-separated list of language names
#locales.add=zu

(2)译文

################################################################################
#
# 这个文件不应该被修改
#
# JMeter这就避免了在升级JMeter时必须重新应用配置而再次修改
# user.properties文件的修改代替这里文件的修改:
# 1/ 从jmeter.properties文件中复制要修改的属性到user.properties文件中修改
# 2/ 在user.properties文件中修改复制属性的值
#
################################################################################

# 这个文件中描述了JMeter的配置
# 文件访问地址:http://jmeter.apache.org/usermanual/properties_reference.html
# 这个文件的副本在本地也可以找到
# 本地文件的位置:printable_docs/usermanual/properties_reference.html

#首选GUI语言。注释掉以使用JVM默认语言环境的语言。
#language=en


# 要添加到显示列表的其他区域设置。
# 当前默认的列表: en, fr, de, no, es, tr, ja, zh_CN, zh_TW, pl, pt_BR
# [请参见JMeterMenuBar\35; MakeLanguageenu()]
# 这些条目是以逗号分隔的语言名称列表
#locales.add=zu
3.3说明XML解析器
3.3.1第3段——用于说明XML解析器

(1)原文

#---------------------------------------------------------------------------
# XML Parser
#---------------------------------------------------------------------------

# Path to a Properties file containing Namespace mapping in the form
# prefix=Namespace
# Example:
# ns=http://biz.aol.com/schema/2006-12-18
#xpath.namespace.config=


# XPath2 query cache for storing compiled XPath queries
#xpath2query.parser.cache.size=400

(2)译文

#---------------------------------------------------------------------------
# XML 解析器
#---------------------------------------------------------------------------

# 包含格式为prefix = Namespace的名称空间映射的属性文件的路径。例子:
# prefix=Namespace
# Example:
# ns=http://biz.aol.com/schema/2006-12-18
#xpath.namespace.config=


# 查询缓存,用于存储编译的XPath查询,默认为400
#xpath2query.parser.cache.size=400
3.4说明SSL配置
3.4.1第4段——用于说明SSL配置

(1)原文

#---------------------------------------------------------------------------
# SSL configuration
#---------------------------------------------------------------------------

## SSL System properties are now in system.properties

# JMeter no longer converts javax.xxx property entries in this file into System properties.
# These must now be defined in the system.properties file or on the command-line.
# The system.properties file gives more flexibility.

# By default, SSL session contexts are now created per-thread, rather than being shared.
# The original behaviour can be enabled by setting the JMeter property to true
#https.sessioncontext.shared=false

# Be aware that https default protocol may vary depending on the version of JVM
# See https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=58236
# Default HTTPS protocol level:
#https.default.protocol=TLS
# This may need to be changed here (or in user.properties) to:
#https.default.protocol=SSLv3

# List of protocols to enable. You may have to select only a subset if you find issues with target server.
# This is needed when server does not support Socket version negotiation, this can lead to:
# javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
# java.net.SocketException: Connection reset
# see https://bz.apache.org/bugzilla/show_bug.cgi?id=54759
#https.socket.protocols=SSLv2Hello SSLv3 TLSv1

# Control if we allow reuse of cached SSL context between iterations
# set the value to 'false' to reset the SSL context each iteration
# Deprecated since 5.0
#https.use.cached.ssl.context=true

# 
# Reset HTTP State when starting a new Thread Group iteration which means:
# true means next iteration is associated to a new user
# false means next iteration is associated to same user
# true involves: 
# - Closing opened connection
# - resetting SSL State 
#httpclient.reset_state_on_thread_group_iteration=true

# Start and end index to be used with keystores with many entries
# The default is to use entry 0, i.e. the first
#https.keyStoreStartIndex=0
#https.keyStoreEndIndex=0

(2)译文

#---------------------------------------------------------------------------
# SSL 配置
#---------------------------------------------------------------------------

## SSL系统属性现在位于system.properties中

# JMeter不再转换javax。jmeter.properties中的xxx属性条目 进入系统属性
# 现在必须在system.properties文件或命令行中定义它们。
# 在 system.properties文件提供了更多的灵活性。

# By default, SSL session contexts are now created per-thread, rather than being shared.默认情况下,SSL会话上下文现在是按线程创建的,而不是共享的。
# 可以通过将此属性设置为true来启用原来行为。默认为:false
#https.sessioncontext.shared=false

# 请注意,https默认协议可能会根据JVM的版本而有所不同。
# See https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=58236
# 默认HTTPS协议级别:
#https.default.protocol=TLS
# 这可能需要(或者在user.properties文件中) 更改为:
#https.default.protocol=SSLv3

# 要启用的协议列表。如果发现目标服务器有问题,则可能只需要选择一个子集。
# 如果服务器不支持Socket版本协商,则需要这样做,这可能导致以下错误: 
# javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
# java.net.SocketException: Connection reset
# see https://bz.apache.org/bugzilla/show_bug.cgi?id=54759
#https.socket.protocols=SSLv2Hello SSLv3 TLSv1

# 控制是否允许在迭代之间重用缓存的SSL上下文。
# 将值设置为false可在每次迭代时重置SSL上下文。默认为:true
# Deprecated since 5.0
#https.use.cached.ssl.context=true

# 
# 开始新的线程组迭代时,重置HTTP状态。
# true表示下一次迭代与新用户相关联。
# false表示下一次迭代与同一用户相关联。
# true 涉及: 
# - 关闭打开的连接
# - 重置SSL状态
#httpclient.reset_state_on_thread_group_iteration=true

# 与具有许多条目的密钥库一起使用的起始索引和结束索引。
# 默认值是使用条目0,即第一个。
#https.keyStoreStartIndex=0
#https.keyStoreEndIndex=0

下边宏哥就挑一些常用和重要的和童鞋们或者小伙伴们分享一下。

4.GUI语言

4.1Windows系统
4.1.1方法一

——修改Options
依次点击Options-->Choose Language-->Chinese(Simplified)即可配置成中文简体,需注意的是该方法只对当次生效,下次打开Jmeter依然是英文。如需永久生效,请使用下面两种方法。

4.1.2方法二

——修改jmeter.properties文件

打开jmeter解压缩文件下的bin目录,找到jmeter.properties文件并用编辑器打开,
在#language=en下面插入一行language=zh_CN,修改后保存
重新启动Jmeter界面显示为中文简体

注意:

功能:设置JMeter GUI界面的显示语言
说明:若没有设置,则使用JVM(Java虚拟机)设置的locale语言.
4.1.3方法三

——修改jmeter.bat文件

使用编辑器打开JMeter启动文件jmeter.bat
将set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"修改成set JMETER_LANGUAGE=-Duser.language="zh" -Duser.region="CN",保存代码
重新启动Jmeter界面显示为中文简体

4.2Linux系统

在Linux中可以设置JVM的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=
[root@localhost ~]# vi /etc/sysconfig/i18n
[root@localhost ~]# cat !$
cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@localhost ~]#

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

5.GUI图标放大比例设置

5.1JMeter GUI界面布局

当JMeter以GUI模式运行时,窗口主要由三部分构成:
1.功能区
上方菜单栏,下方工具栏。菜单栏展示了JMeter提供的功能菜单,而工具栏中的图标
是常见功能的快捷方式。
2.视图区
以树状结构呈现JMeter元素,其中“Test Plane”是树的根节点,每一个节点就是一个JMeter元素。
在此区域可以添加、删除节点或者通过拖曳调整节点的位置。
3.内容区
当在视图区选中一个JMeter元素节点时,内容区则会相应地显示该元素的内容。
这时可以对其内容进行查看、设置等操作。

5.2GUI图标放大比例设置
jmeter.hidpi.mode=true #开启视网膜模式
jmeter.hidpi.scale.factor=1.2 #将图标放大1.2倍
5.3功能区工具栏图标大小设置
#工具栏图标默认size: 22x22
#可用size: 22x22, 32x32, 48x48
jmeter.toolbar.icons.size=32x32
5.4视图区目录树图标大小设置
#目录树图标默认size: 19x19
#可用size: 19x19, 24x24, 32x32, 48x48
jmeter.tree.icons.size=24x24
5.5内容区编辑字体设置
#调整JMeter内容区的编辑字体
jsyntaxtextarea.font.family=consolas  #默认Hack,太难看,使用经典的consolas
jsyntaxtextarea.font.size=18  #这两个配置项必须同时设置才有效
5.6响应数据编码设置
#响应数据编码默认为ISO-8859-1(即Latin-1)
sampleresult.default.encoding=UTF-8  #设置为UTF-8,避免出现乱码

6.添加JMeter元素快捷键设置

#配置添加JMeter元素时使用的快捷键,最多支持10个.
#在windows上可以使用 Ctrl+0  Ctrl+1 ... Ctrl+9
#在macOS上可以使用 Command+0 Command+1 ... Command+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 #新增察看结果树

7.HTTP Request Post 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,以后版本默认为false,故在5.0以后的版本中
发送POST请求,将参数放在"body data"中,且没有设置
Content-Type时,默认为Content-Type值为"text/plain",而不是"application/x-www-form-urlencoded".

8.小结

1.宏哥在设置GUI语言的时候发现,宏哥的jmeter.properties文件中设置注释掉了,而且宏哥用的是win10默认的locale语言默认是中文但是宏哥启动jmeter后,发现GUI的语言还是英文。经过一系列研究发现是因为jmeter.bat文件中还有语言设置。

使用编辑器打开JMeter启动文件jmeter.bat
将set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"修改成set JMETER_LANGUAGE=-Duser.language="zh" -Duser.region="CN",保存代码
重新启动Jmeter界面显示为中文简体

2.jvm中的语言都是取得系统locale语言
(1)Windows系统

a.输入命令:java -X

b.输入命令:java -XshowSettings:locale

(2)Linux系统

a.输入命令:java -X

b.输入命令:java -XshowSettings:locale

好了今天就分享到这里吧,希望大家喜欢,同时也感谢您耐心的阅读本文!!!

    每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/623361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ALV 可编辑性(二)

前言 前面介绍了Abap ALV的整体可编辑、列可编辑和单元格可编辑,但是有时会有根据行项目某个字段的值来控制其他单元格的可编辑性的需求,其中还涉及到ALV刷新的功能。 实战 单元格数据修改后自动刷新 单元格中的数据被修改后,将ALV单元格中的…

人工智能|深度学习——PlotNeuralNet简单教程

一、简介 PlotNeuralNet是一个强大的开源Python库,它专为简化和美化神经网络图的绘制而设计 二、安装 需要下载的工具包括:MikTeX,Python代码编辑器(这个肯定会有的吧),Git bash(可选)&#xff…

【设计模式】JAVA Design Patterns——Abstract-document(抽象文档模式)

🔍 目的 使用动态属性,并在保持类型安全的同时实现非类型化语言的灵活性。 🔍 解释 抽象文档模式使您能够处理其他非静态属性。 此模式使用特征的概念来实现类型安全,并将不同类的属性分离为一组接口 真实世界例子 考虑由多个部…

O2OA翱途开发平台前端API和后端API的访问以及使用

O2OA是一个高度可定制化的企业级开发平台,它的API(应用程序接口)分为前端和后端,各自有不同的用途,平台为用户开放了全部的后端API供开发者使用,开发者可以根据各类API组织出符合实际业务需求的新服务或者新…

分享一个基于Qt的Ymodem的上位机(GitHub开源)

文章目录 1.项目地址2.Ymodem 协议介绍3.文件传输过程4.使用5.SecureCRT 软件也支持Ymodem6.基于PyQt5的Ymodem界面实现案例 1.项目地址 https://github.com/XinLiGH/SerialPortYmodem 基于VS2019 Qt5.15.2 编译,Linux下编译也可以,这里不做说明。 2.…

C语言指针详解(三)

目录 前言 一. 回调函数是什么? 1.定义 2. 代码示例:计数器 2.1 使用回调函数改造前 2.2 使用回调函数改造后 二. qsort使用举例 1. qsort介绍 2. 使用qsort函数排序整型数据 3. 使用qsort排序结构体数据 三. qsort函数的模拟实现 四. sizeo…

【其他学习参考文档记录】

交叉编译学习参考 nodejs 交叉编译-cliff工作室

污水设备远程监控

随着环保意识的日益增强,污水处理作为城市建设和环境保护的重要一环,越来越受到社会各界的关注。然而,传统的污水处理设备管理方式往往存在着效率低下、响应速度慢、维护成本高等问题。为了解决这些痛点,HiWoo Cloud平台凭借其强大…

N 皇后 - LeetCode 热题 62

大家好!我是曾续缘🧡 今天是《LeetCode 热题 100》系列 发车第 62 天 回溯第 8 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题…

大模型崛起与就业危机

大模型,特别是像我这样的人工智能,最有可能首先替代那些重复性高、标准化程度高、不需要太多人类直觉和情感判断的工作。这些工作通常包括数据输入、初级数据分析和处理、简单的客户服务任务等。例如,可以自动化的一些岗位包括: 1…

将视觉语言模型训练为智能手机助手

24年4月Agile Loop和德国弗赖堡大学的论文“Training A Vision Language Model As Smartphone Assistant”。 为了解决能够执行各种用户任务的数字助理挑战,该研究重点是基于指令的移动设备控制域。 用大语言模型 (LLM) 的最新进展,本文提出一种可以在移…

如何通过 AWS Managed Apache Flink 实现 Iceberg 的实时同步

AWS Managed Apache Flink (以下以 MSF 代指)是 AWS 提供的一款 Serverless 的 Flink 服务。 1. 问题 大家在使用 MSF 的时候,可能遇到最大的一个问题就是 MSF 的依赖管理,很多时候在 Flink 上运行的代码,托管到 MAF…

CV每日论文--2024.5.10

1、Attention-Driven Training-Free Efficiency Enhancement of Diffusion Models 中文标题:扩散模型的注意力驱动的训练免费效率增强 简介:扩散模型在生成高质量和多样化图像方面取得了出色的表现,但其卓越性能是以昂贵的架构设计为代价的,特别是广泛使…

1727jsp思想政治活动Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 思想政治活动管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff…

【VTKExamples::Rendering】第十期 TestStippledLine

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TestStippledLine,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. TestStippledLin…

【机器学习】机器学习与人工智能融合新篇章:自适应智能代理在多元化复杂环境中的创新应用与演进趋势

🔒文章目录: 💥1.引言 🚋1.1 机器学习与人工智能的发展背景 🚌1.2 自适应智能代理的概念与重要性 🚐1.3 研究目的与意义 ☔2.自适应智能代理的关键技术 🛣️2.1 环境感知与信息处理技术 …

JavaEE技术之SpringCloud(Nacos注册中心、Nacos配置中心、Sentinel实现熔断与限流)

文章目录 SpringCloud Alibaba1、简介1.1 背景1.2 Nacos主要功能1.3 Nacos和SpringBoot、SpringCloud版本选择 2、Nacos注册中心2.1 案例准备2.2 Nacos注册中心下载启动2.2.1 下载2.2.2 解压启动2.2.3 nacos-server访问测试 2.3 nacos注册中心客户端整合2.3.1 订单服务整合naco…

英伟达解码性能NVDEC

如果你能打开官网,请看这里: NVDEC Application Note 下面是摘录:

python数据可视化:从n个点中挑选m组3个点绘制m个三角形matplotlib.pyplot.triplot()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 python数据可视化: 从n个点中挑选m组3个点 绘制m个三角形 matplotlib.pyplot.triplot() [太阳]选择题 以下关于matplotlib.pyplot.triplot()函数说法正确的是? impor…

Python环境变量的访问:从入门到精通

环境变量是操作系统中的一种特殊变量,它允许用户在不修改程序的情况下,通过配置文件来改变程序的行为。在Python中,访问环境变量是一个常见的需求,无论是为了读取配置信息、获取系统信息,还是进行程序调试。本文将详细…