本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用置信度測試套件中的可信度測試
AWS IoT Greengrass 測試框架(GTF)和 Greengrass 開發工具包(GDK)為開發人員提供了運行測試的方法。 end-to-end 您可以完成本教程以使用組件初始化GDK項目,使用 end-to-end 測試模塊初始化GDK項目,並使用可信度測試套件中的可信度測試。在構建自定義測試用例後,您可以運行測試。
置信度測試是 Greengrass 提供的通用測試,用於驗證基本組件行為。這些測試可以進行修改或擴展,以滿足更具體的組件需求。
在本教程中,我們將使用一個 HelloWorld 組件。如果您正在使用其他元件,請用您的 HelloWorld 元件取代該元件。
在此教學課程中,您將執行下列操作:
-
使用元件初始化GDK專案。
-
使用 end-to-end 測試模塊初始化GDK項目。
-
使用可信度測試套件中的測試。
-
將標籤添加到新的測試用例。
-
建立測試JAR。
-
執行 測試。
主題
必要條件
為了完成本教學,您需要以下項目:
-
GDK版本 1.6.0 或更新版本
-
Java
-
Maven
-
Git
步驟 1:使用元件初始化GDK專案
-
使用專案初始化空白資料GDK夾。通過運行以下命令下載在 Python 中實現的
HelloWorld
組件。gdk component init -t HelloWorld -l python -n HelloWorld
這個命令會在目前的目錄
HelloWorld
中建立一個名為的新目錄。
第 2 步:使用 end-to-end測試模塊初始化GDK項目
-
GDK使您可以下載由功能和步驟實現組成的測試模塊模板。運行以下命令以打開目
HelloWorld
錄,並使用測試模塊初始化現有GDK項目。cd HelloWorld gdk test-e2e init
這個命令會在目錄中建立一
gg-e2e-tests
個名為的新HelloWorld
目錄。這個測試目錄是一個 Maven項目,它具有獨立的 Greengrass 測試的依賴關係。JAR
步驟 3:使用可信度測試套件中的測試
編寫一個置信度測試用例包括使用所提供的功能文件,並在需要時修改方案。如需使用置信度測試的範例,請參閱示例:構建自定義測試用例。請使用下列步驟來使用可靠度測試:
-
使用提供的功能文件。
導覽至目前目錄中的
gg-e2e-tests/src/main/resources/greengrass/features
資料夾。開啟範例confidenceTest.feature
檔案以使用置信度測試。
步驟 4:將標籤添加到新的測試用例
-
您可以將標籤分配給功能和方案以組織測試過程。您可以使用標籤來分類案例的子集,也可以有條件地選取要執行的勾點。功能和案例可以有多個以空格分隔的標籤。
在這個例子中,我們使用的
HelloWorld
組件。每個案例都以標記
@ConfidenceTest
。如果您只想運行測試套件的子集,請更改或添加標籤。每個測試案例都在每個可信度測試的頂部進行描述。該方案是一系列的步驟,有助於理解每個測試用例的交互和預期結果。您可以通過添加自己的步驟或修改現有步驟來擴展這些測試。@ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected ....
步驟 5:建立測試 JAR
-
建置元件。您必須在構建測試模塊之前構建組件。
gdk component build
-
使用以下命令構建測試模塊。此命令將在
greengrass-build
文件夾JAR中構建測試。gdk test-e2e build
步驟 6:執行測試
當您執行信賴度測試時,會GTF自動化測試的生命週期,以及管理在測試期間建立的資源。它首先規定了一個被測試的設備(DUT)作為一個 AWS IoT 東西,並在其上安裝 Greengrass 核心軟件。然後,它將創建一個HelloWorld
使用該路徑中指定的配方命名的新組件。然後,HelloWorld
元件會透過 Greengrass 物件部署到核心裝置上。然後,如果部署成功,它將被驗證。如果部署成功,部署狀態將變更為 3 分鐘COMPLETED
內。
-
轉到項目目錄中的
gdk-config.json
文件,以使用在步驟 4 中指定的ConfidenceTest
標籤或任何標籤 yo8u 定位測試。使用以下命令更新test-e2e
密鑰。"test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
-
在執行測試之前,您必須提供主機裝置的 AWS 認證。GTF在測試過程中使用這些認證來管理 AWS 資源。確保您提供的角色具有自動化測試中包含的必要操作的權限。
執行下列命令以提供 AWS 認證。
-
-
使用以下命令運行測試。
gdk test-e2e run
此命令會下載
greengrass-build
資料夾中 Greengrass 核的最新版本,並使用它執行測試。此命令也只針對具有ConfidenceTest
標籤的案例,並產生這些案例的報表。您將看到在此測試期間創建的 AWS 資源在測試結束時被丟棄。
範例:使用可信度測試
在GDK項目中下載的測試模塊由提供的功能文件。
在下列範例中,我們使用功能檔案來測試 Greengrass 軟體的物件部署功能。我們使用透過 Greeng AWS 雲端 rass 執行元件部署的案例來部分測試此功能的功能。這是一系列步驟,可協助我們瞭解此使用案例的互動和預期結果。
-
使用提供的功能文件。
導覽至目前目錄中的
gg-e2e-tests/src/main/resources/greengrass/features
資料夾。您可以找到如下範confidenceTest.feature
例所示的範例。Feature: Confidence Test Suite Background: Given my device is registered as a Thing And my device is running Greengrass @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected When I create a Greengrass deployment with components | GDK_COMPONENT_NAME | GDK_COMPONENT_RECIPE_FILE | | aws.greengrass.Cli | LATEST | And I deploy the Greengrass deployment configuration Then the Greengrass deployment is COMPLETED on the device after 180 seconds # Update component state accordingly. Possible states: {RUNNING, FINISHED, BROKEN, STOPPING} And I verify the GDK_COMPONENT_NAME component is
RUNNING
using the greengrass-cli每個測試案例都在每個可信度測試的頂部進行描述。該方案是一系列的步驟,有助於理解每個測試用例的交互和預期結果。您可以通過添加自己的步驟或修改現有步驟來擴展這些測試。每個案例都包含可協助您進行這些調整的註解。