黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 不得不說的微服務測試

不得不說的微服務測試

更新時間:2021-08-10 12:53:26 來源:動力節(jié)點 瀏覽964次

微服務測試是很有挑戰(zhàn)性的,為什么這樣說呢?原因有以下幾點:

結果不穩(wěn)定, 分布式系統(tǒng),服務之間的通信都是通過網(wǎng)絡調用,然而在網(wǎng)絡上傳送,都會面臨網(wǎng)絡延時、超時、帶寬等因素,容易導致不穩(wěn)定的測試結果。

驗證成本高,為了驗證多個服務協(xié)作后的功能正確與否,需要為每個服務搭建基礎設施(包括數(shù)據(jù)庫、緩存等),并執(zhí)行部署、配置等步驟,以確保服務能正確運行。

反饋周期長, 相比單體應用而言,微服務架構下,可獨立部署的單元多,因此集成測試的反饋周期比之前會更長,定位問題的時間就會更久。

溝通成本高, 微服務常由不同團隊開發(fā)并維護,當服務頻繁進行改動和版本升級的時候,很容易導致不兼容,加大團隊之間的溝通成本。

測試金字塔

測試金字塔很好的幫助我們在制定測試策略的時候,區(qū)分不同層次測試關注點,同時,一般來說,測試顆粒度越粗,越脆弱,執(zhí)行的時間越長,維護成本也越高。

不得不說的契約測試

在微服務中,不得不聊聊消費者契約測試,

契約,一種定義在Consumer與Provider之間的交互方式

消費者驅動的契約測試

契約是Consumer和Provider團隊之間達成的交互協(xié)議,更多的看中的是請求和響應的Payload結構(Schema),由服務消費者構建并生成contract,然后將contact上傳到Pact broker or server; 對應的服務提供者,需要在Pipeline中,有一個task進行契約的驗證,保證契約不會被破壞。

契約測試的好處

測試分層,Consumer和Provider分別測試。

測試前移,為Consumer提供Mock,不需要真實的集成環(huán)境,穩(wěn)定性高。

反饋周期短,單元測試級別,測試運行快,毫米級。

溝通成本底

為服務消費者提供了信心,更為服務提供者提供了更大的價值(通過與不同消費者約定的契約,可以保證服務安全的升級變遷,不會破壞之前已有的功能)

契約測試的應用場景

一個服務需要被多個消費者使用,每個消費者的訴求并不完全一樣(一對一的場景,沒有太大意義)。

服務消費者與服務提供者由不同的團隊開發(fā)維護。

服務消費者與服務提供者,一定要對契約達成一致,并一直保持這種約束(如果有一方?jīng)]有遵守,比如提供者根本不將契約驗證集成到流水線中,那么就沒有任何意義),契約的不符合預期的變化應當會造成測試的失敗。

應該關注

檢查Consumer構建的請求是否匹配到了對應的Contract

檢查Provider的響應是否滿足Consumer的需要

不應該關注

Provider的業(yè)務邏輯是否正確

Consumer的處理響應的邏輯

可參考的工具: Pact, Spring Cloud Contract等

不得不說的集成測試

集成測試驗證服務或者組件之間的連通性和交互以檢查接口缺陷,集成測試旨在通過集成不同的Downstream服務,來覆蓋基本的成功和錯誤的場景,在我們項目中,選用REST Assured作為集成測試工具,使用非常方便:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureRestDocs
public class UserDocumentationTests {
    @LocalServerPort
    private int port;
    @Autowired
    private RequestSpecification documentationSpec;

    @Test
    public void listUsers() {
        given(this.documentationSpec).filter(document("list-users")).when()
                .port(this.port).get("/").then().assertThat().statusCode(is(200));
    }
}

當downstream服務非常不穩(wěn)定的時候,我們會通過wiremock作為proxy對請求和響應進行錄制,使用wiremock做測試替身,隔離外部調用,避免多服務間的復雜情況(網(wǎng)絡,其他團隊服務可用性等),并以可重復的方式模擬任何場景(超時,Down機,SSL驗證失敗,丟失HTTP頭,請求響應不匹配等),運行穩(wěn)定,且反饋周期短。

以上就是動力節(jié)點小編介紹的"不得不說的微服務測試",希望對大家有幫助,想了解更多可查看Java教程。動力節(jié)點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成年午夜影片免 | 欧美成人精品免费播放 | 九九九九九九精品免费 | 韩国伦理片免费观看 | 久久国产欧美日韩精品 | 全部免费的毛片视频观看 | 成人午夜爽爽爽免费视频 | 天堂最新在线资源 | 在线看的网站 | 久草新视频 | 大胆国模一区二区三区伊人 | 国产高清久久 | 免费大黄网站在线观 | 97精品国产自在现线免费观看 | 久久精品免费全国观看国产 | 在线免费观看黄 | 久久久精品国产免费观看同学 | 在线免费公开视频 | 成人超污免费网站在线看 | 精品播放| 18videosex性vr日 | 日韩一级免费视频 | 在线亚洲观看 | 日韩一级欧美一级在线观看 | 最新中文字幕在线播放 | 欧美成人片在线 | 一区二区三区视频免费 | 国产成人99精品免费视频麻豆 | 福利不卡| 天天天天添天天拍天天谢 | 亚洲图片 中文字幕 | 亚洲国产情侣一区二区三区 | 97青青草| 欧美综合成人网 | 免费一级a毛片在线播放视 免费一级a毛片在线播出 | 免费视频18 | 欧美xxxxxxxx| 国产精品无码制服丝袜 | 草草国产成人免费视频 | 无遮挡污视频 | 久久午夜网|