『動善時』JMeter基礎 — 57、Linux系統中執行JMeter指令碼

繁華似錦Fighting發表於2021-11-07

在Linux系統中執行JMeter指令碼,需要有兩個前提:

  1. Linux系統中配置好Java環境。
  2. Linux系統中配置好JMeter環境。(因為JMeter的執行需要Java環境)

1、Linux系統中安裝Java環境

環境說明:

  • Linux系統:CentOS 7.8
  • Java版本:JDK 1.8

準備操作:

  • 下載JDK 1.8安裝包:jdk-linux-x64.tar.gz(包名會不同)
  • jdk-linux-x64.tar.gz安裝包,傳入Linux系統的/usr/java/目錄中。

(1)解壓Java安裝包

# 1.檢視安裝包路徑
[root@localhost ~]# ll /usr/java/
總用量 181192
-rw-r--r--. 1 root root 185540433 6月   5 22:19 jdk-linux-x64.tar.gz
[root@localhost ~]# 

# 2.解壓Java安裝包,得到jdk1.8.0_131資料夾
[root@localhost /]# cd /usr/java/
[root@localhost java]# tar -zxvf jdk-linux-x64.tar.gz
[root@localhost java]# ll
總用量 181192
drwxr-xr-x. 8   10  143       255 3月  15 2017 jdk1.8.0_131
-rw-r--r--. 1 root root 185540433 6月   5 22:19 jdk-linux-x64.tar.gz

(2)配置Java環境變數

/etc/profile檔案中,配置Java的環境變數。

配置內容如下:

# 配置到檔案的最下方
export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

如下圖所示:

image

提示:

儲存完之後,我們還需要讓剛剛配置的環境變數生效,通過source /etc/profile命令,讓系統重啟載入/etc/profile檔案中的內容,使其立即生效。當然也可以重啟電腦生效。

(3)驗證Java環境是否配置成功

執行命令:java -version

出現如下內容,說明Java環境配置成功了。

[root@localhost ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

2、Linux系統中安裝JMeter

(1)下載JMeter

JMeter下載地址:http://jmeter.apache.org/download_jmeter.cgi

在該頁面中,點選apache-jmeter-5.4.1.tgz下載。

如下圖所示:

image

(2)把JMeter安裝包傳入Linux系統

apache-jmeter-5.4.1.tgz檔案,傳入Linux系統的/usr/local目錄中。

[root@localhost local]# pwd
/usr/local
[root@localhost local]# ll
總用量 69048
-rw-r--r--. 1 root root 70704620 6月   5 23:27 apache-jmeter-5.4.1.tgz
drwxr-xr-x. 2 root root        6 4月  11 2018 bin
drwxr-xr-x. 2 root root        6 4月  11 2018 etc
drwxr-xr-x. 2 root root        6 4月  11 2018 games
drwxr-xr-x. 2 root root        6 4月  11 2018 include
drwxr-xr-x. 2 root root        6 4月  11 2018 lib
drwxr-xr-x. 2 root root        6 4月  11 2018 lib64
drwxr-xr-x. 2 root root        6 4月  11 2018 libexec
drwxr-xr-x. 2 root root        6 4月  11 2018 sbin
drwxr-xr-x. 5 root root       49 3月  15 09:35 share
drwxr-xr-x. 2 root root        6 4月  11 2018 src

(3)把JMeter安裝包解壓縮

# 解壓安裝包
[root@localhost local]# tar -zxvf apache-jmeter-5.4.1.tgz

# 得到解壓後jmeter目錄
[root@localhost local]# ll
總用量 69048
drwxr-xr-x. 8 root root      138 1月   2 1970 apache-jmeter-5.4.1 (這個就是)
-rw-r--r--. 1 root root 70704620 6月   5 23:27 apache-jmeter-5.4.1.tgz
drwxr-xr-x. 2 root root        6 4月  11 2018 bin
drwxr-xr-x. 2 root root        6 4月  11 2018 etc
drwxr-xr-x. 2 root root        6 4月  11 2018 games
drwxr-xr-x. 2 root root        6 4月  11 2018 include
drwxr-xr-x. 2 root root        6 4月  11 2018 lib
drwxr-xr-x. 2 root root        6 4月  11 2018 lib64
drwxr-xr-x. 2 root root        6 4月  11 2018 libexec
drwxr-xr-x. 2 root root        6 4月  11 2018 sbin
drwxr-xr-x. 5 root root       49 3月  15 09:35 share
drwxr-xr-x. 2 root root        6 4月  11 2018 src

(4)配置JMeter環境變數

/etc/profile檔案中,配置JMeter的環境變數。

配置內容如下:

# 配置到檔案的最下方
export JMETER_HOME=/usr/local/apache-jmeter-5.4.1
export PATH=$PATH:${JMETER_HOME}/bin

如下圖所示:

image

提示:

儲存完之後,我們還需要讓剛剛配置的環境變數生效,通過source /etc/profile命令,讓系統重啟載入/etc/profile檔案中的內容,使其立即生效。當然也可以重啟電腦生效。

(5)驗證JMeter環境是否配置成功

執行命令:jmeter -v

出現如下內容,說明JMeter環境配置成功了。

[root@localhost ~]# jmeter -v
    _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____
   / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \
  / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) |
 / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.4.1

Copyright (c) 1999-2021 The Apache Software Foundation

3、Linux系統中執行JMeter指令碼

把JMeter指令碼,放入/usr/local/apache-jmeter-5.4.1/bin目錄中。(指令碼可以不新增監聽器)

然後進入到/usr/local/apache-jmeter-5.4.1/bin目錄中,執行如下命令:

jmeter -n -t CLI_test.jmx -l result.jtl

引數解釋

  • -n:表示non gui mode,就是非圖形化模式。
  • -t:指定JMX指令碼路徑,即test plan(測試計劃)。後面跟需要執行的JMeter 指令碼的路徑和指令碼名稱。
  • -l:指定結果檔案路徑。後面跟輸出結果檔案路徑和結果檔名稱。
    1)若沒有指定指定結果檔案路徑,則自動建立,可以生成.csv檔案或者.jtl檔案。
    2)若只寫指令碼名稱,則預設是在當前目錄查詢或建立。
  • -e:設定測試完成後生成測試報表。
  • -o:指定測試報表生成資料夾。資料夾必須為空或不存在。

執行結果如下:

[root@localhost bin]# jmeter -n -t CLI_test.jmx -l result.jtl
Creating summariser <summary>
Created the tree successfully using CLI_test.jmx
Starting standalone test @ Sun Jun 06 11:47:20 CST 2021 (1622951240796)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +    101 in 00:02:09 =    0.8/s Avg: 64563 Min: 63303 Max: 64680 Err:   101 (100.00%) Active: 100 Started: 100 Finished: 0
summary +     99 in 00:00:00 =  322.5/s Avg: 63416 Min: 63276 Max: 63535 Err:    99 (100.00%) Active: 0 Started: 100 Finished: 100
summary =    200 in 00:02:09 =    1.5/s Avg: 63995 Min: 63276 Max: 64680 Err:   200 (100.00%)
Tidying up ...    @ Sun Jun 06 11:49:32 CST 2021 (1622951372015)
... end of run

補充說明

因為我們配置了JMeter的環境變數,所以我們在任何目錄中都能夠執行JMeter命令。

如下所示,在Linux中的/root目錄中,執行JMeter測試指令碼,也是一樣執行的。

[root@localhost ~]# jmeter -n -t /usr/local/apache-jmeter-5.4.1/bin/CLI_test.jmx -l result.jtl
Creating summariser <summary>
Created the tree successfully using /usr/local/apache-jmeter-5.4.1/bin/CLI_test.jmx
Starting standalone test @ Sun Jun 06 11:50:28 CST 2021 (1622951428991)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +      1 in 00:01:04 =    0.0/s Avg: 63262 Min: 63262 Max: 63262 Err:     1 (100.00%) Active: 100 Started: 100 Finished: 0
summary +    199 in 00:01:04 =    3.1/s Avg: 63236 Min: 63011 Max: 63459 Err:   199 (100.00%) Active: 0 Started: 100 Finished: 100
summary =    200 in 00:02:07 =    1.6/s Avg: 63236 Min: 63011 Max: 63459 Err:   200 (100.00%)
Tidying up ...    @ Sun Jun 06 11:52:37 CST 2021 (1622951557443)
... end of run

但是要注意:

  • 不在JMeter指令碼所在的當前目錄中執行命令,需要填寫指令碼檔案的全路徑。
  • 還有就是執行指令碼所產生的jmeter.log檔案和結果檔案,如果沒有指定生成路徑的話。會在執行JMeter命令的當前目錄中生成。(這點要注意一下)

提示:在Windows系統中執行JMeter指令碼,和在Linux系統執行JMeter指令碼基本上是一樣的。所以這裡就不展開說明了。

相關文章