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

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

不得不說的微服務測試

更新時間:2021-08-10 12:53:26 來源:動力節點 瀏覽873次

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

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

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

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

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

測試金字塔

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

不得不說的契約測試

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

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

消費者驅動的契約測試

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

契約測試的好處

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

測試前移,為Consumer提供Mock,不需要真實的集成環境,穩定性高。

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

溝通成本底

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

契約測試的應用場景

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

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

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

應該關注

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

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

不應該關注

Provider的業務邏輯是否正確

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

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 五月婷婷激情综合网 | 国产视频二区在线观看 | 国产成在线人视频免费视频 | 亚洲一区免费视频 | 四虎影午夜成年免费精品 | 亚洲综合国产精品 | 色综合欧美 | 福利视频久久 | 手机看片久久 | 久久久久久草 | 婷婷综合激情五月中文字幕 | 亚洲久热| 暗香影院午夜国产精品 | 精品国产欧美 | 国产成人99 | 欧美精品久久久亚洲 | 免费欧美一级 | 香蕉亚洲精品一区二区 | 天天插日日操 | 国产视频久久久 | 老司机福利在线播放 | 久久一本一区二区三区 | 国产日韩欧美成人 | 国产欧美一区二区 | 亚洲精品麻豆一区二区 | 中文字幕欧美日韩va免费视频 | 久久中文字幕在线观看 | 精品国产品香蕉在线 | 一本一本久久a久久综合精品蜜桃 | 久久国产精品女 | 四虎影视入口 | 青青国产成人久久91网站站 | 精品久久伦理中文字幕 | 大学生一级黄色片 | 日日碰日日摸日日澡视频播放 | 精品在线观看一区 | 开心激情五月婷婷 | 亚洲国产精品yw在线观看 | 婷婷四房综合激情五月在线 | 国产乱子伦一级毛片 | 久久青青草视频 |