特色
    獲取加速2022的更新

    我們又見麵了。9月在加州聖克拉拉加入我們的加速計劃。

    注冊更新
    特色
    得到Tricentis認證

    開始你的學習之旅。

    查看課程
    特色
    您的轉換工具包

    使用我們的轉換工具包推進您的企業測試策略。

    了解更多

    學習

    混亂的工程

    隨著企業繼續將更多的資產和應用程序轉移到雲端,軟件係統已經變得高度分布式和複雜。他們也更容易受到幹擾和不可預測的結果的影響。雖然軟件測試可以在理想條件下改進應用程序的功能,但沒有多少黑盒測試白箱測試可以預測係統在意外和混亂的條件下將如何反應。這就是混沌工程學可以發揮作用的地方。

    什麼是混沌工程?圖形

    什麼是混沌工程?

    混沌工程是在係統上進行實驗的實踐,以建立係統在生產中經受住湍流條件的能力的信心。換句話說,設計混沌實驗是為了讓係統承受巨大的壓力,故意破壞它們,以發現它們的弱點在哪裏。有了這些知識,開發人員就可以在係統在生產環境中崩潰之前修複缺陷,從而防止中斷並確保更好的用戶體驗。

    混沌工程的興起被歸因於Netflix在2010年采用了AWS雲基礎設施。為了保護客戶的體驗,Netflix的工程師開始進行混沌實驗,以確保即使亞馬遜服務器停機,他們也能繼續提供高質量的流媒體服務。

    混沌工程旨在回答有關係統彈性和功能的具體問題,例如:

    • 當係統流量過大或用戶無法訪問時,會發生什麼情況?
    • 當單點故障導致應用程序崩潰時,會發生哪些類型的級聯錯誤?
    • 當網絡出現問題時會發生什麼?
    • 當特定服務無法訪問或特定應用程序宕機時,會發生什麼情況?

    作為混亂測試的結果,IT團隊可以看到係統如何實時響應各種壓力。它揭示了其他測試方法所不能揭示的缺陷和弱點。混沌實驗還能讓IT團隊更好地應對現實世界中的故障,減少生產環境中出現問題時的響應時間。

    混沌工程的好處

    與其他類型的測試相比,混沌工程提供了許多關鍵的好處。

    • 建立對係統抵禦複雜現實問題的能力的信心。混亂測試允許IT和DevOps團隊更準確地識別和修複其他類型的手冊或軟件無法捕捉到的問題自動化軟件測試
    • 提高係統設計知識。混沌經驗在幫助IT團隊理解和發現大型複雜係統(如基於雲的應用程序和服務)中的弱點方麵特別有用,這些係統通常必須快速擴展。有了這些知識,IT和DevOps團隊可以設計和構建更健壯的係統。
    • 提高服務可用性。通過主動和持續的混亂測試,IT團隊可以減少計劃外的停機和中斷,從而提供更好的客戶體驗。
    • 保護收入,提高可擴展性。通過減少中斷,混亂工程有助於防止收入損失。混亂測試還為IT團隊提供了設計係統所需的知識,以便快速擴展以滿足需求峰值。

    混沌工程原理

    混沌工程有幾個代表最佳實踐的核心原則。

    1. 建立一個假設.首先確定一個“穩定狀態”——一個定義係統可測量輸出和代表典型行為的控製。
    2. 模擬真實世界的事件.使用控製組和試驗組,引入基於現實事件的變量,如硬盤故障、網絡連接中斷、流量峰值或服務器崩潰。
    3. 連續進行自動化實驗.為了在提高結果的同時最小化成本,混沌工程使用自動化來不斷地編排實驗和分析結果。
    4. 對生產中的係統進行實驗.因為係統在階段和生產環境中的行為不同,所以混沌工程必須專注於生產流量的試驗。
    5. 最小化爆炸半徑.因為在生產中進行實驗會對客戶體驗產生負麵影響,所以最初的混亂實驗應該從一個小範圍的影響開始,並隨著對係統的信心的增加而增長。

    典型的混沌實驗

    在係統上進行的混亂測試的類型取決於係統的體係結構和業務的目標。一些最常見的測試包括:

    • 造成突然的流量高峰
    • 關閉虛擬機以查看係統的反應
    • 模擬高CPU負載
    • 模擬資源枯竭
    • 創建服務之間的延遲
    • 在網絡中引入不可靠性
    • 在數據存儲中模擬飽和
    • 導致DNS不可用
    • 模擬I / O錯誤
    • 係統與數據中心連接中斷
    • 模擬失敗的組件
    • 通過隨機導致函數拋出異常來引入基於函數的混亂
    • 防止係統時鍾同步
    搞混沌工程實驗的開發者

    Tricentis的混沌工程解決方案

    應用程序變得更加複雜和分布式。性能測試和混沌工程是一個強大的組合,可以為任何條件下的峰值流量準備複雜係統,以最大限度地發揮分布式係統的潛力。在開發/測試環境中執行負載測試隻能測試應用程序在理想條件下如何處理流量。然而,事情會破裂,依賴性會失效。確保您的應用程序在理想的和降級的環境中都能達到預期的性能,這樣即使出現故障,您的客戶也不會受到影響,並對您的產品感到滿意。

    使用Neoload和Gremlin,您可以很容易地在常見故障場景中模擬大量流量。識別並改進係統中容易出現故障或無法有效擴展的部分。監視您的係統在故障場景期間的退化情況,以決定投資哪些領域以改善客戶的正常運行時間。

    Tricentis NeoLoad和Gremlin共同幫助測試團隊回答以下問題:

    • 自動縮放是否啟動並處理額外的負載?
    • 少量後端延遲級聯到大量的前端延遲嗎?
    • 非關鍵服務宕機是否會導致前端錯誤或終端用戶性能變慢?
    • 來自第三方供應商的中斷將如何影響最終用戶?

    從NeoLoad發起Gremlin攻擊,將性能測試與混沌實驗同步,以自動化並最大化組合測試套件的好處。NeoLoad和Gremlin的集成是保證係統性能和可靠性的最佳自動化解決方案。除了NeoLoad, Tricentis還提供一係列測試解決方案測試管理工具支持持續集成在整個軟件測試生命周期

    常見問題

    什麼是混沌工程?

    根據混沌社區的說法,混沌工程是“在一個係統上進行實驗的規程,以建立對係統在生產中承受湍流條件的能力的信心。”換句話說,測試人員有意地試圖通過將係統置於壓力之下來識別弱點,分析潛在的中斷,並增加其彈性來破壞係統。

    混沌工程和失敗測試有什麼不同?

    失敗測試的目的是以特定的方式破壞係統,以檢查單一的條件。這些測試通常是二元的,不能揭示對係統及其弱點的新的理解或知識。相比之下,混亂測試通常會產生大量關於係統的新信息,以及係統在現實壓力和意外事件下的行為和表現。

    混沌工程的好處是什麼?

    與檢查係統對單一條件的響應的失敗測試相比,混沌工程允許組織在前所未有的壓力和複雜、多樣的現實問題下測試係統。混沌實驗有助於IT和DevOps團隊更好地了解係統,使他們能夠采取措施減少故障和中斷,提高可用性和持久性。

    從Tricentis開始

    Baidu
    map