共用方式為


效能測試建議

適用於此 Power Platform Well-Architected 性能效率檢查表建議:

PE:05 測試效能。 在與生產環境相符的環境中定期進行測試。 將結果與效能目標和效能基準進行比較。

本指南將介紹測試建議。 效能測試可説明您評估工作負載在各種方案中的功能。 它涉及測試工作負載的回應時間、輸送量、資源利用率和穩定性,以幫助確保工作負載滿足其效能要求。

測試有助於防止效能問題。 它還有助於確保您的工作負載符合其服務級別協定。 如果沒有效能測試,工作負載可能會遇到效能下降,這通常是可以預防的。 工作負載效能可能會偏離效能目標和既定基線。

定義

詞彙 定義
混沌測試 一種效能測試,旨在通過故意引入隨機和不可預測的故障或中斷來測試系統的彈性和穩定性。
負載測試 效能測試可衡量典型負載和重負載下的系統效能。
效能基準 一組指標,表示通過測試驗證的工作負載在正常情況下的行為。
壓力測試 使系統過載直到系統中斷的效能測試。
綜合測試 一種效能測試,用於類比應用程式中的使用者請求。

關鍵設計原則

效能測試可説明您收集有關工作負載的可衡量資料。 儘早運行測試有助於按照正確的規範構建工作負載。 因此,請在開發生命週期中儘早進行效能測試。 早期測試允許您在投入生產之前捕獲並修復效能問題。 如果生產代碼尚未準備就緒,則可以使用概念證明(POC)。

如果從先前系統移轉資料且移轉必須在特定時間段內完成,則效能測試應包括測量資料移轉的效能。

準備測試

準備效能測試是指設置和安排有效進行效能測試所需的資源、配置和測試場景。 良好的效能測試應該模擬使用者在現實生活中如何使用您的解決方案。 它還應該幫助你驗證你的解決方案是否滿足你的效能目標。

定義驗收準則

驗收標準指定工作負載需要滿足的效能要求才能被視為可接受或成功。 定義與效能目標一致的標準。

效能效能目標。 效能目標定義了您期望的工作負載效能等級。 查看為工作負載建立的效能目標。 效能目標是可能涉及回應時間、輸送量、資源利用率或任何其他相關效能計量的計量。 例如,您可能將回覆時間設定為低於特定閾值(例如小於 2 秒)的目標。

定義驗收準則。 將效能目標轉換為可用於評估工作負載效能的特定驗收標準。 例如,假設您的回應時間效能目標為 2 秒或更短。 您的接受標準可以是 工作負載的平均回覆時間應小於 2 秒。 使用這些驗收條件來確定工作負載是否滿足所需的效能級別。

定義驗收標準時,請務必關注使用者及其期望。 驗收標準有助於確保交付的工作滿足使用者需求和要求。 在將用戶視角納入驗收標準時,請記住以下注意事項:

  • 使用者角色:瞭解將同時使用解決方案的用戶數量和類型。 定義代表不同角色、位置、安全配置、資料集和活動的使用者角色。

  • 使用者要求:瞭解工作負載的使用者需求和目標。 考慮工作負載應如何執行以滿足這些要求。 定義反映使用者在一天中執行動作的日常生活情境。 包括峰值負載和正常負載方案。

  • 使用者體驗:定義擷取所需使用者體驗的驗收標準。 包括回覆時間、可用性、可訪問性和整體滿意度等因素。

  • 功能需求:解決使用者期望在工作負載中看到的特定功能。 圍繞這些功能要求定義驗收標準,以説明確保滿足這些功能要求。 為每個方案使用真實的資料量。 不要使用超出或少於使用者需要的資料。

  • 基礎結構要求:為每個方案定義切合實際的基礎結構要求。 例如,如果使用者將從連接不良的行動裝置存取解決方案,請在這些條件下測試解決方案。

  • 用例:考慮使用者可能遇到的不同場景或用例。 根據這些用例定義驗收標準,以驗證工作負載在實際情況下的效能。

設置接受閾值。 確定驗收標準中指示工作負載是否滿足效能目標的閾值。 這些閾值定義每個指標的可接受效能範圍。 例如,假設回覆時間的驗收準則小於 2 秒。 您可以將閾值設置為 2.5 秒。 此級別表示任何超過 2.5 秒的回覆時間都被視為效能問題。

定義通過準則。 建立用於確定工作負載是否通過效能測試的條件。 您可以將透過定義為滿足所有驗收標準或達到一定比例。

選取測試類型

要選擇正確的效能測試類型,重要的是使測試符合您的驗收標準。 驗收標準定義了要求或錯誤修復被視為完成所需滿足的條件。 效能測試的目的應是驗證工作負載是否符合這些驗收標準,並在指定條件下如預期執行。 將效能測試類型與驗收標準保持一致,有助於確保測試重點符合標準定義的效能期望。

  • 瞭解驗收標準。 查看需求或錯誤修復的驗收標準。 這些標準概述了要滿足的具體條件和功能。

  • 確定相關的性能指標。 根據驗收標準,確定對實現所需結果至關重要的效能指標。 例如,如果驗收標準側重於回應時間,則應確定負載測試的優先順序。

  • 選擇適當的測試類型。 評估可用的測試類型,並選擇最符合已確認效能計量和驗收標準的測試類型。

下表提供了測試類型及其用例的範例。

測試類型 Description 使用案例
負載測試 模擬真實的用戶負載,以衡量工作負載在預期峰值工作負載下的表現。 確定負載容差。
壓力測試 將您的工作負載推超出正常限制,以確定其突破點並衡量其恢復能力。 確定彈性和穩健性。
浸泡測試(耐久性測試) 長時間在持續高負載下運行工作負載,以識別效能下降、記憶體洩漏或資源問題。 評估一段時間內的穩定性和可靠性。
尖峰測試 模擬使用者負載突然增加,以評估您的工作負載如何處理需求的突然變化。 衡量在高峰期擴展和保持效能的能力。
相容性測試 測試工作負載在各種平台、瀏覽器或裝置上的效能。 有助於確保在各種環境中保持一致的效能。

根據工作負載的特徵和要求確定所選測試類型的優先順序。 考慮效能指標的關鍵程度、使用者期望、業務優先順序以及已知問題或漏洞等因素。

選擇測試工具

根據要運行的效能測試類型選擇適當的工具。 評估測試環境的基礎結構、資源和約束。 選擇支援所需測試類型並提供監控、測量、分析和報告必要功能的測試工具。

應用程式效能監控(APM)工具提供對應用程式的深入見解,是必不可少的測試工具。 它可以説明您追蹤單個事務,並通過各種工作負載服務映射其路徑。 測試后,您應該使用 APM 工具分析測試資料並將其與效能基線進行比較。

使用分析工具確定代碼中的效能瓶頸。 效能分析有助於識別代碼中消耗最多資源且需要最佳化的區域。 其會對程式碼不同部分的執行時間和記憶體使用情況,提供深入解析。

以下步驟可以幫助您選擇適當的測試工具:

  • 確定測試要求。 首先瞭解效能測試的特定要求。 考慮各種因素:

    • 工作負載的類型
    • 要測量的效能計量,例如反應時間和輸送量
    • 工作負載架構的複雜性
    • 測試環境,例如基於雲的、內部部署的或混合的
  • 研究測試工具。 進行研究以確定符合您要求的效能測試工具。 考慮市場上可用的商業和開源工具。 尋找支援您所需類型的效能測試 (例如負載測試或壓力測試),並提供測量效能計量功能的工具。

  • 評估工具功能。 評估每個測試工具提供的功能。 尋找諸如模擬真實用戶行為和可伸縮性之類的功能,以處理大量用戶負載。 考慮支援各種協議和技術,與其他測試工具或框架的集成,以及報告和分析功能。

  • 考慮相容性和集成。 確定測試工具與現有基礎架構和技術的相容性。 確保工具可以輕鬆集成到測試環境中,並且可以與監視和分析所需的工作負載進行通信。

  • 評估成本和許可。 評估與測試工具關聯的成本結構和許可條款。 考慮初始投資、維護成本和支援成本等因素。 此外,請考慮取決於使用者或虛擬用戶數量的其他許可要求。

  • 執行 POC。 根據您的評估選擇一些看起來最合適的工具。 執行小規模 POC,以驗證工具在特定測試方案中的可用性、功能和有效性。

  • 考慮支持和培訓。 評估工具供應商或社區提供的支持和培訓級別。 確定文件、教學課程和技術支援管道的可用性,以協助解決測試過程中可能出現的任何挑戰或問題。

建立測試情境

建立測試情境是指設計適合測試工作負載效能的特定情況或條件。 建立測試情境是為了模擬現實的使用者行為和工作負載模式。 這些情境為效能測試人員提供了方法,以評估工作負載在各種條件下的執行情況。

測試情境可以複製各種工作負載模式,例如並行使用者存取、高峰負載期或特定交易序列。 透過測試不同工作負載模式的工作負載,您可以識別效能瓶頸並最佳化資源分配。

  • 定義用戶行為。 透過辨識使用者與工作負載互動時執行的步驟和動作,模擬真實的使用者行為和工作負載模式。 考慮登錄、執行搜索、提交表單或訪問特定功能等活動。 將每個情境分解為代表使用者與工作負載互動的具體步驟和動作。 您可以包含瀏覽頁面、執行交易或與工作負載的各種元素互動。

  • 確定數據參與。 確定運行測試方案所需的測試資料。 您可以包括建立或產生表示各種方案、使用者設定檔或資料量的真實資料集。 確保測試資料多樣化並涵蓋不同的用例,以提供全面的效能評估。

  • 設計測試腳本。 創建可自動執行已定義測試方案的測試腳本。 測試腳本通常由一系列操作、HTTP 請求或與工作負載 API 或使用者介面的互動組成。 使用效能測試工具或程式設計語言編寫腳本,同時考慮參數化、相關性和動態資料處理等因素。 驗證測試腳本的正確性和功能性。 偵錯任何問題,例如指令碼錯誤、缺失或不正確的動作,或與資料相關的問題。 測試指令碼驗證對於確保準確可靠的效能測試執行至關重要。

  • 配置測試變數和參數。 在測試腳本中配置變數和參數,以引入可變性並類比真實場景。 包括使用者認證、輸入資料或隨機化等參數,以類比不同的用戶行為和工作負載回應。

  • 反覆運算優化腳本。 根據反饋、測試結果或不斷變化的需求不斷最佳化和增強測試腳本。 請考慮最佳化腳本邏輯、參數化和錯誤處理,或添加額外的驗證和檢查點。

配置測試環境

配置測試環境是指設置基礎結構、軟體和網路配置的過程,創建與生產環境非常相似的環境。

若要以提高效能效率的方式設置測試環境,請在配置過程中包括以下步驟:

  • 鏡像您的生產環境。 設置測試環境,使其與生產環境非常相似。 請考慮環境設置和區域、網路設置、安全設置、資料源和集成等因素。 目標是確保效能測試結果能夠代表真實世界的條件。

  • 準備金足夠的資源。 為測試環境分配足夠的資源,例如儲存容量。 確保可用資源可以處理預期的工作負載並提供準確的效能度量。

  • 複製網路條件。 在測試環境中配置網路設置,以在實際工作負載部署期間複製預期的網路條件。 您需要包括頻寬、延遲和網路協定。

  • 安裝和配置依賴項。 從 AppSource 安裝任何應用程式以及工作負載正確執行所需的其他相依性。 這包括使用預期的生產設定來設定協力廠商服務。

權衡:維護單獨的測試環境、存儲數據、使用工具和運行測試會產生相關成本。 瞭解效能測試的成本,並找到最佳化支出的方法。

風險:生產數據可能包含敏感資訊。 如果沒有強大的清理和遮罩策略,您在使用生產資料進行測試時可能會面臨敏感資料外洩的風險。

執行測試

使用所選測試工具運行效能測試。 測試涉及測量和記錄效能指標、監視運行狀況以及捕獲出現的任何效能問題。

監視和收集效能指標,例如回覆時間、輸送量和其他相關指標。

使用定義的測試方案將工作負荷置於預期負載之下。 在這些不同的負載條件下進行測試。 例如,使用等級 (正常、高峰和壓力等級等) 來分析工作負載在各種情境中的行為。

在規劃和運行性能測試時,請務必記住,在許多情況下, Microsoft 雲使用共用基礎設施來託管您的資產和屬於其他客戶的資產。 限制測試以避免意外後果。

記錄結果

清晰一致地記錄效能測試結果。 您的文件應顯示:

  • 您的解決方案是否滿足各情境的效能目標
  • 運行每個測試的時間和方式
  • 您測試的解決方案版本是什麼
  • 測試期間發生的任何錯誤或問題
  • 測試後您所做的任何更改或最佳化

分析結果

分析測試結果涉及檢查從效能測試中收集的資料和指標,以深入瞭解工作負載的效能。 目標是確定效能問題,並使用反饋來調整應用程式開發中的優先順序。

以下操作是分析測試結果的關鍵步驟。

檢閱效能計量。 查看在效能測試期間收集的效能指標,例如回覆時間、輸送量、錯誤率和網路延遲。 分析這些指標以瞭解工作負載的整體效能。

  • 識別瓶頸。 評估效能指標以識別任何瓶頸或效能低效的區域。 評估可能包括高回覆時間、資源限制、資料庫問題、網路延遲和可伸縮性限制。 找出這些瓶頸的根本原因可以幫助您確定改進效能的優先順序。

  • 關聯量度。 評估各種效能計量之間的關係和相關性。 例如,分析增加的負載或資源利用率如何影響回覆時間。 瞭解這些相關性可以提供有關不同條件下工作負載行為的寶貴見解。 查找效能資料隨時間變化的模式和趨勢。 分析不同負載級別或特定時間段的效能。 檢測趨勢有助於識別季節性變化、高峰使用時間或重複出現的效能問題。

評估驗收標準。 將複測結果與預定義的驗收標準和效能目標進行比較。 評估工作負載是否滿足所需的效能標準。 如果工作負載不符合驗收標準,請進一步調查並完善最佳化。

反覆進行並完善分析。 根據需要進行其他調整和改進。 使用收集的資料和指標來診斷特定的效能問題。 診斷可能涉及追蹤工作負載元件、檢查記錄檔、監視資源使用方式或分析錯誤消息。 深入挖掘資料,瞭解效能問題的根本原因。

根據對測試結果的分析,確定已識別的效能問題的優先順序,並實施必要的改進。 這些改進可能包括最佳化邏輯、調整查詢、改進緩存機制和最佳化網路配置。

建立基線

基準提供了比較一段時間內的效能結果的參考點。 基線應該是工作負載效能的有意義的快照,無需將每個測試都用作基線。

考慮工作負載目標,並記錄效能快照,以便隨著時間的推移進行學習和最佳化。 使用這些基線測量值作為未來效能測試的基準,並使用它們來識別任何降級或改進。

若要建立效能測試基準,並將其用作未來效能測試的基準,請執行下列步驟:

  • 確定性能指標。 確定要衡量和追蹤的特定效能指標。範例包括:

    • 回應時間,或工作負載回應要求的速度。
    • 輸送量,或單位時間內處理的請求數。
    • 資源利用率,例如儲存體容量使用情況。
  • 記錄有意義的測量結果。 記錄在測試期間獲得的效能指標作為基線測量值。 這些測量結果代表了您比較未來效能測試的起點。

  • 比較未來的測試。 在後續效能測試中,將效能指標與建立的基線和閾值進行比較。 透過比較,您可以確定效能是否有所改進或衰退。

連續測試

持續測試涉及對測試的持續監視和最佳化。 持續測試可説明您保持一致且可接受的效能級別。 工作負荷應提供相對於基線的一致且可接受的效能級別。 應隨著時間的推移調整工作負載,以在可接受的效能限制內產生一致的效能。

以下列出一些關鍵做法:

  • 設置降級限制。 定義數值閾值,指定一段時間內可接受的效能下降等級。 通過設置這些限制,您可以監控效能波動,並在效能低於定義的閾值時接收警報。

  • 包括質量保證。 將效能要求(如每秒最大請求數)納入品質保證流程。 將效能要求與功能需求的重要性級別視為相同。 此過程有助於確保工作負載在部署到生產環境之前滿足定義的效能要求。

  • 自動警報。 在即時環境中,快速偵測和回應至關重要。 設置使用效能基線作為參考的自動警報系統。 如果效能出現重大偏差,就會立即提醒必要的團隊採取行動。

  • 測試更改。 某些效能問題可能僅在即時環境中顯現。 對建議的更改應用全面的測試實踐。 使用程式碼偵測來深入了解應用程式的效能特徵,例如熱路徑。 此測試可確保引入的所有變更不會將效能降低到超出可接受的限制。

Power Platform 簡易化

執行測試Azure Pipelines 使你能夠將性能測試集成到 CI/CD (持續整合/持續交付) 管道中。 可以將負載測試合併為管道中的一個步驟,以驗證應用程式的效能和可伸縮性。

Power Apps 測試引擎 是 CLI 中的 Power Platform 一個元件,可用於在其中 Power Apps測試獨立畫布應用程式。

Azure Test Plans 是一種易於使用、基於瀏覽器的測試管理解決方案,它提供計劃內手動測試、使用者驗收測試、探索性測試和從利益幹系人收集反饋所需的所有功能。

如果工作負載包含 Azure 資源,則可以使用 Azure Chaos StudioAzure 負載測試來執行測試。

在開發過程中,開發人員還可以使用 Power Apps 監視器更快地診斷和解決問題,並建立更可靠的應用程式。 透過記錄應用程式執行時發生的所有關鍵活動,監視器可讓您深入了解應用程式。 Power Apps 監視器還可以更好地了解應用程式中包含的事件和公式狀況,讓您能改善效能並找出任何錯誤或問題。

如果您的工作負載包括 Microsoft Copilot Studio copilot,則可以使用 Power CAT Copilot Studio Kit 配置 copilot 和測試。 通過針對 Copilot Studio API()Direct Line 運行單個測試,將根據預期結果評估 Copilot 回應。

分析結果Azure Monitor 是一個全面的監視解決方案,用於從雲和內部部署環境收集、分析和響應遙測數據。 Application Insights 是提供 APM 功能的 Azure Monitor 的擴展。 您可以使用 Application Insights 在開發和測試以及生產過程中監視應用程式。

權衡:執行測試需要時間和技能,並且可能會影響運營效率。

效能效益檢查清單

請參閱完整的建議集。