# Windows 環境 JMeter 完整安裝與使用指南 本指南將帶您從零開始,在 Windows 系統上安裝 Java、設定環境變數、安裝 JMeter,並執行第一個效能測試。 --- ## 📋 目錄 1. [安裝 Java JDK](#1-安裝-java-jdk) 2. [設定 Java 環境變數](#2-設定-java-環境變數) 3. [驗證 Java 安裝](#3-驗證-java-安裝) 4. [下載與安裝 JMeter](#4-下載與安裝-jmeter) 5. [設定 JMeter 環境變數(可選)](#5-設定-jmeter-環境變數可選) 6. [設定 JMeter 繁體中文界面](#6-設定-jmeter-繁體中文界面) 7. [啟動 JMeter GUI](#7-啟動-jmeter-gui) 8. [載入測試計劃](#8-載入測試計劃) 9. [執行測試](#9-執行測試) 10. [查看測試結果](#10-查看測試結果) 11. [使用命令列模式執行測試](#11-使用命令列模式執行測試) 12. [常見問題排除](#12-常見問題排除) --- ## 1. 安裝 Java JDK JMeter 需要 Java 8 或更高版本才能運行。 ### 步驟 1.1:下載 Java JDK **推薦:使用 OpenJDK(免費)** #### 方法 A:下載 Microsoft OpenJDK(推薦) 1. 前往 Microsoft OpenJDK 下載頁面: ``` https://learn.microsoft.com/zh-tw/java/openjdk/download ``` 2. 選擇適合您的版本: - **JDK 17** 或 **JDK 21**(長期支援版本,推薦) - 選擇 **Windows x64 MSI** 安裝檔 3. 下載完成後,檔案名稱類似: ``` microsoft-jdk-17.0.x-windows-x64.msi ``` #### 方法 B:下載 Oracle JDK 1. 前往 Oracle Java 下載頁面: ``` https://www.oracle.com/java/technologies/downloads/ ``` 2. 選擇 **Java 17** 或更新版本 3. 選擇 **Windows** → **x64 Installer** ### 步驟 1.2:安裝 Java JDK 1. **執行下載的 MSI 安裝檔** - 雙擊 `.msi` 檔案 2. **按照安裝精靈步驟** - 點擊「Next」 - 接受授權條款 - 選擇安裝路徑(建議使用預設路徑): ``` C:\Program Files\Microsoft\jdk-17.0.x\ 或 C:\Program Files\Java\jdk-17.0.x\ ``` - 記住這個安裝路徑,稍後設定環境變數時需要 3. **完成安裝** - 點擊「Install」 - 等待安裝完成 - 點擊「Finish」 --- ## 2. 設定 Java 環境變數 設定環境變數讓系統能夠找到 Java。 ### 步驟 2.1:開啟系統環境變數設定 **方法 1:透過控制台** 1. 按 `Win + X`,選擇「**系統**」 2. 點擊「**進階系統設定**」 3. 點擊「**環境變數**」按鈕 **方法 2:透過執行視窗(較快)** 1. 按 `Win + R` 2. 輸入:`sysdm.cpl`,按 Enter 3. 切換到「**進階**」標籤 4. 點擊「**環境變數**」按鈕 ### 步驟 2.2:設定 JAVA_HOME 1. 在「**系統變數**」區域,點擊「**新增**」 2. 輸入以下資訊: - **變數名稱**:`JAVA_HOME` - **變數值**:您的 Java 安裝路徑(不含 `\bin`) 範例: ``` C:\Program Files\Microsoft\jdk-17.0.12 ``` 或 ``` C:\Program Files\Java\jdk-17.0.9 ``` 3. 點擊「**確定**」 ### 步驟 2.3:設定 Path 變數 1. 在「**系統變數**」區域,找到並選擇「**Path**」變數 2. 點擊「**編輯**」 3. 點擊「**新增**」 4. 輸入: ``` %JAVA_HOME%\bin ``` 5. 點擊「**確定**」 6. 再次點擊「**確定**」關閉所有視窗 ### 📝 重要提醒 - 設定完成後,**必須重新開啟命令提示字元**才會生效 - 已開啟的命令提示字元不會自動更新環境變數 --- ## 3. 驗證 Java 安裝 ### 步驟 3.1:開啟命令提示字元 1. 按 `Win + R` 2. 輸入:`cmd`,按 Enter ### 步驟 3.2:檢查 Java 版本 輸入以下命令: ```cmd java -version ``` **預期輸出**(類似): ``` openjdk version "17.0.12" 2024-07-16 LTS OpenJDK Runtime Environment Microsoft-9388408 (build 17.0.12+7-LTS) OpenJDK 64-Bit Server VM Microsoft-9388408 (build 17.0.12+7-LTS, mixed mode, sharing) ``` ### 步驟 3.3:檢查 JAVA_HOME 輸入以下命令: ```cmd echo %JAVA_HOME% ``` **預期輸出**(類似): ``` C:\Program Files\Microsoft\jdk-17.0.12 ``` ### ✅ 驗證成功 如果兩個命令都能正確顯示,表示 Java 安裝成功! --- ## 4. 下載與安裝 JMeter ### 步驟 4.1:下載 JMeter 1. **前往 Apache JMeter 官方網站**: ``` https://jmeter.apache.org/download_jmeter.cgi ``` 2. **選擇下載版本**: - 在「**Binaries**」區域 - 下載 **apache-jmeter-x.x.zip**(ZIP 格式) - 例如:`apache-jmeter-5.6.3.zip` 3. **選擇鏡像站下載** - 點擊任一鏡像站連結即可開始下載 ### 步驟 4.2:解壓縮 JMeter 1. **選擇安裝位置** 建議路徑(避免路徑包含空格): ``` C:\JMeter\apache-jmeter-5.6.3\ ``` 或 ``` D:\Tools\apache-jmeter-5.6.3\ ``` 2. **解壓縮** - 在下載的 ZIP 檔案上按右鍵 - 選擇「**解壓縮全部**」 - 選擇目標資料夾(如上述建議路徑) - 點擊「**解壓縮**」 3. **驗證目錄結構** 解壓縮後的目錄應該包含: ``` C:\JMeter\apache-jmeter-5.6.3\ ├── bin\ # 執行檔和腳本 ├── lib\ # JAR 函式庫 ├── docs\ # 文件 ├── extras\ # 額外工具 └── printable_docs\ ``` --- ## 5. 設定 JMeter 環境變數(可選) 設定環境變數可以讓您在任何位置執行 JMeter 命令。 ### 步驟 5.1:設定 JMETER_HOME 1. 開啟「**環境變數**」設定(參考步驟 2.1) 2. 在「**系統變數**」區域,點擊「**新增**」 3. 輸入: - **變數名稱**:`JMETER_HOME` - **變數值**:您的 JMeter 安裝路徑 範例: ``` C:\JMeter\apache-jmeter-5.6.3 ``` 4. 點擊「**確定**」 ### 步驟 5.2:新增到 Path 1. 選擇「**Path**」變數,點擊「**編輯**」 2. 點擊「**新增**」 3. 輸入: ``` %JMETER_HOME%\bin ``` 4. 點擊「**確定**」關閉所有視窗 ### 步驟 5.3:驗證 JMeter 設定 **重新開啟命令提示字元**,輸入: ```cmd jmeter --version ``` **預期輸出**(類似): ``` _ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____ / \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \ / _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) | / ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ < /_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.6.3 Copyright (c) 1999-2024 The Apache Software Foundation ``` --- ## 6. 設定 JMeter 繁體中文界面 ### 步驟 6.1:編輯 JMeter 設定檔 1. **開啟檔案總管**,前往 JMeter 的 `bin` 目錄: ``` C:\JMeter\apache-jmeter-5.6.3\bin\ ``` 2. **找到並開啟** `jmeter.properties` 檔案 - 使用「記事本」或其他文字編輯器開啟 3. **搜尋語言設定** - 按 `Ctrl + F`,搜尋:`#language=en` - 找到類似這行(前面有 `#` 符號): ```properties #language=en ``` 4. **修改為繁體中文** - 刪除 `#` 符號(取消註解) - 將 `en` 改為 `zh_TW` - 修改後應為: ```properties language=zh_TW ``` 5. **儲存檔案** - 按 `Ctrl + S` 儲存 - 關閉編輯器 ### 步驟 6.2:(替代方法)使用專案配置 如果您使用本專案提供的測試計劃,可以直接使用專案的配置檔案: 1. 將本專案的 `configs/jmeter.properties` 複製到 JMeter 安裝目錄的 `bin` 資料夾 2. 覆蓋原有的設定檔(建議先備份) --- ## 7. 啟動 JMeter GUI ### 方法 1:透過批次檔啟動(推薦) 1. **開啟檔案總管**,前往: ``` C:\JMeter\apache-jmeter-5.6.3\bin\ ``` 2. **雙擊執行**: ``` jmeter.bat ``` 3. **等待視窗開啟** - 會先出現命令提示字元視窗(不要關閉) - 稍後會開啟 JMeter GUI 視窗 ### 方法 2:透過命令列啟動 1. **開啟命令提示字元** 2. **切換到 JMeter bin 目錄**: ```cmd cd C:\JMeter\apache-jmeter-5.6.3\bin ``` 3. **啟動 JMeter**: ```cmd jmeter.bat ``` --- ## 8. 載入測試計劃 ### 方法 1:載入本專案的範例測試計劃 1. **在 JMeter GUI 中**,點擊選單: ``` 檔案 → 開啟 (Ctrl+O) ``` 2. **瀏覽到專案目錄**: ``` C:\path\to\Jmeter\test-plans\ ``` 3. **選擇**: ``` sample-test.jmx ``` 4. **點擊「開啟」** ### 方法 2:建立新的測試計劃 如果您想從頭建立測試計劃: 1. **JMeter 啟動後會顯示空白測試計劃** 2. **右鍵點擊「測試計劃」** 3. **新增執行緒群組**: ``` 新增 → Threads (Users) → 執行緒群組 ``` 4. **右鍵點擊「執行緒群組」** 5. **新增 HTTP 請求**: ``` 新增 → 取樣器 → HTTP 請求 ``` 6. **設定 HTTP 請求**: - **伺服器名稱或 IP**:`httpbin.org` - **通訊協定**:`https` - **方法**:`GET` - **路徑**:`/get` 7. **新增監聽器查看結果**: - 右鍵點擊「執行緒群組」 - 選擇:`新增 → 監聽器 → 檢視結果樹` - 再新增:`新增 → 監聽器 → 彙整報告` --- ## 9. 執行測試 ### 步驟 9.1:查看測試設定 **點擊左側的「執行緒群組」**,確認設定: - **執行緒數目(使用者)**:`5` - 模擬 5 個同時存取的使用者 - **Ramp-Up 期間(秒)**:`10` - 在 10 秒內啟動所有使用者 - **迴圈次數**:`2` - 每個使用者執行 2 次 - **總請求數**:`5 使用者 × 2 個請求 × 2 次循環 = 20 次請求` ### 步驟 9.2:清除之前的結果(如果有) 點擊工具列的圖示或選單: ``` 執行 → 清除全部 (Ctrl+Shift+E) ``` ### 步驟 9.3:開始執行測試 **方法 1:使用工具列按鈕** - 點擊綠色的「**播放**」按鈕 ▶️ **方法 2:使用選單** ``` 執行 → 啟動 (Ctrl+R) ``` ### 步驟 9.4:觀察測試進度 - 右上角會顯示執行緒數量和狀態 - 看到數字變化表示測試正在執行 - 等待所有執行緒完成(數字歸零) ### 步驟 9.5:停止測試(如需要) **立即停止**: ``` 執行 → 停止 (Ctrl+.) ``` **等待當前請求完成後停止**: ``` 執行 → 關機 (Ctrl+,) ``` --- ## 10. 查看測試結果 ### 10.1 查看結果樹(詳細資訊) 1. **點擊左側的「檢視結果樹」或「查看結果樹」** 2. **查看每個請求的詳細資訊**: - **綠色圖示** = 請求成功 - **紅色圖示** = 請求失敗 3. **點擊任一請求**,可以查看: - **取樣器結果**:回應時間、狀態碼、大小等 - **請求**:發送的請求內容 - **回應資料**:伺服器返回的內容 ### 10.2 彙整報告(統計資料) 1. **點擊左側的「彙整報告」或「匯總報告」** 2. **查看統計資料**: - **樣本數**:總請求次數 - **平均值**:平均回應時間(毫秒) - **最小值**:最快的回應時間 - **最大值**:最慢的回應時間 - **標準差**:回應時間的變異程度 - **錯誤 %**:失敗請求的百分比 - **吞吐量**:每秒處理的請求數(Requests/sec) - **接收 KB/sec**:每秒接收的資料量 - **發送 KB/sec**:每秒發送的資料量 ### 10.3 查看結果表格 1. **點擊左側的「查看結果表格」** 2. **以表格形式查看所有請求**: - 每一行代表一次請求 - 可以看到每個請求的詳細數據 ### 10.4 儲存測試結果 **方法 1:儲存測試計劃(包含設定)** ``` 檔案 → 儲存 (Ctrl+S) ``` **方法 2:匯出結果資料** 1. 在任一監聽器上點擊「瀏覽」按鈕 2. 選擇儲存位置和檔名(.jtl 格式) 3. 點擊「儲存」 --- ## 11. 使用命令列模式執行測試 GUI 模式適合開發和除錯,但**正式效能測試應使用命令列模式**。 ### 步驟 11.1:準備測試計劃 1. 在 GUI 模式下建立並測試您的測試計劃 2. 儲存為 `.jmx` 檔案 ### 步驟 11.2:執行命令列測試 **開啟命令提示字元**,輸入: ```cmd cd C:\JMeter\apache-jmeter-5.6.3\bin jmeter -n -t "C:\path\to\test-plan.jmx" -l "C:\path\to\results.jtl" -e -o "C:\path\to\report" ``` **參數說明**: - `-n`:非 GUI 模式 - `-t`:測試計劃檔案路徑 - `-l`:結果輸出檔案(.jtl) - `-e`:測試結束後產生報告 - `-o`:HTML 報告輸出目錄 ### 步驟 11.3:範例命令 使用本專案的測試計劃: ```cmd cd C:\JMeter\apache-jmeter-5.6.3\bin jmeter -n ^ -t "C:\Users\YourName\Desktop\Jmeter\test-plans\sample-test.jmx" ^ -l "C:\Users\YourName\Desktop\Jmeter\results\result.jtl" ^ -e ^ -o "C:\Users\YourName\Desktop\Jmeter\results\html-report" ``` **注意**:在 Windows 命令提示字元中,使用 `^` 符號換行 ### 步驟 11.4:查看 HTML 報告 測試完成後: 1. **開啟檔案總管**,前往報告目錄: ``` C:\Users\YourName\Desktop\Jmeter\results\html-report\ ``` 2. **雙擊開啟**: ``` index.html ``` 3. **在瀏覽器中查看詳細的效能測試報告** --- ## 12. 常見問題排除 ### ❌ 問題 1:執行 `java -version` 提示「不是內部或外部命令」 **原因**:Java 未正確安裝或環境變數未設定 **解決方案**: 1. 確認 Java 已安裝 2. 重新設定 `JAVA_HOME` 和 `Path` 環境變數(參考步驟 2) 3. **重新開啟命令提示字元** 4. 再次測試 ### ❌ 問題 2:JMeter 啟動失敗或閃退 **可能原因**: - Java 版本過舊(需要 Java 8+) - 記憶體不足 **解決方案**: 1. 確認 Java 版本:`java -version` 2. 增加 JMeter 記憶體: - 編輯 `C:\JMeter\apache-jmeter-5.6.3\bin\jmeter.bat` - 找到記憶體設定行(類似): ```batch set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m ``` - 增加記憶體(例如改為 2GB): ```batch set HEAP=-Xms1g -Xmx2g -XX:MaxMetaspaceSize=256m ``` ### ❌ 問題 3:JMeter 界面顯示亂碼或不是中文 **解決方案**: 1. 確認 `jmeter.properties` 中的語言設定: ```properties language=zh_TW ``` 2. 重新啟動 JMeter 3. 或在啟動時指定語言: ```cmd jmeter.bat -Duser.language=zh -Duser.region=TW ``` ### ❌ 問題 4:測試執行時出現「Connection refused」錯誤 **原因**:無法連線到目標伺服器 **檢查項目**: 1. 目標伺服器網址是否正確 2. 網路連線是否正常 3. 防火牆是否阻擋連線 4. 目標伺服器是否正在運行 ### ❌ 問題 5:命令列模式報告產生失敗 **常見錯誤**: ``` An error occurred: Error generating the report: C:\path\to\report(The directory is not empty) ``` **解決方案**: - 報告輸出目錄必須是**空的**或**不存在的** - 刪除舊的報告目錄或使用新的目錄名稱 - 使用時間戳記建立唯一目錄名稱: ```cmd set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2% set REPORT_DIR=C:\path\to\report_%TIMESTAMP% ``` ### ❌ 問題 6:測試結果中出現大量錯誤 **檢查項目**: 1. 查看「檢視結果樹」中的錯誤訊息 2. 確認 HTTP 請求設定(網址、路徑、參數) 3. 檢查是否需要身份驗證 4. 確認 Header 設定是否正確 5. 降低並發使用者數量進行測試 --- ## 📚 補充資源 ### Windows 批次檔範例 建立 `run-jmeter-gui.bat`: ```batch @echo off echo 啟動 JMeter GUI 模式... cd /d C:\JMeter\apache-jmeter-5.6.3\bin jmeter.bat -t "C:\Users\YourName\Desktop\Jmeter\test-plans\sample-test.jmx" ``` 建立 `run-jmeter-test.bat`: ```batch @echo off setlocal echo ======================================== echo JMeter 效能測試執行 echo ======================================== echo. set JMETER_HOME=C:\JMeter\apache-jmeter-5.6.3 set TEST_PLAN=C:\Users\YourName\Desktop\Jmeter\test-plans\sample-test.jmx set RESULTS_DIR=C:\Users\YourName\Desktop\Jmeter\results REM 產生時間戳記 set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2% set TIMESTAMP=%TIMESTAMP: =0% set RESULT_FILE=%RESULTS_DIR%\result_%TIMESTAMP%.jtl set REPORT_DIR=%RESULTS_DIR%\html-report_%TIMESTAMP% echo 測試計劃: %TEST_PLAN% echo 結果檔案: %RESULT_FILE% echo 報告目錄: %REPORT_DIR% echo. echo 開始執行測試... cd /d %JMETER_HOME%\bin jmeter.bat -n -t "%TEST_PLAN%" -l "%RESULT_FILE%" -e -o "%REPORT_DIR%" if %ERRORLEVEL% EQU 0 ( echo. echo ======================================== echo 測試執行完成! echo ======================================== echo. echo 開啟 HTML 報告... start "" "%REPORT_DIR%\index.html" ) else ( echo. echo ======================================== echo 測試執行失敗! echo ======================================== ) pause ``` ### 記憶體調整建議 根據測試規模調整 JMeter 記憶體: | 測試規模 | 建議記憶體設定 | |---------|--------------| | 小型(< 100 執行緒) | `-Xms512m -Xmx1g` | | 中型(100-500 執行緒) | `-Xms1g -Xmx2g` | | 大型(500-1000 執行緒) | `-Xms2g -Xmx4g` | | 超大型(> 1000 執行緒) | `-Xms4g -Xmx8g` | ### 效能測試最佳實踐 1. ✅ **在 GUI 模式開發和除錯測試計劃** 2. ✅ **在命令列模式執行正式效能測試** 3. ✅ **關閉不必要的監聽器(命令列模式)** 4. ✅ **使用 CSV 資料集模擬真實使用者行為** 5. ✅ **分階段增加負載,觀察系統表現** 6. ✅ **監控目標伺服器的資源使用狀況** 7. ❌ **不要在生產環境直接執行大規模測試** 8. ❌ **不要在 GUI 模式執行大量負載測試** --- ## 🎯 快速開始檢查清單 - [ ] 1. 安裝 Java JDK - [ ] 2. 設定 JAVA_HOME 環境變數 - [ ] 3. 設定 Path 環境變數(加入 %JAVA_HOME%\bin) - [ ] 4. 驗證 Java 安裝(java -version) - [ ] 5. 下載 JMeter ZIP 檔案 - [ ] 6. 解壓縮 JMeter 到指定目錄 - [ ] 7. (可選)設定 JMETER_HOME 環境變數 - [ ] 8. 設定 JMeter 繁體中文界面(編輯 jmeter.properties) - [ ] 9. 啟動 JMeter GUI(執行 jmeter.bat) - [ ] 10. 載入或建立測試計劃 - [ ] 11. 執行測試並查看結果 - [ ] 12. 學習使用命令列模式執行測試 --- ## 📖 延伸學習資源 - [JMeter 官方文件(英文)](https://jmeter.apache.org/usermanual/index.html) - [JMeter 最佳實踐](https://jmeter.apache.org/usermanual/best-practices.html) - [JMeter 元件參考](https://jmeter.apache.org/usermanual/component_reference.html) - [本專案 README](../README.md) - [快速開始指南](../QUICKSTART.md) - [語言設定說明](語言設定.md) --- ## 📝 結語 恭喜您完成 Windows 環境下的 JMeter 安裝和設定! 現在您可以: - ✅ 使用 GUI 模式開發和除錯測試計劃 - ✅ 使用命令列模式執行正式效能測試 - ✅ 產生專業的 HTML 測試報告 - ✅ 開始進行 API、網站的效能測試 祝您測試順利!🚀