返回文章列表

Java 安裝與 Karate 環境設定指引

本文介紹如何安裝 Java、設定 JAVA_HOME 環境變數,並使用 Karate standalone 執行測試。同時,也涵蓋了在 Visual Studio Code 和 IntelliJ IDEA 中設定 Karate 專案的步驟,以及如何使用 Maven 建立和管理 Karate 專案,包含設定 PATH

Web 開發 測試自動化

在 Java 開發環境中使用 Karate 進行測試,首先需要安裝 Java 11 以上版本,推薦使用長期支援的 Java 17。安裝完成後,透過 java -version 指令驗證版本,並設定 JAVA_HOME 環境變數,確保 Java 可被系統和 IDE 正確識別。接著,下載 Karate standalone JAR 檔案,即可在命令列執行 Karate 測試。Karate standalone 提供 API 測試、模擬伺服器等功能,並包含 src/demo 資料夾中的範例程式碼。執行測試時,可能需要處理防火牆警告。為了更便捷的開發流程,建議使用 IDE,例如 Visual Studio Code 或 IntelliJ IDEA Community Edition,並安裝對應的 Karate 外掛程式以獲得語法突顯和額外功能。設定 IDE 時,需注意 Java 擴充套件的安裝以及專案的 JDK 設定,確保 IDE 能夠正確識別和執行 Karate 測試。

安裝 Java 與設定 JAVA_HOME 環境變數

安裝 Java 是使用 Karate 的第一步。原則上,只要是 Java 11 或以上的版本都可以正常運作。本文選擇 Java 17 作為範例,因為它是長期支援(LTS)版本,並且至少會支援到 2024 年 9 月。

選擇適合的 Java 安裝套件

建議選擇適合您作業系統的 Java 安裝程式,而不是 ZIP 壓縮檔,因為安裝程式可以更方便地在您的作業系統上註冊 Java。

驗證 Java 安裝

安裝完成後,您可以開啟終端機視窗或 Windows 命令提示字元,輸入 java -version 並按下 Enter 鍵,以驗證 Java 是否正確安裝。正確的輸出應該會顯示您剛剛安裝的 Java 版本。

範例輸出:

PS C:\Users\bbischoff> java -version
java version "17.0.4.1" 2022-08-18 LTS
Java(TM) SE Runtime Environment (build 17.0.4.1+1-LTS-2)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.4.1+1-LTS-2, mixed mode, sharing)

設定 JAVA_HOME 環境變數

JAVA_HOME 是一個全域性的環境變數,包含了 Java 安裝的路徑。設定這個變數可以確保 Java 可以在任何路徑和 IDE 中被正確找到,特別是在使用 Maven 時。

在 Windows 上設定 JAVA_HOME

  1. 在 Windows 搜尋欄中輸入「path」,找到「編輯系統環境變數」。
  2. 開啟「系統屬性」對話方塊,切換到「進階」標籤頁,然後點選「環境變數…」按鈕。
  3. 在「環境變數」視窗中,新增一個名為 JAVA_HOME 的變數,並將其值設定為您的 JDK 根目錄。
  4. 使用「瀏覽目錄…」按鈕選擇正確的資料夾。在 Windows 上,通常位於 Program Files | Java 下。

驗證 JAVA_HOME 設定

開啟命令提示字元,輸入 echo %JAVA_HOME% 並按下 Enter。如果輸出顯示您在步驟 3 中設定的路徑,則表示 JAVA_HOME 環境變數設定成功。

C:\Users\bbischoff>echo %JAVA_HOME%
C:\Program Files\Java\jdk-17.0.4.1

在 macOS 上設定 JAVA_HOME

對於 macOS,可能不需要手動設定 JAVA_HOME。如果需要,可以按照以下步驟進行(適用於 macOS Catalina 10.15 及以上版本):

  1. 開啟終端機應用程式。
  2. 使用 nano 編輯器開啟 ~/.zshenv 檔案:nano ~/.zshenv
  3. 在檔案末尾新增以下行:export JAVA_HOME=$(/usr/libexec/java_home)
  4. 按下 CTRL + X 離開 nano,然後按 Y 儲存變更。
  5. 載入新的設定:source ~/.zshenv

在 Linux 上設定 JAVA_HOME

Linux 上的設定步驟與 macOS 類別似,但需要手動指定 JDK 的路徑。將以下行新增到您的 shell 設定檔(通常是 ~/.bash_profile):

export JAVA_HOME=/path/to/your/JDK

重新開啟終端機視窗後,輸入 echo $JAVA_HOME 以驗證設定是否成功。

使用 Karate standalone

Karate standalone 是一個包含 Karate 所有功能的單一 Java JAR 檔案。只需安裝 Java,即可在命令列中執行 Karate standalone,無需安裝 IDE。

下載 Karate standalone

您可以從 Karate 的 GitHub 發布頁面下載 Karate standalone:https://github.com/karatelabs/karate/releases

下載 ZIP Release 版本,並解壓縮到您選擇的目錄。進入 Karate 資料夾後,您可以執行 karate.bat(Windows)或 ./karate(Linux/macOS)以啟動 Karate standalone。

# 在 Windows 上執行 Karate standalone
karate.bat

# 在 Linux/macOS 上執行 Karate standalone
./karate

成功執行後,您應該會看到類別似以下的輸出畫面。

範例輸出:

# 省略部分輸出內容

透過本文的步驟,您已經成功安裝 Java、設定 JAVA_HOME 環境變數,並瞭解如何使用 Karate standalone。接下來,您可以進一步探索 Karate 的更多功能和特性。

設定您的 Karate 專案

使用 Karate 獨立執行檔

Karate 獨立執行檔提供了多種測試功能,包括 API 測試、模擬伺服器、桌面應用程式測試和網頁 UI 測試。這些範例程式碼位於 src/demo 資料夾中。

執行範例測試

您可以透過命令列執行測試案例。例如,若要執行網頁 UI 測試,在 Windows 上執行以下命令:

karate src/demo/web/google.feature

在 macOS 和 Linux 上,則執行:

./karate src/demo/web/google.feature

若一切設定正確,測試將在命令列中執行,並開啟 Chrome 瀏覽器視窗。

防火牆警告

由於測試需要與網路通訊,可能會出現防火牆警告。

設定 IDE

為了更方便地開發 Karate 測試,建議使用 Java IDE。本文將介紹如何設定 Visual Studio Code 和 IntelliJ IDEA Community Edition。

設定 Visual Studio Code

  1. 下載 VS Code:前往 https://code.visualstudio.com 下載穩定版本。
  2. 匯入範例專案:在 VS Code 歡迎畫面中,點選「Open Folder…」按鈕,選擇解壓縮後的 Karate 獨立執行檔資料夾。
  3. 信任專案:VS Code 可能會詢問是否信任該專案,請選擇「Yes, I trust the authors」。
  4. 安裝 Karate 外掛程式:開啟專案後,選擇一個 .feature 檔案,VS Code 將提示您搜尋 Marketplace 中的外掛程式。我們將使用 Kirk Slota 開發的 Karate Runner 外掛程式。

Karate Runner 外掛程式

安裝 Karate Runner 後,將出現額外的 Karate 分頁,提供語法突顯和其他功能。

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Java 安裝與 Karate 環境設定指引

package "軟體測試架構" {
    package "測試層級" {
        component [單元測試
Unit Test] as unit
        component [整合測試
Integration Test] as integration
        component [端對端測試
E2E Test] as e2e
    }

    package "測試類型" {
        component [功能測試] as functional
        component [效能測試] as performance
        component [安全測試] as security
    }

    package "工具框架" {
        component [pytest] as pytest
        component [unittest] as unittest
        component [Selenium] as selenium
        component [JMeter] as jmeter
    }
}

unit --> pytest : 撰寫測試
unit --> integration : 組合模組
integration --> e2e : 完整流程
functional --> selenium : UI 自動化
performance --> jmeter : 負載測試

note right of unit
  測試金字塔基礎
  快速回饋
  高覆蓋率
end note

@enduml

此圖示顯示了安裝 Karate Runner 外掛程式的流程。

#### 內容解密:

此段落說明瞭如何設定 Visual Studio Code 以開發 Karate 測試。首先,我們下載並安裝 VS Code,然後匯入 Karate 獨立執行檔專案。接著,我們安裝 Karate Runner 外掛程式,以提供語法突顯和其他功能。最後,我們介紹了 Karate Runner 外掛程式的功能和優勢。

設定您的 Karate 專案

設定 VS Code 外掛程式

為了有效地使用 Java 和 Maven 專案,我們需要在 VS Code 中新增 Java 擴充套件。點選 File | Preferences | Extensions 或在檔案總管中選擇 Extensions 分頁。如果搜尋 Java,第一個出現的外掛程式應該是 Extension Pack for Java。這包含了多個與 Java 和 Maven 相關的外掛程式,可以一次安裝。只需點選 Install 按鈕,讓 VS Code 完成其工作。

圖 2.17 – VS Code 的 Java 擴充套件包

所有我們目前為止所做的設定、安裝和修改都可以在 VS Code 的 File | Preferences | SettingsFile | Preferences | Extensions 選單中找到!

設定 IntelliJ IDEA

IntelliJ IDEA 專門為 Java 程式設計提供了許多功能。透過其廣泛的外掛程式架構和自定義選項,它非常適合 Karate 測試開發。然而,免費版本不支援 JavaScript 開發,這在使用 Karate 的 JavaScript 擴充套件時是一個小缺點。

下載 IntelliJ IDEA

您可以從此處下載 IntelliJ IDEA:https://www.jetbrains.com/idea/download。請務必下載免費的 Community Edition。

圖 2.18 – IntelliJ IDEA Community Edition

當您在安裝後啟動 IntelliJ IDEA 時,它會用歡迎對話方塊問候我們。在這裡,可以進行一些調整,選擇色彩組態,以及最重要的 – 安裝外掛程式。

安裝 Karate 外掛程式

現在,我們可以透過進入 Plugins,選擇 Marketplace,並在搜尋欄中輸入 karate 來安裝由 Karate Labs 提供的官方 IntelliJ IDEA Karate 外掛程式。

圖 2.19 – IntelliJ IDEA 歡迎對話方塊

點選兩個 Install 按鈕中的任意一個,都會顯示一個警告,因為該外掛程式不是由 IntelliJ IDEA 製作的。點選 Accept 以無論如何都要安裝它。

圖 2.20 – 第三方外掛程式警告

接受後,安裝將完成,並且 IDE 需要重新啟動 – 這可以透過點選如圖所示的 Restart IDE 按鈕來完成。

圖 2.21 – 外掛程式安裝後重新啟動 IDE

IntelliJ IDEA 現在將重新啟動並自動啟用此外掛程式。由於我們在這裡使用的是免費的基本外掛程式版本,因此我們將獲得基本的特性,如語法著色和程式碼格式化,但沒有程式碼自動補全功能。

可以購買月度訂閱計劃以獲得進階功能。如果您想了解更多相關資訊,可以檢視 https://www.karatelabs.io/plugins 上關於功能和價格的資訊。

設定

所有我們目前為止所做的設定、安裝和修改都可以在稍後透過 IntelliJ IDEA 的 File | Setting 選單中找到!

匯入範例專案

為了測試是否一切正常,我們現在可以將 Karate 獨立範例專案匯入 IntelliJ IDEA:

  1. 為此,請點選歡迎對話方塊中的 Open 按鈕。

    圖 2.22 – 透過歡迎對話方塊開啟專案
  2. 在下面的對話方塊中,前往 Karate 獨立資料夾並點選 OK 以匯入它。

    圖 2.23 – 匯入 Karate 獨立範例專案
  3. 或者,當您在 IDE 中時,可以選擇 File | New | Project from Existing Sources…

    圖 2.24 – 透過檔案選單開啟專案

信任專案

IntelliJ IDEA 可能會詢問您是否信任該專案。在這種情況下,您應該選擇 Trust Project 以便能夠與其合作。否則,只能檢視其程式碼。

在 IntelliJ IDEA 完成匯入專案後,還有一步需要完成。

分配 JDK

為了能夠稍後從 IDE 執行測試並獲得適當的程式碼補全功能,我們需要將 JDK 分配給專案。否則,您可能會在稍後收到警告。

圖 2.25 – 缺少 JDK 的警告

這是從 File | Project Structure 選單完成的。在左側邊欄的 Project 分類別下,您可以選擇已安裝的 SDK(在我的例子中,是 17 Oracle OpenJDK)並點選 OK

圖 2.26 – SDK 選擇

現在 JDK 已分配給專案,我們可以繼續檢查是否一切設定正確。

檢查設定

在左側的專案檢視中,所有功能檔案都應該有一個 Karate 圖示,表示外掛程式已啟用且功能檔案被正確識別。雙擊 src/demo/web 下的 google.feature 檔案以在右側的程式碼視窗中開啟它。

圖 2.27 – 開啟 google.feature

所有 Gherkin 關鍵字(Feature、Scenario、Background、Given、When、Then 和 And)在開啟的功能檔案中現在應該被正確突出顯示。此外,一些 Karate 特有的命令也將被突出顯示。這意味著 Karate 外掛程式正在按預期工作。

圖 2.28 – 功能檔案語法突出顯示

這就完成了 IntelliJ IDEA 的安裝和 Karate 框架的設定。接下來,讓我們看看如何使用 Maven 建立新的 Karate 專案。

使用 Maven 設定 Karate 專案

有多種方法可以設定 Karate 專案;最流行的一種是使用 Apache Maven。在下面的章節中,我們將看到這是如何工作的。

圖示說明:本圖示呈現瞭如何在不同 IDE 中設定 Karate 專案。

在下面的章節中,我將使用 VS Code。有關 IntelliJ IDEA 的基本步驟,請參閱:https://www.jetbrains.com/idea/guide/tutorials/working-with-maven/creating-a-project。

首先讓我們快速瞭解一下 Maven 的用途。#### 內容解密: 本段落主要介紹了 Maven 的基本用途和使用情境,為接下來的章節做鋪墊,詳細內容將在後續段落中展開。

使用 Maven 建立 Karate 專案

什麼是 Maven?

Maven 是 Java 世界中簡化應用程式建立和依賴管理的標準工具之一。它使用一個名為 pom.xml 的中央設定檔來描述 Java 專案所需的依賴以及測試、建置和佈署的步驟。

本文並非 Maven 教學手冊。Maven 是一個非常龐大的專案,具有多種不同的應用。在我們的案例中,我們將僅使用 Maven 的一小部分功能,因為我們不需要建置和佈署應用程式,只需要管理依賴和執行測試。

安裝 Maven

為了充分利用 Maven 的功能,有必要在系統上安裝它。請前往 https://maven.apache.org/download.cgi 尋找適合您作業系統的正確檔案,並將其解壓縮到您選擇的目錄中。

現在,我們必須使其在系統上可用,以便 VS Code 可以識別它。在下一節中,我們將詳細介紹兩種不同的方法。

將 Maven 新增至 PATH 變數

首先,讓我們看看如何設定系統 PATH 變數,以便從任何地方存取 Maven。

注意: 根據 Maven 的安裝方式和特定作業系統的處理方式,此步驟可能並非必要。如果您願意,可以嘗試跳過此步驟,如果稍後遇到有關未知的 Maven 安裝的錯誤訊息,再回來此處。

在 Windows 中將 Maven 新增至系統 PATH 變數

當 Maven 被新增至系統的 PATH 變數時,它可以在任何地方被存取(任何終端機視窗以及 VS Code)。這可以透過與設定其他環境變數相同的方式完成,就像我們之前設定 JAVA_HOME 一樣。前往「環境變數」視窗,選取「Path」變數,然後點選「編輯」按鈕。

圖 2.29 – 選取 Path 變數

這將開啟「編輯環境變數」對話方塊,您可以在其中點選「新增」以新增一行。輸入 Maven 的 bin 資料夾路徑,或使用「瀏覽」按鈕,然後點選「確定」以核准。

圖 2.30 – 新增 Maven 的 bin 資料夾

現在,當您在終端機中從任何路徑輸入 mvn -v 時,它應該能夠正確地被作業系統定位。您可以透過檢查列印出的有關 Maven、Java 和作業系統本身的版本資訊來驗證這一點:

C:\Users\bbischoff>mvn -v
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: C:\Users\bbischoff\Desktop\apache-maven-3.8.6-bin\apache-maven-3.8.6
Java version: 17.0.4.1, vendor: Oracle Corporation, runtime: C:\Program Files\jdk-17.0.4.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

在 macOS 中將 Maven 新增至系統 PATH 變數

就像我們之前設定 JAVA_HOME 一樣,我們可以使用 nano ~/.zshenv 命令來編輯終端機設定檔(或在 macOS 10.5 之前的版本中使用 nano ~/.bash_profile)。現在,將以下行新增至檔案末尾。請將 your_maven_bin_path 替換為 Maven 的 bin 資料夾的實際路徑!

export PATH="your_maven_bin_path:${PATH}"

此命令將 Maven 的 bin 路徑新增至現有的 PATH 變數中作為新條目,並透過 export 命令使其可供作業系統使用。

如果您隨後開啟新的終端機視窗並輸入 echo $PATH,您應該會看到 Maven 的 bin 路徑作為 PATH 變數的第一個條目。

此外,mvn -v 命令應該會輸出與前面「在 Windows 中將 Maven 新增至系統 PATH 變數」一節中所述類別似的資訊。

在 Linux 中將 Maven 新增至系統 PATH 變數

對於 Linux 而言,這與 macOS 中的操作類別似,只是您需要將該行新增至 ~/.bash_profile 而非 ~/.zshenv。其餘步驟與「在 macOS 中將 Maven 新增至系統 PATH 變數」一節中的相同。

只在 VS Code 中設定 Maven 路徑

如果您不需要在整個系統中使用 Maven,而只需要在 IDE 中使用,您也可以只為 VS Code 設定它。為此,請開啟 VS Code 設定,方法是前往「檔案」|「偏好設定」|「設定」,然後在搜尋列中輸入 maven

圖 2.31 – 在 VS Code 中設定 Maven 路徑

選取「Maven for Java」,然後尋找「Maven › Executable:Path」輸入欄位。在此處插入 Maven 資料夾的完整路徑,包括 /mvn,然後關閉設定對話方塊。現在,VS Code 應該能夠找到您的 Maven 安裝。

您可以透過開啟 VS Code 終端機面板(方法是在選單中前往「檢視」|「終端機」)並輸入 mvn -v 來驗證這一點。它應該會列印出有關 Maven、Java 和作業系統的版本資訊。如果無法立即運作,可能需要重新啟動 VS Code。

既然我們已經瞭解了各種設定 Maven 路徑的方法,無論是系統範圍還是僅限於 VS Code,那麼就讓我們看看如何使用 Maven 原型(archetype)建立新的 Karate 專案。

使用 Maven 原型建立 Karate 專案

如果已正確安裝 Java 的擴充套件包,當沒有開啟任何專案時,VS Code 將在資源管理器中顯示一個 Java 面板(如果目前有開啟的專案,可以使用「檔案」|「關閉資料夾」)。您可能還需要在之後再次點選資源管理器圖示以顯示該面板。這將為您提供建立 Java 專案的選項,但我們需要的是一個名為 Maven 的標籤。點選 + 圖示將啟動 Maven 精靈。

圖 2.32 – 建立 Maven 專案

您也可以在開啟其他專案時,在資源管理器的底部找到 Maven 標籤。

接下來,我們可以選取一個原型(archetype)。這本質上是一個專案範本,有助於我們快速入門。然而,我們在此處只能看到一些最常用的原型。點選「更多…」將開啟搜尋以尋找更多的原型——包括 Karate 原型。

圖 2.33 – 顯示更多原型

在搜尋框中輸入 karate 以找到 karate-archetype 選項並選取它。

圖 2.34 – 選取 Karate 原型

下一步驟列出了可用的 Karate 原型版本;不幸的是,這些版本並未以便於檢視最新版本的方式排序。您可以瀏覽列表,或快速在此處檢查最新版本:https://mvnrepository.com/artifact/com.intuit.karate/karate-archetype。

圖 2.35 – 選取最新的原型版本

選取您想要的版本(在我的案例中為 1.3.0.RC2)。下一步驟包括為您的專案指定一個群組 ID。這是您專案的唯一識別碼,通常以您或您的公司擁有的反轉網域名稱開頭(例如,我的網域 www.softwaretester.blog,變成了 blog.softwaretester)。如果您沒有自己的網域,則不必遵守此標準。