從這些契約可以生成存根,此后消費(fèi)者團(tuán)隊(duì)可以在構(gòu)建過程中重復(fù)使用它們。消費(fèi)者和生產(chǎn)者都需要驗(yàn)證契約。CDCT強(qiáng)調(diào)契約由消費(fèi)者來驅(qū)動(dòng),并由雙方共同遵守,是共同遵守。那么如何保證共同遵守呢?敏捷宣言中提到可工作的軟件優(yōu)于面面俱到的文檔。引入Contract概念的測試會(huì)定義一個(gè)Contract文檔(JSON協(xié)議文件)。對于消費(fèi)方,該文檔被用作測試斷言依據(jù),文檔被轉(zhuǎn)換成一個(gè)可工作的軟件(可執(zhí)行的測試套件:修改文檔會(huì)導(dǎo)致測試失?。6鴮τ诜?wù)提供方,因?yàn)闇y試的斷言與Contract文檔沒有強(qiáng)制關(guān)聯(lián),它多只能是一個(gè)面面俱到的文檔。所以,只有當(dāng)雙方都將文檔轉(zhuǎn)換成可工作的軟件時(shí),文檔的修改便會(huì)導(dǎo)致任意一方測試失敗,文檔才真正成為雙方共同遵守的契約(可工作的軟件總是可靠的,文檔卻有可能已經(jīng)過期)。消費(fèi)者驅(qū)動(dòng)契約測試中存在一個(gè)契約,雙方基于契約生成可工作的測試套件:CDCT具備了引入Contract概念集成測試的諸多優(yōu)點(diǎn),并且通過可工作的測試套件保證了契約的一致性和實(shí)時(shí)性。9.技術(shù)實(shí)踐運(yùn)籌帷幄之中,決勝千里之外。三國明星諸葛亮負(fù)責(zé)運(yùn)籌帷幄,關(guān)、張、趙等武將負(fù)責(zé)沖鋒陷陣,從而決勝千里之外的硝煙戰(zhàn)場。團(tuán)隊(duì)確定了測試策略之后,應(yīng)當(dāng)交由工具來實(shí)施執(zhí)行。每一個(gè)微服務(wù)都是微型六角形應(yīng)用,都有自己的業(yè)務(wù)邏輯和適配器。江西Zookeeper微服務(wù)架構(gòu)數(shù)據(jù)庫
但它們可能到處在重復(fù)單元測,另外集成測試存在彼此重復(fù)。更糟糕的是,當(dāng)集成測試失敗時(shí),你不知道哪里出了問題,不能及時(shí)準(zhǔn)確定位問題。.Rainsberger后來還在博客上發(fā)表了《IntegrationTestsAreaScam》,文章借用強(qiáng)有力的數(shù)據(jù)分析來證實(shí)自己的觀點(diǎn)。他提出的佳實(shí)踐是:用契約測試或協(xié)議測試來做集成測試!MartinFowller在2012年的測試金字塔理論中也指出:應(yīng)該引入面向應(yīng)用程序服務(wù)層的中間層測試,這些測試既保持了端到端測試的諸多優(yōu)勢,又避免了許多與UI框架相關(guān)的復(fù)雜性。在Web應(yīng)用程序中,中間層測試相當(dāng)于API層測試,而位于金字塔頂層的UI測試則相當(dāng)于Selenium測試。ThoughtWorks技術(shù)雷達(dá)于2016年已經(jīng)正式采納消費(fèi)者驅(qū)動(dòng)契約測試。We’vedecidedtobringconsumer-drivencontracttestingbackfromthearchiveforthiseditioneventhoughwehadallowedittofadeinthepast.微服務(wù)架構(gòu)的盛行促使越來越多的開發(fā)團(tuán)隊(duì)開始引入CDCT,逐漸淡化UI測試。團(tuán)隊(duì)的測試策略正在發(fā)生不同的演變:引入了CDCT并擺出了正確的姿勢,便可弱化UI測試,甚至可以使用少量的人工測試來代替自動(dòng)化UI測試。CDCT幫助我們緩解了UI測試的痛點(diǎn),但也要當(dāng)心走極端。吉林金融微服務(wù)架構(gòu)設(shè)計(jì)每一個(gè)應(yīng)用功能區(qū)都使用微服務(wù)完成,另外,Web應(yīng)用會(huì)被拆分成一系列簡單的Web應(yīng)用.
在微服務(wù)落地伊始就逐漸發(fā)力,當(dāng)下已經(jīng)成為Java體系下微服務(wù)框架的代名詞,SpringCloud以Netfilx全家桶作為初始化基礎(chǔ),為開發(fā)人員提供業(yè)務(wù)單元服務(wù)支撐框架的同時(shí),也開發(fā)出一系列的服務(wù)治理SDK,供開發(fā)人員選用。在微服務(wù)發(fā)展背景下,SpringCloud可謂如日中天。DubboDubbo原為阿里巴巴開源的rpc遠(yuǎn)程調(diào)用框架,初始設(shè)計(jì)初衷在于解決以rpc協(xié)議為標(biāo)準(zhǔn)的遠(yuǎn)程服務(wù)調(diào)用問題,隨著阿里巴巴重啟Dubbo,其也開始在服務(wù)治理領(lǐng)域發(fā)力,成為很多以rpc協(xié)議作為通信基礎(chǔ)系統(tǒng)平臺(tái)的。粗略而言,Dubbo和SpringCloud已成為Java體系下的服務(wù)治理“雙”。gRPCgRPC與Dubbo類似,初是由Google開源的一款遠(yuǎn)程服務(wù)調(diào)用框架。gRPC憑借HTTP/2和RrotoBuf服務(wù)定義方式以及多語言支持的特性,加之其易于定制與開發(fā),能夠方面開發(fā)人員進(jìn)行快速擴(kuò)展和靈活發(fā)揮,從而也成為眾多用戶的選擇之一。ServiceMeshServiceMesh的出現(xiàn)不在于它實(shí)現(xiàn)了多少功能,而是它徹底把業(yè)務(wù)單元與業(yè)務(wù)支撐體系分離,完整貫徹了“術(shù)業(yè)有專攻”的思想理念。它允許業(yè)務(wù)人員聚焦業(yè)務(wù)實(shí)現(xiàn),不再關(guān)心服務(wù)治理相關(guān)的內(nèi)容。通過與容器技術(shù)結(jié)合,下沉至基礎(chǔ)設(shè)施,從通信協(xié)議的角度徹底接管業(yè)務(wù)通信交互過程。
注重高效的可擴(kuò)展的數(shù)據(jù)中心:其它您可能感興趣的文章:云計(jì)算參考架構(gòu)幾例微服務(wù)與Docker介紹互聯(lián)網(wǎng)直播平臺(tái)架構(gòu)案例一高可用架構(gòu)案例一某互聯(lián)網(wǎng)公司廣告平臺(tái)技術(shù)架構(gòu)某大型電商云平臺(tái)實(shí)踐云計(jì)算參考架構(gòu)幾例移動(dòng)應(yīng)用App測試與質(zhì)量管理一的軟件測試ERP廠商的SSO單點(diǎn)登錄解決方案介紹一軟件項(xiàng)目風(fēng)險(xiǎn)管理介紹企業(yè)項(xiàng)目化管理介紹智能企業(yè)與信息化之一由企業(yè)家基本素質(zhì)想到的敏捷軟件質(zhì)量保證的方法與實(shí)踐構(gòu)建高效的研發(fā)與自動(dòng)化運(yùn)維IT運(yùn)維監(jiān)控解決方案介紹IT持續(xù)集成之質(zhì)量管理人才公司環(huán)境與企業(yè)文化企業(yè)績效管理系統(tǒng)之平衡記分卡企業(yè)文化、團(tuán)隊(duì)文化與知識共享高效能的團(tuán)隊(duì)建設(shè)餐飲連鎖公司IT信息化解決方案一如有想了解更多軟件研發(fā),系統(tǒng)IT集成,企業(yè)信息化,項(xiàng)目管理,企業(yè)管理等資訊,請關(guān)注我的微信訂閱號:作者:PetterLiu出處:/wintersun/本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。該文章也同時(shí)發(fā)布在我的博客中-PetterLiuBlog。微服務(wù)可以在“自己的程序”中運(yùn)行,并通過“輕量級設(shè)備與HTTP型API進(jìn)行溝通”。
負(fù)責(zé)物聯(lián)網(wǎng)和全網(wǎng)標(biāo)準(zhǔn)產(chǎn)品的運(yùn)營支撐、全網(wǎng)運(yùn)營管理平臺(tái)的建設(shè)和運(yùn)營、數(shù)據(jù)支撐、二級客服等工作。星云測試()在這種極具挑戰(zhàn)性的環(huán)境下,用的測試數(shù)據(jù)采集穿透技術(shù),從應(yīng)用層到接口到后臺(tái)做了一體化的測試方案,使其適用于企業(yè)內(nèi)部流程與微服務(wù)框架,為企業(yè)在更好的團(tuán)隊(duì)管理、了解項(xiàng)目質(zhì)量進(jìn)度,提高回歸周期效率等方面,提供了切實(shí)可行的可視化與數(shù)字化依據(jù)。首先,星云測試在客戶的局域網(wǎng)內(nèi),整體部署了針對大型高復(fù)雜度J2ee網(wǎng)站的版本“Horn”,接著采用CLM進(jìn)行整個(gè)測試管理,在整個(gè)測試過程中,應(yīng)用層的測試人員與接口層的測試人員通過各自的工作進(jìn)行互補(bǔ),保證了整個(gè)項(xiàng)目回歸的覆蓋質(zhì)量。接著,“Horn”產(chǎn)品采用的測試數(shù)據(jù)采集穿透技術(shù),對應(yīng)用層到接口到后臺(tái)一體化的測試,采集微服中各個(gè)模塊的測試數(shù)據(jù)加以分析,給出測試不充分處、缺陷定位、計(jì)算微服務(wù)模塊變更后的影響范圍與要回歸的點(diǎn),的幫助了企業(yè)解決其內(nèi)部管理與質(zhì)量問題。第三,星云測試還和其旗下的另一個(gè)物聯(lián)網(wǎng)集成化平臺(tái)進(jìn)行整合,實(shí)現(xiàn)星云測試自動(dòng)化打包、自動(dòng)化發(fā)布,而不改變原有的發(fā)布體系。第四,星云測試對CLM進(jìn)行了接口對接,對其測試用例。溝通結(jié)構(gòu)改變設(shè)計(jì)結(jié)構(gòu)的一個(gè)很有意思的例子是,一些團(tuán)隊(duì)會(huì)把邏輯塞到自己能夠掌控的應(yīng)用中。石家莊金融微服務(wù)架構(gòu)開發(fā)
微服務(wù)架構(gòu)用一些功能比較明確、業(yè)務(wù)比較精練的服務(wù)去解決更大、更實(shí)際的問題。江西Zookeeper微服務(wù)架構(gòu)數(shù)據(jù)庫
雖然Pair集成測試沒有從根本上解決UI測試的痛點(diǎn),但它提出了積小成多的理念,該理念告訴我們:只要能夠保證服務(wù)倆倆之間的集成是可靠的,我們就可以相信系統(tǒng)集成也是可靠的。7.引入Contract概念的集成測試就在兩年前,我在珠海出差的某項(xiàng)目上跟小伙伴一起嘗試了一種集成測試方案。當(dāng)時(shí)項(xiàng)目采用的是前后端分離開發(fā),后端作為服務(wù)提供者提供RESTfulAPI,前端作為消費(fèi)者消費(fèi)API。為了保證前后端開發(fā)人員并行開展工作,我們引入了Contarct概念。前后端開發(fā)人員基于業(yè)務(wù)共同定義API協(xié)議(Contract),該協(xié)議以JSON文件存在于代碼庫的測試資源目錄中,前端在開發(fā)過程中以JSON文件作為測試的斷言依據(jù)。而后端開發(fā)人員則參照該協(xié)議內(nèi)容來實(shí)現(xiàn)API?;谶@種方案,前后端開發(fā)人員如果都遵守了協(xié)議,聯(lián)調(diào)的過程就會(huì)非常順利。而它的優(yōu)勢也很明顯的體現(xiàn)出來:不需要運(yùn)行其他服務(wù),環(huán)境簡單,運(yùn)行快。測試可控范圍縮小到單個(gè)服務(wù)內(nèi)部。按照Contract,各自編寫代碼并測試。前后端本質(zhì)上等價(jià)于服務(wù)提供方和服務(wù)消費(fèi)方,所以該理念運(yùn)用在微服務(wù)之間的集成測試中,系統(tǒng)的測試架構(gòu)會(huì)得到進(jìn)一步演進(jìn):我么在享受著它帶來的好處的同時(shí),問題也偷偷地潛入系統(tǒng)中。不久后。江西Zookeeper微服務(wù)架構(gòu)數(shù)據(jù)庫
首匯信息技術(shù)河北有限公司是一家有著雄厚實(shí)力背景、信譽(yù)可靠、勵(lì)精圖治、展望未來、有夢想有目標(biāo),有組織有體系的公司,堅(jiān)持于帶領(lǐng)員工在未來的道路上大放光明,攜手共畫藍(lán)圖,在河北省等地區(qū)的商務(wù)服務(wù)行業(yè)中積累了大批忠誠的客戶粉絲源,也收獲了良好的用戶口碑,為公司的發(fā)展奠定的良好的行業(yè)基礎(chǔ),也希望未來公司能成為*****,努力為行業(yè)領(lǐng)域的發(fā)展奉獻(xiàn)出自己的一份力量,我們相信精益求精的工作態(tài)度和不斷的完善創(chuàng)新理念以及自強(qiáng)不息,斗志昂揚(yáng)的的企業(yè)精神將**首匯信息供應(yīng)和您一起攜手步入輝煌,共創(chuàng)佳績,一直以來,公司貫徹執(zhí)行科學(xué)管理、創(chuàng)新發(fā)展、誠實(shí)守信的方針,員工精誠努力,協(xié)同奮取,以品質(zhì)、服務(wù)來贏得市場,我們一直在路上!