Linux中安裝JMeter並執行壓測


前言

最近在做性能測試,性能測試方案中要求使用Linux服務器做壓力機,壓力發起工具使用JMeter,所以需要在Linux中安裝JMeter。

 

准備

Jmeter是Java開發的,需要依賴JDK環境,因此我們需提前安裝好JDK。

CentOS 7.3 64位
JDK 1.8(可參考文章:Linux下安裝JDK 1.8

 

下載JMeter安裝包

Jmeter是Java開發的,需要依賴JDK環境,因此我們需提前安裝好JDK。

Jmeter是開源的工具,我們直接到官網下載即可,本次安裝的版本是 5.1.1

最新版本下載地址:https://jmeter.apache.org/download_jmeter.cgi
歷史版本下載地址:https://archive.apache.org/dist/jmeter/binaries/

下載后綴為 .tgz 或 .zip 都是可以的,我們可以在Linux通過 wget 命令下載Jmeter安裝包,或者下載后再傳到Linux。

我這里下載的安裝包版本是 apache-jmeter-5.2.1.tgz

 

安裝JMeter

#新建jmeter文件夾
mkdir jmeter

#下載安裝文件 或 上傳已下載好的文件到jmeter目錄下 
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.2.1.tgz

#解壓文件
tar -xzvf apache-jmeter-5.2.1.tgz

  本次解壓的目錄為:usr/local/jmeter/apache-jmeter-5.2.1

 

配置環境

#配置啟動參數
#打開配置文件
vim /etc/profile

#將下列代碼復制到文件的最后
export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.2.1
export PATH=${JMETER_HOME}/bin:$PATH

  添加好后保存,執行source /etc/profile,重新加載配置文件。最后,通過jmeter --version查看安裝的Jmeter版本,驗證安裝成功。

 OK,到這里,Jmeter已經安裝完成,可以開始使用了!

 

Linux中使用JMeter進行壓測

1.在windows系統中設置好壓測場景和數據,保存到jmx文件中

 2.將jmx文件上傳到服務器jmeter的bin目錄下

 

 3.執行壓測命令

./jmeter.sh -n -t test.jmx -l result02.jtl

 

遇到的問題問題:    
1.在進行壓力測試時,為了降低網絡帶寬對響應時間的影響,通常高並發時會采用在Windows上使用JMeter編寫好測試腳本-xxx.jmx;將腳本上傳到相同局域網的Linux服務器,使用JMeter對應命令進行壓力測試的方法。測試有時會遇到如下報錯:Error in NonGUIDriver java.lang.IllegalStateException: Could not find the TestPlan class!

 

 

 問題原因:

保存測試腳本時只保存了Testplan下的部分節點,導致生成的測試腳本只是“testplan”下面的某些元素,,不包括需要運行測試所需的“TestPlan”元素。

解決方案:
在保存測試腳本時,保存整個測試計划,以下兩種方式保存測試腳本,可以避免上述報錯產生。

1.在文件菜單中單擊“保存測試計划”或“保存測試計划為”選項;

2.鼠標選中測試計划節點,直接點擊工具欄上的“保存測試計划”按鈕

問題2:執行jmeter -n -t xxx.jmx -l result.jtl時,提示如下錯誤

Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客戶權益賬單查詢.jmx'.
Cause:
CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
line number : 881
version : 5.2.1
-------------------------------
An error occurred: Error in NonGUIDriver Problem loading XML from:'/usr/local/jmeter/apache-jmeter-5.2.1/bin/客戶權益賬單查詢.jmx'.
Cause:
CannotResolveClassException: kg.apc.jmeter.threads.SteppingThreadGroup

Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/kg.apc.jmeter.threads.SteppingThreadGroup
line number : 881
version : 5.2.1
-------------------------------

原因分析:

腳本中使用了jp@gc - Stepping Thread Group,jmeter的文件中沒有使用包含對應的插件包

解決辦法:

上傳插件包到lib/ext目錄下,上傳好后再執行jmeter -n -t xxx.jmx result.jtl,便能成功執行

 問題3:執行jmeter -n -t xxx.jmx -l result.jtl時,報java.lang.IllegalArgumentException: File Realtimequeryofrights.txt must exist and be readable

 

 原因分析:在windows中使用jmeter時,參數腳本路徑是絕對路徑,比如D:\apache-jmeter-5.2.1\bin,但是在Linux中這個路徑是找不到的

解決辦法:

用windows打開jmeter的腳本,自定義2個變量,分別為path_win和path_linux,然后將路徑填充進去,當使用windows來跑腳本時,需要在CSV數據文件設置參數路徑為${path_win},但要去Linux跑腳本時,需要改成${path_linux}

 


免責聲明!

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



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