微服務(wù)的測(cè)試策略-創(chuàng)新互聯(lián)

1

微服務(wù)指的是技術(shù)層面的服務(wù)細(xì)化,并不是業(yè)務(wù)層面的變革。

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、德江ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的德江網(wǎng)站制作公司

所以,測(cè)試微服務(wù)應(yīng)用程序與測(cè)試使用任何其他體系結(jié)構(gòu)構(gòu)建的應(yīng)用程序沒(méi)有什么不同,原來(lái)的那套測(cè)試?yán)碚?,還是適用的。

我們暫時(shí)把微服務(wù)看成是一個(gè)較大體系的“黑盒”,因?yàn)闃I(yè)務(wù)上沒(méi)有變化,所以我們?cè)瓉?lái)熟悉的等價(jià)類、場(chǎng)景法、探索性測(cè)試等測(cè)試策略還是可以照樣執(zhí)行,沒(méi)有太多需要做出改變的,因?yàn)闃I(yè)務(wù)沒(méi)有太大的變化。需要注意的是,基于風(fēng)險(xiǎn)的測(cè)試策略可能會(huì)發(fā)生一些變化,因?yàn)轱L(fēng)險(xiǎn)因素變多了,需要考慮的影響因子變多,風(fēng)險(xiǎn)分析、評(píng)估需要考量更多的內(nèi)容而已。

02

好了,我們現(xiàn)在再把“黑盒”打開(kāi),看看微服務(wù)的技術(shù)架構(gòu)給測(cè)試帶來(lái)了哪些新的風(fēng)險(xiǎn)。我們需要針對(duì)這些新的挑戰(zhàn)做出一些不一樣的策略。

微服務(wù)的穩(wěn)定性:在單體架構(gòu)中,業(yè)務(wù)的封裝調(diào)用是基于函數(shù)來(lái)進(jìn)行的,幾乎不存在調(diào)用失敗的情況。也不會(huì)存在版本不致的情況(都在一套代碼內(nèi))。但是拆成微服務(wù)后,就會(huì)面臨兩個(gè)問(wèn)題。

第一,服務(wù)依賴得不可控:因?yàn)槲⒎?wù)都是可以被獨(dú)立部署的,那么部署的版本就會(huì)變得不可控,那就意味著可能你調(diào)用的接口版本會(huì)發(fā)生變化,導(dǎo)致調(diào)用失?。ㄟ@類問(wèn)題會(huì)在下次的文章中重點(diǎn)介紹,契約測(cè)試是個(gè)不錯(cuò)的解決方案)。

第二,連接調(diào)用存在失敗風(fēng)險(xiǎn):微服務(wù)之間的通信要么基于Rest,要么基于RPC,都會(huì)有可能因?yàn)榫W(wǎng)絡(luò)波動(dòng)導(dǎo)致調(diào)用失敗,從而引發(fā)業(yè)務(wù)問(wèn)題。

針對(duì)這個(gè)問(wèn)題,通常采用的策略做好微服務(wù)的版本管理,在調(diào)用鏈路上配置版本依賴關(guān)系,做到環(huán)境的復(fù)用。如果做不到,那就從物理上做隔離即可,盡可能縮小影響范圍。

微服務(wù)的可用性:在單體構(gòu)架中,代碼的可用性依賴于整體的性能表現(xiàn),如果某個(gè)代碼段出現(xiàn)性能問(wèn)題,會(huì)影響整體的業(yè)務(wù)表現(xiàn),比較容易被發(fā)現(xiàn)。但是在微服務(wù)中,我們無(wú)法有效地獲取其他微服務(wù)的運(yùn)行狀態(tài),這就需要有統(tǒng)一的組件來(lái)管理,通常情況下是Hystrix與Sentinel(當(dāng)然還有其他的選擇,看團(tuán)隊(duì)的技術(shù)選型)。處理的方式有兩種:熔斷、降級(jí)。

熔斷指的是當(dāng)下游的服務(wù)因?yàn)槟撤N原因突然變得不可用或響應(yīng)過(guò)慢,上游服務(wù)為了保證自己整體服務(wù)的可用性,不再繼續(xù)調(diào)用目標(biāo)服務(wù),直接返回,快速釋放資源。如果目標(biāo)服務(wù)情況好轉(zhuǎn)則恢復(fù)調(diào)用。

降級(jí)指的是:服務(wù)主動(dòng)停掉一些不太重要的業(yè)務(wù),釋放出服務(wù)器資源,增加響應(yīng)速度。

針對(duì)這個(gè)問(wèn)題,測(cè)試策略主要集中在機(jī)制的配置與生效驗(yàn)證上,如何保障配置的熔斷降級(jí)機(jī)制能夠有效,是測(cè)試的重點(diǎn)和難點(diǎn)。一般會(huì)通過(guò)性能壓測(cè)來(lái)模擬。

數(shù)據(jù)一致性問(wèn)題:當(dāng)前面兩種情況發(fā)生后,就有可能導(dǎo)致各微服務(wù)之間的數(shù)據(jù)不一致,從而影響業(yè)務(wù)。比如在購(gòu)物的流程中訂單支付成功,但調(diào)用庫(kù)存服務(wù)時(shí)失敗,就可能出現(xiàn)產(chǎn)品超賣的情況(訂單數(shù)大于庫(kù)存數(shù))。這種場(chǎng)景下,一般在技術(shù)設(shè)計(jì)上會(huì)有相應(yīng)的事件補(bǔ)償和回調(diào)機(jī)制,來(lái)確保各方數(shù)據(jù)的一致性。

針對(duì)這個(gè)問(wèn)題作為測(cè)試,需要了解這些機(jī)制的觸發(fā)條件,并驗(yàn)證是否合理。同時(shí),在設(shè)計(jì)測(cè)試用例時(shí),需要關(guān)注跨系統(tǒng)的數(shù)據(jù)一致性驗(yàn)證,不能只關(guān)注自己測(cè)試的服務(wù)。

錯(cuò)誤信息的排查:在單體架構(gòu)中,當(dāng)業(yè)務(wù)發(fā)生錯(cuò)誤時(shí),我們直接查看業(yè)務(wù)日志文件即可發(fā)現(xiàn)問(wèn)題。但是在微服務(wù)的場(chǎng)景下,測(cè)試人員往往無(wú)法判斷是哪個(gè)服務(wù)發(fā)生了錯(cuò)誤,不可能每個(gè)組件一個(gè)個(gè)找過(guò)去。這就需要有統(tǒng)一的日志存儲(chǔ)服務(wù)來(lái)處理。常見(jiàn)的技術(shù)實(shí)現(xiàn)是ELK平臺(tái)(Elasticsearch、Logstash 和 Kibana組合),更友好的,可能還會(huì)有鏈路跟蹤系統(tǒng)(OpenTracing或者SkyWalking)。在這方面,測(cè)試能做的不多,更多的是依賴基礎(chǔ)技術(shù)的沉淀(不要想著自己搞定,因?yàn)檫@些或多或少都會(huì)入侵業(yè)務(wù)代碼,還可能影響性能)。

異步服務(wù)的驗(yàn)證:在微服務(wù)的架構(gòu)體系中,為了更好地服務(wù)解耦,會(huì)引入MQ之類的異步服務(wù)組件,同時(shí)還能起到削峰填谷的作用。這類組件并不好測(cè)試。在制定測(cè)試策略時(shí),需要了解MQ的選型,關(guān)注組件的消費(fèi)速度、消息不被錯(cuò)誤的消費(fèi)等問(wèn)題。

03

以上,就是基于微服務(wù)架構(gòu)下的一些常見(jiàn)測(cè)試策略。技術(shù)架構(gòu)會(huì)隨著業(yè)務(wù)的復(fù)雜度不斷的演進(jìn),微服務(wù)的拆分也不是一蹴而就。所以,在制定測(cè)試策略時(shí),也需要做到可演進(jìn)。

當(dāng)架構(gòu)剛開(kāi)始拆分時(shí),我們可以直接按單體架構(gòu)的測(cè)試策略進(jìn)行測(cè)試;

當(dāng)微服務(wù)數(shù)量較多時(shí),我們只需要關(guān)注重點(diǎn)微服務(wù)的連通性、可用性及數(shù)據(jù)一致性;

當(dāng)微服務(wù)數(shù)量達(dá)到非常多時(shí),我們需要引入熔斷降級(jí)機(jī)制,并建設(shè)統(tǒng)一的日志管理平臺(tái);

當(dāng)微服務(wù)數(shù)量多到我們反應(yīng)不過(guò)來(lái)時(shí),會(huì)有更多的驗(yàn)證手段被構(gòu)建出來(lái)。

04

做個(gè)小的總結(jié),對(duì)于微服務(wù)架構(gòu)的測(cè)試策略,在業(yè)務(wù)層,我們可以沿用原來(lái)的測(cè)試策略,不需要做太多的變化。而對(duì)于架構(gòu)本身帶來(lái)的新特性,我們需要有針對(duì)性的對(duì)應(yīng)措施,整體如下圖所示。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前標(biāo)題:微服務(wù)的測(cè)試策略-創(chuàng)新互聯(lián)
鏈接分享:http://bm7419.com/article12/didjdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站排名、建站公司、網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)