原創(chuàng)|使用教程|編輯:鄭恭琳|2021-03-01 14:00:08.613|閱讀 200 次
概述:微服務(wù)致力于將傳統(tǒng)的單片應(yīng)用程序分解為小型的,可伸縮的,可單獨(dú)部署的服務(wù)。一些微服務(wù)體系結(jié)構(gòu)在反應(yīng)性環(huán)境中運(yùn)行,在該環(huán)境中,服務(wù)可以異步通信而不會(huì)阻塞答復(fù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
相關(guān)鏈接:
微服務(wù)致力于將傳統(tǒng)的單片應(yīng)用程序分解為小型的,可伸縮的,可單獨(dú)部署的服務(wù)。一些微服務(wù)體系結(jié)構(gòu)在反應(yīng)性環(huán)境中運(yùn)行,在該環(huán)境中,服務(wù)可以異步通信而不會(huì)阻塞答復(fù)。
當(dāng)系統(tǒng)的某些部分出現(xiàn)故障或行為異常時(shí),這些基于微服務(wù)的環(huán)境不太容易出現(xiàn)故障。對(duì)于完整功能,仍然需要所有依賴項(xiàng)的正確操作,但是此方法的主要優(yōu)點(diǎn)是它提供的去耦。
微服務(wù)是獨(dú)立的,這意味著它們可以根據(jù)需要進(jìn)行單獨(dú)部署,擴(kuò)展和更改。這允許快速迭代。但是,為了實(shí)現(xiàn)更快的迭代和可靠的服務(wù),現(xiàn)在更加關(guān)注API——面向公眾的API和依賴關(guān)系內(nèi)部使用的API。
在測(cè)試微服務(wù)時(shí),會(huì)出現(xiàn)大量新挑戰(zhàn)。
向微服務(wù)的轉(zhuǎn)變?yōu)檐浖F(tuán)隊(duì)帶來(lái)了新的挑戰(zhàn),降低了過(guò)渡時(shí)的投資回報(bào)率。
在API層進(jìn)行更多交互以實(shí)現(xiàn)自動(dòng)化
微服務(wù)之間的相互依賴性要求在API層的幕后進(jìn)行更多的切換和交互。充分的測(cè)試要求我們不僅了解這些交互,而且能夠隔離它們并進(jìn)行測(cè)試。
平行發(fā)展的障礙
微服務(wù)在修改和重新部署方面很敏捷,但是測(cè)試它們的復(fù)雜性減慢了并行開(kāi)發(fā)的速度。這種復(fù)雜性是由于服務(wù)之間的大量交互。它使測(cè)試環(huán)境變得復(fù)雜,并且使人們無(wú)法理解正在發(fā)生的事情。
對(duì)傳統(tǒng)測(cè)試方法的影響
微服務(wù)與傳統(tǒng)測(cè)試不一致,傳統(tǒng)測(cè)試通常依賴于同步請(qǐng)求/回復(fù)交互。微服務(wù)有時(shí)會(huì)部署在具有新協(xié)議和消息格式以及異步通信的反應(yīng)性,事件驅(qū)動(dòng)的體系結(jié)構(gòu)中。
更多潛在故障點(diǎn)
增加的交互作用和依賴性增加了潛在的故障點(diǎn)。并且由于服務(wù)的響應(yīng)性,新事件流可能會(huì)亂序觸發(fā)并崩潰。
開(kāi)發(fā)障礙
轉(zhuǎn)向微服務(wù)架構(gòu)有很多好處,但付出的代價(jià)往往使開(kāi)發(fā)團(tuán)隊(duì)無(wú)法實(shí)現(xiàn)創(chuàng)收功能的實(shí)現(xiàn)。除非消除測(cè)試和并行開(kāi)發(fā)障礙,否則很難實(shí)現(xiàn)真正的ROI。
為了使微服務(wù)測(cè)試的投資回報(bào)率最大化,請(qǐng)遵循以下策略:
通過(guò)AI提高功能性API測(cè)試覆蓋范圍的質(zhì)量,以確保已部署的服務(wù)滿足要求。
使復(fù)雜的,事件驅(qū)動(dòng)的工作流程自動(dòng)化,以加快測(cè)試速度。
改善測(cè)試環(huán)境,提高測(cè)試的可靠性和穩(wěn)定性。
充分利用微服務(wù)測(cè)試的三種策略
通過(guò)AI增加功能性API測(cè)試的覆蓋率
缺乏代碼和測(cè)試覆蓋范圍是質(zhì)量,安全性和客戶體驗(yàn)的問(wèn)題。如果僅部分測(cè)試了部署的服務(wù),則發(fā)現(xiàn)錯(cuò)誤的是客戶!覆蓋范圍的擴(kuò)大意味著更多的測(cè)試。為了實(shí)現(xiàn)這一目標(biāo),需要測(cè)試自動(dòng)化以利用現(xiàn)有的Selenium UI測(cè)試快速創(chuàng)建功能來(lái)加速功能測(cè)試。
除此之外,自動(dòng)進(jìn)行需要在服務(wù)之間交換數(shù)據(jù)的API序列的驗(yàn)證至關(guān)重要。這些API序列中的大多數(shù)都是基于自動(dòng)UI測(cè)試中API流量的“記錄”。可以克隆并轉(zhuǎn)化這些API序列以增加測(cè)試覆蓋率。
測(cè)試自動(dòng)化程度的提高通過(guò)確定故障點(diǎn)來(lái)減少解決問(wèn)題的時(shí)間。
減少“調(diào)試”測(cè)試失敗所花費(fèi)的時(shí)間意味著更多的時(shí)間測(cè)試功能。
自動(dòng)化的API測(cè)試是用于非功能測(cè)試的平臺(tái),因?yàn)榭梢允褂孟嗤臏y(cè)試資產(chǎn)和測(cè)試框架來(lái)自動(dòng)進(jìn)行真實(shí)的序列以進(jìn)行負(fù)載和性能測(cè)試。
自動(dòng)化復(fù)雜的,事件驅(qū)動(dòng)的工作流程
功能測(cè)試范圍的增加要求測(cè)試數(shù)據(jù)的更多排列。測(cè)試自動(dòng)化通過(guò)直接通過(guò)API提供端到端方案的大量數(shù)據(jù)排列來(lái)提供幫助。
測(cè)試數(shù)據(jù)管理是測(cè)試自動(dòng)化的關(guān)鍵功能。它需要保留測(cè)試數(shù)據(jù)的安全性(如果基于生產(chǎn)數(shù)據(jù))和數(shù)據(jù)的參數(shù)化,以支持新的復(fù)雜場(chǎng)景。
為了驗(yàn)證正確的行為,需要對(duì)服務(wù)交互的可見(jiàn)性。要使事件驅(qū)動(dòng)的體系結(jié)構(gòu)具有可見(jiàn)性,那就是服務(wù)虛擬化。虛擬化通過(guò)成為集成在一起的各種應(yīng)用程序中間的代理而有所幫助。例如,通過(guò)創(chuàng)建虛擬服務(wù)來(lái)模擬舊數(shù)據(jù)庫(kù),可以監(jiān)視來(lái)自舊系統(tǒng)和被測(cè)試微服務(wù)的請(qǐng)求。
監(jiān)視事件驅(qū)動(dòng)的體系結(jié)構(gòu)中的交互的功能非常有用。當(dāng)數(shù)據(jù)在系統(tǒng)之間移動(dòng)時(shí),服務(wù)虛擬化使我們能夠自動(dòng)驗(yàn)證那些復(fù)雜的工作流程。斷言放置在虛擬化服務(wù)中,以確保正確的請(qǐng)求/響應(yīng)事務(wù),從而可以監(jiān)視和驗(yàn)證復(fù)雜的事件驅(qū)動(dòng)的交互。
穩(wěn)定,隔離和左移微服務(wù)測(cè)試
服務(wù)虛擬化使服務(wù)模擬更上一層樓。它模擬了API交互的復(fù)雜,有狀態(tài)的行為,以使功能測(cè)試自動(dòng)化與難以管理的下游依賴關(guān)系保持穩(wěn)定和隔離。可以為每個(gè)開(kāi)發(fā)人員和測(cè)試人員復(fù)制此虛擬化的穩(wěn)定測(cè)試環(huán)境,從而消除了現(xiàn)實(shí)環(huán)境的復(fù)雜性,同時(shí)保留了測(cè)試所需的行為。這進(jìn)一步實(shí)現(xiàn)了對(duì)微服務(wù)清單的連續(xù)驗(yàn)證,包括作為CI/CD/DevOps管道一部分的客戶端系統(tǒng)測(cè)試。
在許多組織中,測(cè)試是頭等大事。換句話說(shuō),與API或單元測(cè)試相比,手動(dòng)或UI測(cè)試花費(fèi)了更多的測(cè)試時(shí)間和精力。這些組織知道他們需要更好的覆蓋范圍,但是UI測(cè)試更容易理解和定義(用戶界面更直觀)。結(jié)果,較少的技術(shù)(和較便宜的)資源可以進(jìn)行測(cè)試。
軟件組織通常希望使他們當(dāng)前正在執(zhí)行的測(cè)試自動(dòng)化(主要是UI測(cè)試)。盡管這樣做有幫助,但UI自動(dòng)化不穩(wěn)定且需要不斷維護(hù)。另外,UI級(jí)別上遇到的大多數(shù)問(wèn)題都是API層上的錯(cuò)誤的結(jié)果。缺乏對(duì)潛在活動(dòng)和交互的可見(jiàn)性意味著浪費(fèi)時(shí)間確定根本原因。
愿意進(jìn)行測(cè)試轉(zhuǎn)換的組織可以通過(guò)結(jié)合使用自上而下和自下而上的方法來(lái)進(jìn)行測(cè)試,從而獲得經(jīng)過(guò)更好測(cè)試的產(chǎn)品,并節(jié)省時(shí)間和金錢(qián)。一種新的測(cè)試策略具有很高的ROI,因?yàn)榻?jīng)過(guò)充分驗(yàn)證的API可以減少UI的不穩(wěn)定性,這意味著更好的客戶體驗(yàn)。
現(xiàn)在可以通過(guò)減少測(cè)試創(chuàng)建時(shí)間來(lái)實(shí)現(xiàn)更高級(jí)別的測(cè)試覆蓋率。在API級(jí)別上增加對(duì)交互的可見(jiàn)性意味著減少了平均修復(fù)時(shí)間。開(kāi)發(fā)人員將更快地發(fā)現(xiàn)更多問(wèn)題。這是一項(xiàng)雙贏的項(xiàng)目,只需相對(duì)少量的投資即可獲得較高的投資回報(bào)率。
這三種策略通過(guò)利用AI驅(qū)動(dòng)的測(cè)試創(chuàng)建,API測(cè)試自動(dòng)化和服務(wù)虛擬化,從根本上簡(jiǎn)化了測(cè)試創(chuàng)建過(guò)程。在不影響產(chǎn)品進(jìn)度的情況下,通過(guò)更好的代碼覆蓋率來(lái)改進(jìn)測(cè)試,從而產(chǎn)生更好的微服務(wù)。采用這些策略有助于軟件團(tuán)隊(duì)實(shí)現(xiàn)他們想要在測(cè)試中實(shí)現(xiàn)的投資回報(bào)率。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn