適用於 JavaScript 應用程式的 Azure 測試指南

作為 Azure 新手 JavaScript 開發者,請使用這份 Azure 測試指南,學習使用 Azure SDK 及其他資源的單元測試、整合測試、CI/CD 及 AI 測試策略,確保應用程式的品質、效能與可靠性。

Azure Well-Architected 架構

Azure Well-Architected 架構提供跨五大要素的雲端應用程式設計架構:

  • 可靠性 ——確保您的應用程式具備對故障的韌性並能快速復原。
  • 安全性 ——保護您的應用程式與資料免受威脅。
  • 效能效率 ——優化系統如何利用資源以滿足需求。
  • 成本優化 ——在提供價值的同時管理成本。
  • 卓越營運 ——改善流程與監控,以有效交付應用程式。

本文中的測試策略主要與 營運卓越 支柱保持一致,其強調作業程式的自動化、驗證和持續改善。

JavaScript 中 Azure SDK 的內部和外部測試迴圈

內部和外部測試迴圈是軟體測試的基礎概念,特別是針對部署在 Azure 等雲端平臺上的應用程式:

  • 內部迴圈是指開發人員在開發階段經常執行單元和整合測試的本機環境。 此迴圈著重於快速回饋和迭代。

  • 外部迴圈包含開發人員在持續整合和持續傳遞 (CI/CD) 管線、預備和生產環境中執行的測試。 這些測試通常會利用 Azure DevOps 或 GitHub Actions。

這些測試包括端對端 (E2E)、效能和安全性測試。 它們會驗證應用程式在密切鏡像或與最終生產環境完全相同的環境中的行為。 有效率的測試策略會使用這兩個循環,協助確保部署前後的完整涵蓋範圍和質量保證。

瞭解更多資訊:

使用 Azure SDK 進行本機和雲端式測試

沒有 Azure 的本機測試 牽涉到模擬 Azure 服務。 使用此方法快速測試變更,而不會產生與實際 Azure 服務相關聯的成本或網路等待時間。

另一方面, 使用 Azure 進行雲端式測試 會利用實際的 Azure 資源來驗證應用程式在雲端環境中的整合、安全性和效能。 此方法對於類似生產環境設定的最終驗證至關重要。 它可協助確保應用程式在即時 Azure 服務中如預期般運作。

模擬器和開發容器會以不同的方式增強使用 Azure 服務的本機開發。 模擬器用於模擬 Azure 服務,讓早期測試在成本效益的範圍內進行,無需承擔 Azure 費用,但可能無法完整複製即時服務的所有功能。 開發容器會更緊密地復寫生產環境,包括應用程式相依性和服務,以協助順暢地轉換至生產環境。 開發容器適合複雜的應用程式,但需要比模擬器更多的設定。

模擬器

模擬器包括:

開發容器

開發容器提供強大的替代方案,可用來使用模擬器進行本機開發,特別是在使用 Azure 服務時。

藉由在容器中執行服務,建立本機環境,以密切鏡像生產環境,以提供跨開發、測試和部署階段的一致性。 它也藉由更準確地模擬真實世界條件來增強測試的可靠性。

設定容器以復寫 Azure 服務的設定和數據。 如此一來,容器會提供強大的平臺來開發和測試應用程式,而不需要連線到即時 Azure 服務的額外負荷。

開發容器包括 Azure SQL Database。

瞭解更多資訊:

AI 與開發者生產力工具

AI 驅動的工具透過智慧程式碼協助、資源管理、測試自動化及部署支援,提升您在 Azure 上的 JavaScript 開發工作流程。

Tool Description
GitHub Copilot 用於 Azure AI 輔助程式設計,支援 Azure 特定情境。 您可以直接在 VS Code 中詢問有關 Azure 服務的問題、產生基礎架構程式碼,並獲得 Azure SDK 使用協助。
Azure MCP 伺服器 建模情境協定工具,將你的 IDE 連接到 Azure 資源。 查詢資源配置、管理部署並驗證設定,且不必離開編輯器。
Azure 技能 可組合的 AI 功能適用於 Azure 工作流程,包括診斷、合規掃描、部署驗證及資源配置——可從 GitHub Copilot 或任何相容 MCP 用戶端使用。
劇作家MCP 瀏覽器自動化工具透過 MCP 平台公開,以進行端到端的測試。 執行 Playwright 測試、截圖,並透過 AI 協助驗證網頁介面互動。
Azure Developer CLI (azd) 簡化整個開發到部署的工作流程。 用單一工具初始化專案、配置基礎設施並部署程式碼。

這些工具協同運作,減少編輯器與 Azure 入口網站間的上下文切換。 例如:

  • 使用 GitHub Copilot 來撰寫含有即時建議的 Azure SDK 程式碼
  • 使用 Azure MCP Server 來確認你的資源設定是否正確
  • 使用 Azure 技能 來執行合規掃描或排查失敗部署問題
  • 使用 Playwright MCP 自動化瀏覽器測試您的Azure託管應用程式
  • 使用 azd 來一步完成應用程式的配置與部署

JavaScript 中的單元測試

在 JavaScript 中使用 Azure SDK 進行單元測試通常會使用 Jest 或 Vitest 等架構來隔離及測試個別元件或函式。

針對原生 Node.js 測試,可在 Azure SDK 用戶端原型上覆寫方法或使用簡單的模擬函式,來手動截取 Azure SDK 呼叫,而不需要額外的程式庫。

如需詳細資訊,請參閱本文稍後的 Azure SDK 測試 一節。

Tip

AI 開發工具: 使用 GitHub Copilot for Azure 從介面類型產生單元測試樣板與模擬模式,供Azure SDK客戶端使用。

JavaScript 中的整合測試

整合測試會評估應用程式與 Azure 服務之間的互動,以協助確保元件如預期般運作。

在 Azure DevOps 中使用 Azure Pipelines 或在 GitHub Actions 中使用工作流程來設定 自動化整合測試 。 此方法會將雲端環境中的元件部署和測試自動化。 這有助於識別單元測試期間可能不明顯的問題,例如網路等待時間或服務組態錯誤。

模擬 Azure 服務

模擬 Azure 服務是測試與 Azure SDK 整合之 JavaScript 應用程式的常見做法。 藉由模擬 Azure 服務回應,隔離應用程式邏輯與外部相依性,這有助於確保測試能快速且可靠地執行。

深入瞭解 如何測試 Azure SDK 整合。

持續整合測試

CI 測試牽涉到每次對程式代碼基底進行變更時自動執行測試。 Azure DevOps 之類的 CI 工具提供整合式環境,以自動化組建、測試和部署。 設定管線以包含自動化測試有助於確保已驗證每個變更,進而降低 Bug 和回歸的可能性。

適當的 管線設定 對於有效率的 CI 程序至關重要。 它包含設定自動測試執行的觸發程式,以及針對各種測試階段設定環境。

瞭解更多資訊:

Azure Test Plans

Azure Test Plans 提供一套完整的套件,可在 Azure DevOps 中進行手動和探勘測試。

此服務可藉由提供結構化方法來手動測試,在需要人為判斷或難以自動化的案例中提供協助。 Teams 可以使用它來規劃、執行及追蹤測試活動,包括擷取豐富的數據,例如螢幕快照和影片,以協助進行 Bug 報告。 將 Azure Test Plans 整合到 CI/CD 程式提供涵蓋自動化和手動測試案例的整體測試策略。

端對端測試

端對端測試會在模擬實際使用者案例的環境中驗證應用程式的完整作業。 藉由使用 Playwright 之類的架構,您可以將瀏覽器型測試自動化,以使用者身分與應用程式互動。

以案例為基礎的測試 牽涉到為完整的使用者流程建立測試案例,例如註冊、執行工作和註銷。使用此測試來驗證應用程式在 Azure 上的功能和用戶體驗。

瞭解更多資訊:

Tip

AI 開發工具: 使用 Azure MCP Server工具,在對現場 Azure 資源進行端對端對端測試前,驗證部署目標與服務健康狀況。

效能測試

效能測試對於部署在 Azure 上的應用程式而言非常重要,可協助確保應用程式能夠處理預期的負載,並在壓力下順利執行。

效能評定 牽涉到根據定義的計量或標準來測量應用程式的效能。 使用 Azure 負載測試服務來模擬高流量,並分析應用程式的延展性和復原能力。

CLI 範例:

az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json

瞭解更多資訊:

安全性測試

Azure 上的安全性測試牽涉到識別應用程式中的潛在弱點,以防止未經授權的存取或數據外洩。

弱點掃描 工具對於自動偵測程式代碼或組態中的安全性弱點至關重要。 藉由整合 GitHub 進階安全性 功能與傳統的靜態應用程式安全性測試 (SAST) 工具,您可以改善在 Azure 上部署之應用程式的安全性狀態。 主要功能包括:

  • 程式代碼掃描:在部署之前識別程序代碼基底內的弱點。
  • 秘密掃描:協助防止敏感數據暴露。
  • 供應鏈監視:協助防範可能遭入侵的相依性。

這些整合式安全性措施可協助您儘早識別弱點、防止數據外洩,並確保應用程式供應鏈的完整性。

滲透測試 會針對您的應用程式模擬網路攻擊,以評估其安全性狀態。 Azure 提供進行這些測試的指引和工具,以協助確保平臺上部署的應用程式安全防範威脅。

建議將 CodeQL 整合到 CI 管線中,以儘早攔截弱點。

瞭解更多資訊:

合規性和治理測試

確保應用程式符合法律、法規和原則需求非常重要,特別是在雲端環境中。 法規合規性 測試會驗證您的應用程式是否符合 GDPR、HIPAA 或 SOC 2 等標準。

Azure 提供原則和合規性工具,例如 Azure 原則和 Azure 藍圖,可協助自動化和強制執行 Azure 資源之間的合規性。 這些工具可簡化在應用程式部署中維護治理和合規性標準的程式。

瞭解更多資訊:

輔助功能測試

輔助功能測試對於讓軟體內含且符合法律標準至關重要。 輔助功能深入解析之類的工具可協助識別和修正 Web 和行動應用程式中的輔助功能問題。 將無障礙分析工具整合到開發工作流程中,根据 Web 內容無障礙指導方針 (WCAG) 標準提供指導和報告,以促進自動化和手動檢查的進行。

A/B 測試

A/B 測試或分割測試是比較兩個網頁或應用程式版本彼此的方法,以判斷哪一個執行得更好。 Azure 提供下列支援 A/B 測試的服務:

  • Azure App 服務:提供部署位置,以允許您測試應用程式版本的預備環境,而不會影響即時應用程式。

  • Azure 容器應用程式:為執行微服務型應用程式提供彈性的環境。 您可以在此環境中實作 A/B 測試,以測試應用程式版本。

使用這些服務來部署應用程式的變化,然後測量用戶回應和有效性。

Azure SDK 測試

對於使用 Azure 服務的開發人員而言,獲得 Azure SDK 的熟練程度對於製作健全且可調整的應用程式而言非常重要。 下列 Azure SDK 測試裝載於適用於 JavaScript SDK 的 GitHub 上,是寶貴的資源:

探索這些測試可提供無縫 Azure 服務整合的深入解析、展示 Azure 資源互動的最佳做法,以及協助確保有效率且安全的實作。 探索更廣泛的 SDK 範例,以取得全面瞭解。

Tip

AI 開發工具: 使用 GitHub Copilot for Azure 來導航Azure SDK測試模式並從 SDK 介面定義生成測試夾具。 Azure Skills 可以配置符合 SDK 範例配置的測試資源。

其他資源