開發與維運

微服務治理實踐:自動化迴歸

本文是《微服務治理實踐》系列篇的第六篇文章,為大家介紹微服務測試中的自動化迴歸:基於微服務契約信息快速編排被測服務、管理自動化測試用例。可視化用例編輯界面,豐富的預置檢查點、內置變量,支持自定義變量、參數傳遞、持續自動化測試,幫助您高效管理、迴歸業務測試場景,幫助業務快速驗證、快速交付。
第一篇:《微服務治理解密》
第二篇:《微服務治理實踐:服務查詢》
第三篇:《微服務治理實踐:金絲雀發佈》
第四篇:《微服務治理實踐:服務契約》
第五篇:《微服務治理實踐:如何降低微服務測試成本?》

該系列文章基於阿里雲商業化產品 MSE 的微服務實踐,如果您的團隊具備較強的微服務治理+測試能力,那麼希望我們在微服務治理+測試方面的實踐和背後的思考,可以為您提供一些參考。

本期內容相關直播內容如下:

前言

當前微服務迭代週期短、版本多,服務需要具備獨立測試和快速驗證能力,支撐服務測試耗時縮短以及測試活動前移。面臨多方面的挑戰:
• 服務不具備獨立驗證能力
• 自動化用例開發效率很低
• 在高併發的使用場景下健壯性如何保證
• 如何及時發現現網服務出現異常
本文旨在講述“自動化用例開發效率很低”的主要解決方案,在詳細講述微服務測試—自動化迴歸之前,先給大家講一個場景。
1.png

在這個典型的企業微服務應用架構圖中,Product Service應用提供查詢商品列表和通過ID查詢商品詳情的功能,Business Service應用提供添加商品到購車的功能。如果想驗證用戶操作的從查詢商品列表→通過ID查詢商品詳情→將商品添加至購物車這個業務場景,現在我們一般怎麼做呢?
1、進入Product Service應用部署所在的機器(ECS)或者容器(Pod),通過 curl 命令調用查詢商品列表,驗證返回的商品列表是否不為空
2、把查詢商品列表返回值中的ID拼接到curl命令的入參中,調用通過ID查詢商品詳情,驗證詳情中的字段是否符合預期
3、進入Business Service應用部署所在的機器(ECS)或者容器(Pod),把ID拼接到 curl 命令入參中調用添加該商品至購物車,驗證添加是否成功
如果以上場景一次驗證不通過,還要反覆重複以上操作,至此我們可以總結出雲上微服務測試的幾點問題:
• 雲上網絡拓撲復雜
• 業務鏈路場景驗證難
• 重複繁瑣操作驗證效率低

為什麼我們需要自動化迴歸

微服務測試自動化迴歸,結合我們的研發實踐和研發理念,測試用例免代碼編寫、一鍵選取被測服務、快速組裝編排、低成本管理自動化測試用例。
2.png

MSE 自動化迴歸實踐

前提條件:微服務應用已接入MSE
下面圍繞前言中描述的場景如何使用微服務測試的自動化迴歸,從用例設計,用例生成,用例執行,打造簡單、高效、專業的微服務測試能力,為微服務上線保駕護航。

用例設計

首先我們設計被測服務的加購物車業務場景,包括查詢商品列表、查詢商品詳情、添加商品至購物車三步,設定每步的入參和預期。
3.png

用例生成

1、登錄MSE控制檯,在頁面左上角選擇地域;
2、左側導航欄選擇:微服務治理 -> 微服務測試 -> 自動化迴歸 -> 創建用例;
3、第1測試步驟查詢商品列表,選擇productservice應用 -> 選擇Spring Cloud框架 -> 選擇/products服務 -> (默認)選擇GET方法;第1測試步驟無需入參,直接點擊“訪問一次”查看返回值,再點擊“出參提取助手”獲取需要校驗的檢查對象。
4.png

4、第1測試步驟在“斷言(選填)”中粘貼剛選取的檢查對象,檢查條件選擇不是空;在“出參提取(選填)”的出參提取表達式中粘貼需要提取的id字段,並定義出參名為id。
5.png
6.png

5、點擊“添加下一步驟”增加第2測試步驟查詢商品詳情,選擇productservice應用 -> 選擇Spring Cloud框架 -> 選擇/product/{id}服務 -> (默認)選擇GET方法;Path切換自定義輸入,將/product/{id}修改為/product/${id},即把第1測試步驟中提取的id傳入第2步驟。
7.png

6、同時也對第2測試步驟設置斷言和出參提取。
8.png
9.png

7、點擊“添加下一步驟”增加第3測試步驟查詢商品詳情,選擇cartservice應用 -> 選擇Dubbo框架 -> 選擇CartService服務 -> 選擇addItemToCart方法;在基本信息中編輯入參數據,傳入第1和第2測試步驟提取的入參,並在斷言中設置預期返回值為true。
10.png

8、點擊“保存配置”。至此已成功將用例設計的業務場景轉化成一個俱備上下文傳參、豐富斷言的能力的自動化測試用例。
11.png

用例執行

觸發立即執行測試用例,在執行歷史查看驗證業務的正確性和編排用例的正確性。
12.png

查看驗證不通過測試步驟的具體失敗信息,比如預期價格為900,實際為800,校驗等於(數字)比較失敗。
13.png

我們還有什麼能力

本文介紹了微服務治理下微服務測試-自動化迴歸的能力,補齊了微服務生態測試的能力,但我們不止於此,我們即將夯實自動化迴歸能力,提供多樣化的入參能力(系統函數、環境變量、集合變量、全局變量、參數化、參數容錯自動生成等等),提供測試集管理能力(將測試用例分組、批量執行),豐富的執行能力(串行執行、並行執行、定時執行),甚至與服務測試、服務巡檢、服務壓測結合,將服務測試一鍵生成測試用例,將測試用例一鍵生成巡檢任務、生成壓測場景。
除了MSE(微服務引擎),微服務測試能力還將被EDAS、SAE等雲產品集成。將微服務測試能力作為一個基礎能力被更多雲產品集成,另外,將跟更多微服務產品 ARMS (應用實時監控服務)、ACM(應用配置管理)、CSB(網關)形成聯動,助力保障雲上業務穩定性,讓業務永遠在線。

微服務測試交流群

如果您在微服務引擎MSE使用微服務測試過程中有任何疑問,歡迎您使用釘釘掃描下方的二維碼或搜索釘釘群號 31180380 加入釘釘群進行反饋。
14.png

Leave a Reply

Your email address will not be published. Required fields are marked *