首頁>技術>

前言

隨著雲原生時代的到來,越來越多的應用生在雲上,長在雲上,雲原生是企業落地微服務的最佳伴侶。但云上應用易測性受到了很大的挑戰,如何提高雲上應用易測性,增強 DevOps 能力,是微服務測試要解決的核心問題,直播回放:

https://ucc-vod.alicdn.com/sv/21c16a2e-1766ab58b9c/21c16a2e-1766ab58b9c.mp4

在詳細講述微服務測試之前,先給大家講一個場景。

上圖是一個典型的企業微服務應用架構圖,為了考慮安全性,雲上應用通常部署在雲上虛擬區域網內,統一透過閘道器對外暴露服務。對於負責 Product Service 應用的同學來說,我只想測試一下該應用對應的服務是否可用,他會怎麼做呢?

方案一

進入該應用部署所在的機器(ECS)或者容器(Pod),透過 curl 命令驗證該服務是否可用

方案二

將該應用暴露給公網訪問,透過本地命令列工具或者 Postman 工具驗證該服務是否可用

方案三

拉一條網路專線,打通雲上專有網路VPC與辦公網網路,透過本地命令列工具或者 Postman 工具驗證該服務是否可用

從以上場景,我們可以總結出雲上微服務測試幾點問題:

雲上網路拓撲復雜暴露公網訪問,會出現駭客攻擊,引發安全風險拉一條網路專線,浪費資源成本

明明只想要一個簡單的測試能力,成本卻如此之高。上述場景還僅僅是一個簡單的除錯功能,如果是壓測、自動化迴歸、巡檢等其他測試及穩定性保障手段,不僅僅要解決上述場景遇到的問題,還需要自建工具,腦補一下,都覺得成本太高,因此,我們需要微服務測試來幫助我們解決這些問題,進一步加速軟體交付效率。

為什麼我們需要微服務測試產品能力

提供測試、壓測、自動化迴歸、巡檢等能力,形成一個微服務測試解決方案

試想一下,研發同學提交程式碼並部署,可以使用測試工具,驗證服務邏輯正確性;可以使用壓測工具,驗證服務效能指標;驗證通過後,開始進行冒煙測試,可以使用自動化迴歸工具,編寫冒煙用例;冒煙通過後,開始進行歷史功能迴歸,可以使用自動化迴歸工具,編寫回歸用例;迴歸通過後,提交測試驗收,測試只需要驗證新功能,新功能驗證通過後,即可提交發布。釋出後,進行線上環境驗證,需要回歸歷史功能主流程,可以使用自動化迴歸工具,編寫主流程迴歸用例,新功能手工驗證;主流程迴歸透過且新功能驗證透過,代表釋出完成;研發同學,可以使用巡檢工具,配置線上巡檢;一旦巡檢告警,即可先於使用者發現問題,並解決問題。我們是將阿里巴巴沉澱的測試解決方案產品化輸出,幫助雲上業務實現高質量地實現快速交付。

易用且安全

開箱即用,無需關注專有網路VPC下的網路拓撲;安全可靠,擁有在辦公網下的測試體驗。

試想一下,企業為了安全隔離,研發環境、測試環境、預發環境、生產環境部署在不同的專有網路VPC內,如果使用者自建測試工具,需要解決測試工具到不同環境的網路互通問題,企業IT人員明明只想要一個簡單的測試工具,卻因為上雲之後,要解決複雜的雲上網路拓撲,遠遠沒有結束,為了能夠在辦公網使用該測試工具,還需要保證該測試工具能夠被辦公網訪問,此時又面臨著網路安全的考驗。我們希望有一個能夠開箱即用且安全可靠的方案,能夠讓上雲的企業IT人員擁有在辦公網測試體驗的測試工具。

低成本

彈性拉起測試機/施壓機,用完銷燬,能夠大幅度降低構建測試工具需要的機器資源及人力成本。

試想一下,企業上雲是為了降低成本,應用託管極大地降低了資源成本和運維成本,但測試成本並沒有降低。企業IT人員自建測試工具需要準備測試機/施壓機,該部分機器長期佔用且存在閒置,資源成本開銷大,尤其是在效能壓測場景,資源成本開銷會更大。

除了資源成本外,企業IT人員還需要研發測試工具,人力成本及時間成本非常高,基本上每個企業都需要一套測試工具。我們希望有一個低成本的方案,不僅提高企業的資源利用率,同時降低企業IT人員開發和維護測試工具的成本。

微服務生態

雲上已提供了大量的微服務產品,解決了微服務應用的託管、治理、診斷,微服務測試補齊微服務能力。

試想一下,如何測試一個微服務介面,需要了解介面入參和出參,如果是研發同學-服務提供者,可能比較熟悉該介面,如果是測試同學,甚至是其他研發同學,可能就需要文件,甚至是口口相傳,微服務治理已經視覺化應用的服務契約資訊,結合服務契約資訊,只需按照測試需要,選擇應用->框架->服務->方法,配置測試引數,即可進行測試,降低了服務契約同步的成本。

結合上述4點,測試同學只需負責用例編寫+測試驗收,介面除錯、介面效能水位、用例自動化均可賦能給研發同學,就像早期DevOps一樣,降低研發運維之間的反饋迴路,提高軟體交付效率,DevTest,降低研發測試之間的反饋迴路,在保證交付質量的前提下,進一步提升軟體交付效率,同時主動建立巡檢任務,定時監控線上服務可用率,先於使用者發現問題,解決問題。

MSE 微服務測試實踐前提條件:微服務應用已接入MSE

下面我們來體驗一下,MSE上如何使用微服務測試的能力。

服務測試

1、登入MSE控制檯,在頁面左上角選擇地域;2、左側導航欄選擇:微服務治理 -> 微服務測試 -> 服務測試 -> 查詢服務;3、單擊某個服務的詳情 -> 展示元資料列表;4、單擊某個方法的測試 -> 進入測試頁面(已幫助使用者填充引數模板);5、點選執行即可。

服務壓測

1、登入MSE控制檯,在頁面左上角選擇地域;2、左側導航欄選擇:微服務治理 -> 微服務測試 -> 服務壓測 -> 建立場景;3、選擇需要壓測的應用 -> 選擇框架 -> 選擇服務 -> 選擇方法;4、填寫壓測引數,點選確認;5、進入壓測場景列表頁,點選詳情;6、進入壓測詳情頁,點選啟動,等待施壓機準備就緒;7、點選詳情,進入壓測效能資料報告頁,實時檢視效能資料;

自動化迴歸

1、登入MSE控制檯,在頁面左上角選擇地域;

2、左側導航欄選擇:微服務治理 -> 微服務測試 -> 自動化迴歸 -> 建立用例;

3、新增步驟

選擇應用 -> 選擇框架 -> 選擇服務 -> 選擇方法;填寫引數;斷言/出參提取;4、可以新增多個步驟;

5、儲存用例;

7、透過執行歷史,檢視用例是否透過;

服務巡檢

1、登入MSE控制檯,在頁面左上角選擇地域;2、左側導航欄選擇:微服務治理 -> 微服務測試 -> 服務巡檢 -> 建立巡檢任務;3、選擇需要巡檢的應用 -> 選擇框架 -> 選擇服務 -> 選擇方法;4、填寫巡檢引數及斷言內容,點選確認;5、進入巡檢任務列表頁,點選啟動,即開始巡檢;6、巡檢失敗時,可以透過失敗記錄進行檢視,也可以新增告警,透過釘釘、簡訊、郵件的方式告警;

微服務測試實現細節工具能力

將阿里巴巴集團內實踐的測試工具產品化輸出,壓測、自動化迴歸、巡檢,降低使用者研發工具的成本。

網路互通

利用阿里雲現有網路打通技術方案(ENI掛載),打通雲產品專有網路VPC與使用者專有網路VPC

應用安裝微服務 Agent 時,主動將該應用所在的網路資訊(專有網路VPC,虛擬交換機VSwitch,安全組SecurityGroup)上報至服務端,根據應用所在的網路資訊,即可打通雲產品專有網路VPC與使用者專有網路VPC,實現雲產品服務直接訪問使用者專有網路VPC部署的服務。

彈性資源

雲產品使用自己的資源賬號購買彈性機器,安裝測試工具

服務契約

微服務治理已經視覺化服務契約資訊,微服務測試直接查詢服務契約資訊即可

不止是微服務測試

本文介紹了微服務治理下微服務測試的幾個能力,補齊了微服務生態測試的能力,即將推出智慧流量測試:提供微服務架構下的流量生產錄製生產回放、生產錄製線下回放、測試用例自動化生成、迴歸測試場景自動化覆蓋等能力,助力您的應用以更低的成本輕鬆完成測試驗證,歡迎前來體驗。

除了MSE(微服務引擎),微服務測試能力還將被EDAS、SAE等雲產品整合。將微服務測試能力作為一個基礎能力被更多雲產品整合,另外,將跟更多微服務產品 ARMS (應用實時監控服務)、ACM(應用配置管理)、CSB(閘道器)形成聯動,助力保障雲上業務穩定性,讓業務永遠線上。

10
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何在Mac OS X上安裝和執行 Cassandra?