『動善時』JMeter基礎 — 7、jmeter.properties文件常用配置


我都知道.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模式運行時,窗口主要由三部分構成:功能區視圖區內容區

如下圖:
image

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配置文件內容如下:
image

意思表示:JMeter自動加載其他配置文件中的屬性。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM