溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

實用的微服務(wù)測試策略有哪些

發(fā)布時間:2022-01-05 10:42:19 來源:億速云 閱讀:105 作者:柒染 欄目:云計算

本篇文章為大家展示了實用的微服務(wù)測試策略有哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

微服務(wù)架構(gòu)并不是一種新的架構(gòu)模式,但它的不斷發(fā)展為那些尋求企業(yè)級私有云解決方案的公司,帶來了諸多好處,將大型一體化架構(gòu)應(yīng)用拆分為可組合的微服務(wù),賦予企業(yè)獨立擴(kuò)展和維護(hù)每個組件的能力以及DevOps能力。

當(dāng)然,微服務(wù)架構(gòu)的分布式和獨立性也帶了許多挑戰(zhàn),而下面談?wù)勅绾慰朔y試多個可獨立部署組件時可能會遇到的挑戰(zhàn)。

單元測試(Unit Testing)

單元測試的范圍可以是一組服務(wù)(社會性單元測試),也可以是單獨的一個服務(wù)(獨立單元測試)。被測試的單元粒度越小,就越容易確定模塊的行為、查明相關(guān)collaborators以及對象與依賴之間的交互。由于單元的復(fù)雜度較低,QA工程師可以通過單元測試策略來評估單元是否與collaborators隔離。社會性單元測試和獨立單元測試經(jīng)常會在同一個代碼庫中同時進(jìn)行,以解決不同的測試問題。

測試domain layer的目的是模擬DML語句并證明所有collaborators都以正確的順序使用真實的domain objects。在單元測試期間,工程師可以驗證用于生成map responses的邏輯或來自外部遠(yuǎn)程依賴項的其他請求。就資源和服務(wù)層而言,驗證每個組件是否與collaborators正確交互,將可以可重復(fù)且一致的方式監(jiān)視請求/響應(yīng)周期。

集成測試(Integration Testing)

集成測試在分段環(huán)境中進(jìn)行,以在分析通信路徑的功能和它們之間的交互之后集成各個服務(wù)。與單片或SOA不同,微服務(wù)架構(gòu)依賴于進(jìn)程間通信(IPC)機(jī)制來正常運行,這就是為什么必須驗證服務(wù)之間的交互。

我們需要編寫自動化測試,以通過與外部服務(wù)和數(shù)據(jù)存儲的集成來映射成功或錯誤的情況。運行網(wǎng)關(guān)集成測試將在協(xié)議級別上破壞接口錯誤,例如不正確的SSL處理和丟失的HTTP標(biāo)頭。持久性集成測試確保每個組件和協(xié)議客戶端必須在超時和部分失敗的情況下作為外部依賴進(jìn)行響應(yīng)。

契約測試(Contract Testing)

契約測試是一種用于驗證外部服務(wù)調(diào)用與其API Provider endpoint之間契約的黑盒子。一般有兩種契約測試:

  • 集成契約測試

  • 消費者驅(qū)動(consumer-driven)契約測試

在集成契約測試中,每個組件都需要獨立調(diào)用,并且必須滿足消費服務(wù)(consumer)預(yù)期的契約協(xié)議。解決這個問題的最佳方法是對double進(jìn)行測試。另一方面,定期運行一組單獨的測試以確認(rèn)測試double沒有變化至關(guān)重要。不過,一單出現(xiàn)測試失敗,會降低部署管道的速度并破壞IT基礎(chǔ)架構(gòu)或分布式系統(tǒng)的功能。處理間歇性測試失敗的最佳方法之一是更新測試double,同時可能也需要更新代碼,以便可以使其恢復(fù)到與外部服務(wù)一致的狀態(tài)。

在消費者驅(qū)動的契約測試中,消費者將描述他們想要使用服務(wù)的方式。消費者契約可以在生產(chǎn)者和消費者之間以相互同意的語言和模式進(jìn)行。服務(wù)提供商將針對各個契約的副本測試服務(wù),然后對該特定服務(wù)進(jìn)行更改,而不會影響其他服務(wù)的性質(zhì)。

End-to-End測試(End-to-End Testing)

End-to-End(E2E)測試用于確定整個系統(tǒng)正常運行以及網(wǎng)絡(luò)基礎(chǔ)設(shè)施(負(fù)載平衡器、防火墻等)已正確配置。End-to-End測試需要以最精細(xì)的粒度運行以測試整個系統(tǒng)的功能。在此,QA工程師驗證完全集成過程的行為,并確保系統(tǒng)總體上滿足其業(yè)務(wù)需求,而不管使用的服務(wù)組件體系結(jié)構(gòu)如何。在功能測試的幫助下,開發(fā)人員可以確定集成系統(tǒng)或應(yīng)用是否按要求的規(guī)定運行。

上述內(nèi)容就是實用的微服務(wù)測試策略有哪些,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI