大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

不得不說的微服務(wù)測試

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

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

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

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

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

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

測試金字塔

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

不得不說的契約測試

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

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

消費者驅(qū)動的契約測試

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

契約測試的好處

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

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

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

溝通成本底

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

契約測試的應(yīng)用場景

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

服務(wù)消費者與服務(wù)提供者由不同的團(tuán)隊開發(fā)維護(hù)。

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

應(yīng)該關(guān)注

檢查Consumer構(gòu)建的請求是否匹配到了對應(yīng)的Contract

檢查Provider的響應(yīng)是否滿足Consumer的需要

不應(yīng)該關(guān)注

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

Consumer的處理響應(yīng)的邏輯

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

不得不說的集成測試

集成測試驗證服務(wù)或者組件之間的連通性和交互以檢查接口缺陷,集成測試旨在通過集成不同的Downstream服務(wù),來覆蓋基本的成功和錯誤的場景,在我們項目中,選用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));
    }
}

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

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

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中文字幕欧美日韩在线不卡 | 奇米在线视频 | 精品在线一区二区三区 | 日日爽天天干 | 中文字幕久久亚洲一区 | 欧美成人毛片一级在线 | 亚洲高清日韩精品第一区 | 激情综合在线 | 91手机视频在线观看 | 99精品国产第一福利网站 | 天天插天天干 | 日本在线一区二区 | 美女黄色免费在线观看 | 欧美成人aaaaa免费视频 | 日韩精品一区二区三区免费观看 | 亚洲综合精品香蕉久久网 | 黄视频福利 | 狠狠88综合久久久久综合网 | 日本免费一级视频 | 久热草视频 | 中文字幕一区在线观看 | 欧美日韩国产一区二区三区播放 | 日韩欧美日本 | 欧美激情一区二区三区视频 | 亚洲自拍成人 | 伊人一区| 精品九九在线 | 青草草在线观看 | 久久久久久毛片免费播放 | 狠狠色丁香婷婷久久综合考虑 | 成人国产激情福利久久精品 | 越猛烈欧美xx00动态图免费 | 久久se精品一区二区国产 | 甜心女孩泰剧在线观看 | 香蕉久久夜色精品国产 | 亚洲成人精品视频 | 久青草国产在线视频亚瑟影视 | 日韩日韩 | 三级西施| 99国产成人精品2021 | 日韩中文字幕一区 |