如何降低微服务测试成本?
前言
隨著云原生時(shí)代的到來(lái),越來(lái)越多的應(yīng)用生在云上,長(zhǎng)在云上,云原生是企業(yè)落地微服務(wù)的最佳伴侶。但云上應(yīng)用易測(cè)性受到了很大的挑戰(zhàn),如何提高云上應(yīng)用易測(cè)性,增強(qiáng) DevOps 能力,是微服務(wù)測(cè)試要解決的核心問(wèn)題,直播回放:
在詳細(xì)講述微服務(wù)測(cè)試之前,先給大家講一個(gè)場(chǎng)景。
上圖是一個(gè)典型的企業(yè)微服務(wù)應(yīng)用架構(gòu)圖,為了考慮安全性,云上應(yīng)用通常部署在云上虛擬局域網(wǎng)內(nèi),統(tǒng)一通過(guò)網(wǎng)關(guān)對(duì)外暴露服務(wù)。對(duì)于負(fù)責(zé) Product Service 應(yīng)用的同學(xué)來(lái)說(shuō),我只想測(cè)試一下該應(yīng)用對(duì)應(yīng)的服務(wù)是否可用,他會(huì)怎么做呢?
方案一
進(jìn)入該應(yīng)用部署所在的機(jī)器(ECS)或者容器(Pod),通過(guò) curl 命令驗(yàn)證該服務(wù)是否可用
方案二
將該應(yīng)用暴露給公網(wǎng)訪問(wèn),通過(guò)本地命令行工具或者 Postman 工具驗(yàn)證該服務(wù)是否可用
方案三
拉一條網(wǎng)絡(luò)專線,打通云上專有網(wǎng)絡(luò)VPC與辦公網(wǎng)網(wǎng)絡(luò),通過(guò)本地命令行工具或者 Postman 工具驗(yàn)證該服務(wù)是否可用
從以上場(chǎng)景,我們可以總結(jié)出云上微服務(wù)測(cè)試幾點(diǎn)問(wèn)題:
- 云上網(wǎng)絡(luò)拓?fù)鋸?fù)雜
- 暴露公網(wǎng)訪問(wèn),會(huì)出現(xiàn)黑客攻擊,引發(fā)安全風(fēng)險(xiǎn)
- 拉一條網(wǎng)絡(luò)專線,浪費(fèi)資源成本
明明只想要一個(gè)簡(jiǎn)單的測(cè)試能力,成本卻如此之高。上述場(chǎng)景還僅僅是一個(gè)簡(jiǎn)單的調(diào)試功能,如果是壓測(cè)、自動(dòng)化回歸、巡檢等其他測(cè)試及穩(wěn)定性保障手段,不僅僅要解決上述場(chǎng)景遇到的問(wèn)題,還需要自建工具,腦補(bǔ)一下,都覺(jué)得成本太高,因此,我們需要微服務(wù)測(cè)試來(lái)幫助我們解決這些問(wèn)題,進(jìn)一步加速軟件交付效率。
為什么我們需要微服務(wù)測(cè)試
產(chǎn)品能力
提供測(cè)試、壓測(cè)、自動(dòng)化回歸、巡檢等能力,形成一個(gè)微服務(wù)測(cè)試解決方案
試想一下,研發(fā)同學(xué)提交代碼并部署,可以使用測(cè)試工具,驗(yàn)證服務(wù)邏輯正確性;可以使用壓測(cè)工具,驗(yàn)證服務(wù)性能指標(biāo);驗(yàn)證通過(guò)后,開(kāi)始進(jìn)行冒煙測(cè)試,可以使用自動(dòng)化回歸工具,編寫冒煙用例;冒煙通過(guò)后,開(kāi)始進(jìn)行歷史功能回歸,可以使用自動(dòng)化回歸工具,編寫回歸用例;回歸通過(guò)后,提交測(cè)試驗(yàn)收,測(cè)試只需要驗(yàn)證新功能,新功能驗(yàn)證通過(guò)后,即可提交發(fā)布。發(fā)布后,進(jìn)行線上環(huán)境驗(yàn)證,需要回歸歷史功能主流程,可以使用自動(dòng)化回歸工具,編寫主流程回歸用例,新功能手工驗(yàn)證;主流程回歸通過(guò)且新功能驗(yàn)證通過(guò),代表發(fā)布完成;研發(fā)同學(xué),可以使用巡檢工具,配置線上巡檢;一旦巡檢告警,即可先于用戶發(fā)現(xiàn)問(wèn)題,并解決問(wèn)題。我們是將阿里巴巴沉淀的測(cè)試解決方案產(chǎn)品化輸出,幫助云上業(yè)務(wù)實(shí)現(xiàn)高質(zhì)量地實(shí)現(xiàn)快速交付。
易用且安全
開(kāi)箱即用,無(wú)需關(guān)注專有網(wǎng)絡(luò)VPC下的網(wǎng)絡(luò)拓?fù)?#xff1b;安全可靠,擁有在辦公網(wǎng)下的測(cè)試體驗(yàn)。
試想一下,企業(yè)為了安全隔離,研發(fā)環(huán)境、測(cè)試環(huán)境、預(yù)發(fā)環(huán)境、生產(chǎn)環(huán)境部署在不同的專有網(wǎng)絡(luò)VPC內(nèi),如果用戶自建測(cè)試工具,需要解決測(cè)試工具到不同環(huán)境的網(wǎng)絡(luò)互通問(wèn)題,企業(yè)IT人員明明只想要一個(gè)簡(jiǎn)單的測(cè)試工具,卻因?yàn)樯显浦?#xff0c;要解決復(fù)雜的云上網(wǎng)絡(luò)拓?fù)?#xff0c;遠(yuǎn)遠(yuǎn)沒(méi)有結(jié)束,為了能夠在辦公網(wǎng)使用該測(cè)試工具,還需要保證該測(cè)試工具能夠被辦公網(wǎng)訪問(wèn),此時(shí)又面臨著網(wǎng)絡(luò)安全的考驗(yàn)。我們希望有一個(gè)能夠開(kāi)箱即用且安全可靠的方案,能夠讓上云的企業(yè)IT人員擁有在辦公網(wǎng)測(cè)試體驗(yàn)的測(cè)試工具。
低成本
彈性拉起測(cè)試機(jī)/施壓機(jī),用完銷毀,能夠大幅度降低構(gòu)建測(cè)試工具需要的機(jī)器資源及人力成本。
試想一下,企業(yè)上云是為了降低成本,應(yīng)用托管極大地降低了資源成本和運(yùn)維成本,但測(cè)試成本并沒(méi)有降低。企業(yè)IT人員自建測(cè)試工具需要準(zhǔn)備測(cè)試機(jī)/施壓機(jī),該部分機(jī)器長(zhǎng)期占用且存在閑置,資源成本開(kāi)銷大,尤其是在性能壓測(cè)場(chǎng)景,資源成本開(kāi)銷會(huì)更大。
除了資源成本外,企業(yè)IT人員還需要研發(fā)測(cè)試工具,人力成本及時(shí)間成本非常高,基本上每個(gè)企業(yè)都需要一套測(cè)試工具。我們希望有一個(gè)低成本的方案,不僅提高企業(yè)的資源利用率,同時(shí)降低企業(yè)IT人員開(kāi)發(fā)和維護(hù)測(cè)試工具的成本。
微服務(wù)生態(tài)
云上已提供了大量的微服務(wù)產(chǎn)品,解決了微服務(wù)應(yīng)用的托管、治理、診斷,微服務(wù)測(cè)試補(bǔ)齊微服務(wù)能力。
試想一下,如何測(cè)試一個(gè)微服務(wù)接口,需要了解接口入?yún)⒑统鰠?#xff0c;如果是研發(fā)同學(xué)-服務(wù)提供者,可能比較熟悉該接口,如果是測(cè)試同學(xué),甚至是其他研發(fā)同學(xué),可能就需要文檔,甚至是口口相傳,微服務(wù)治理已經(jīng)可視化應(yīng)用的服務(wù)契約信息,結(jié)合服務(wù)契約信息,只需按照測(cè)試需要,選擇應(yīng)用->框架->服務(wù)->方法,配置測(cè)試參數(shù),即可進(jìn)行測(cè)試,降低了服務(wù)契約同步的成本。
結(jié)合上述4點(diǎn),測(cè)試同學(xué)只需負(fù)責(zé)用例編寫+測(cè)試驗(yàn)收,接口調(diào)試、接口性能水位、用例自動(dòng)化均可賦能給研發(fā)同學(xué),就像早期DevOps一樣,降低研發(fā)運(yùn)維之間的反饋回路,提高軟件交付效率,DevTest,降低研發(fā)測(cè)試之間的反饋回路,在保證交付質(zhì)量的前提下,進(jìn)一步提升軟件交付效率,同時(shí)主動(dòng)創(chuàng)建巡檢任務(wù),定時(shí)監(jiān)控線上服務(wù)可用率,先于用戶發(fā)現(xiàn)問(wèn)題,解決問(wèn)題。
MSE 微服務(wù)測(cè)試實(shí)踐
前提條件:微服務(wù)應(yīng)用已接入MSE
下面我們來(lái)體驗(yàn)一下,MSE上如何使用微服務(wù)測(cè)試的能力。
服務(wù)測(cè)試
1、登錄MSE控制臺(tái),在頁(yè)面左上角選擇地域;
2、左側(cè)導(dǎo)航欄選擇:微服務(wù)治理 -> 微服務(wù)測(cè)試 -> 服務(wù)測(cè)試 -> 查詢服務(wù);
3、單擊某個(gè)服務(wù)的詳情 -> 展示元數(shù)據(jù)列表;
4、單擊某個(gè)方法的測(cè)試 -> 進(jìn)入測(cè)試頁(yè)面(已幫助用戶填充參數(shù)模板);
5、點(diǎn)擊執(zhí)行即可。
服務(wù)壓測(cè)
1、登錄MSE控制臺(tái),在頁(yè)面左上角選擇地域;
2、左側(cè)導(dǎo)航欄選擇:微服務(wù)治理 -> 微服務(wù)測(cè)試 -> 服務(wù)壓測(cè) -> 創(chuàng)建場(chǎng)景;
3、選擇需要壓測(cè)的應(yīng)用 -> 選擇框架 -> 選擇服務(wù) -> 選擇方法;
4、填寫壓測(cè)參數(shù),點(diǎn)擊確認(rèn);
5、進(jìn)入壓測(cè)場(chǎng)景列表頁(yè),點(diǎn)擊詳情;
6、進(jìn)入壓測(cè)詳情頁(yè),點(diǎn)擊啟動(dòng),等待施壓機(jī)準(zhǔn)備就緒;
7、點(diǎn)擊詳情,進(jìn)入壓測(cè)性能數(shù)據(jù)報(bào)告頁(yè),實(shí)時(shí)查看性能數(shù)據(jù);
自動(dòng)化回歸
1、登錄MSE控制臺(tái),在頁(yè)面左上角選擇地域;
2、左側(cè)導(dǎo)航欄選擇:微服務(wù)治理 -> 微服務(wù)測(cè)試 -> 自動(dòng)化回歸 -> 創(chuàng)建用例;
3、添加步驟
選擇應(yīng)用 -> 選擇框架 -> 選擇服務(wù) -> 選擇方法;填寫參數(shù);斷言/出參提取;
4、可以添加多個(gè)步驟;
5、保存用例;
6、點(diǎn)擊執(zhí)行;
7、通過(guò)執(zhí)行歷史,查看用例是否通過(guò);
服務(wù)巡檢
1、登錄MSE控制臺(tái),在頁(yè)面左上角選擇地域;
2、左側(cè)導(dǎo)航欄選擇:微服務(wù)治理 -> 微服務(wù)測(cè)試 -> 服務(wù)巡檢 -> 創(chuàng)建巡檢任務(wù);
3、選擇需要巡檢的應(yīng)用 -> 選擇框架 -> 選擇服務(wù) -> 選擇方法;
4、填寫巡檢參數(shù)及斷言內(nèi)容,點(diǎn)擊確認(rèn);
5、進(jìn)入巡檢任務(wù)列表頁(yè),點(diǎn)擊啟動(dòng),即開(kāi)始巡檢;
6、巡檢失敗時(shí),可以通過(guò)失敗記錄進(jìn)行查看,也可以添加告警,通過(guò)釘釘、短信、郵件的方式告警;
微服務(wù)測(cè)試實(shí)現(xiàn)細(xì)節(jié)
工具能力
將阿里巴巴集團(tuán)內(nèi)實(shí)踐的測(cè)試工具產(chǎn)品化輸出,壓測(cè)、自動(dòng)化回歸、巡檢,降低用戶研發(fā)工具的成本。
網(wǎng)絡(luò)互通
利用阿里云現(xiàn)有網(wǎng)絡(luò)打通技術(shù)方案(ENI掛載),打通云產(chǎn)品專有網(wǎng)絡(luò)VPC與用戶專有網(wǎng)絡(luò)VPC
應(yīng)用安裝微服務(wù) Agent 時(shí),主動(dòng)將該應(yīng)用所在的網(wǎng)絡(luò)信息(專有網(wǎng)絡(luò)VPC,虛擬交換機(jī)VSwitch,安全組SecurityGroup)上報(bào)至服務(wù)端,根據(jù)應(yīng)用所在的網(wǎng)絡(luò)信息,即可打通云產(chǎn)品專有網(wǎng)絡(luò)VPC與用戶專有網(wǎng)絡(luò)VPC,實(shí)現(xiàn)云產(chǎn)品服務(wù)直接訪問(wèn)用戶專有網(wǎng)絡(luò)VPC部署的服務(wù)。
彈性資源
云產(chǎn)品使用自己的資源賬號(hào)購(gòu)買彈性機(jī)器,安裝測(cè)試工具
服務(wù)契約
微服務(wù)治理已經(jīng)可視化服務(wù)契約信息,微服務(wù)測(cè)試直接查詢服務(wù)契約信息即可
不止是微服務(wù)測(cè)試
本文介紹了微服務(wù)治理下微服務(wù)測(cè)試的幾個(gè)能力,補(bǔ)齊了微服務(wù)生態(tài)測(cè)試的能力,即將推出智能流量測(cè)試:提供微服務(wù)架構(gòu)下的流量生產(chǎn)錄制生產(chǎn)回放、生產(chǎn)錄制線下回放、測(cè)試用例自動(dòng)化生成、回歸測(cè)試場(chǎng)景自動(dòng)化覆蓋等能力,助力您的應(yīng)用以更低的成本輕松完成測(cè)試驗(yàn)證,歡迎前來(lái)體驗(yàn)。
除了MSE(微服務(wù)引擎),微服務(wù)測(cè)試能力還將被EDAS、SAE等云產(chǎn)品集成。將微服務(wù)測(cè)試能力作為一個(gè)基礎(chǔ)能力被更多云產(chǎn)品集成,另外,將跟更多微服務(wù)產(chǎn)品 ARMS (應(yīng)用實(shí)時(shí)監(jiān)控服務(wù))、ACM(應(yīng)用配置管理)、CSB(網(wǎng)關(guān))形成聯(lián)動(dòng),助力保障云上業(yè)務(wù)穩(wěn)定性,讓業(yè)務(wù)永遠(yuǎn)在線。
微服務(wù)測(cè)試交流群
如果您在微服務(wù)引擎 MSE 使用微服務(wù)測(cè)試過(guò)程中有任何疑問(wèn),歡迎您使用釘釘掃描下方的二維碼或搜索釘釘群號(hào) 31180380 加入釘釘群進(jìn)行反饋。
原文鏈接:https://developer.aliyun.com/article/780018?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開(kāi)發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開(kāi)發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開(kāi)發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的如何降低微服务测试成本?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 更极速:EdgeRoutine边缘程序
- 下一篇: 联合利华搭上阿里云数据中台 精准营销新客