品牌名稱
易盛信息
企業(yè)規(guī)模
201-500人

MeterSphere案例分享丨易盛信息MeterSphere接口測試使用經(jīng)驗(yàn)

671次閱讀
undefined

 

鄭州易盛信息技術(shù)有限公司(以下簡稱為易盛信息)是鄭州商品交易所的全資技術(shù)子公司。其主要的發(fā)展戰(zhàn)略為“兩個面向”,即面向鄭州商品交易所和面向全球金融期貨市場。

目前,易盛信息一個普通交易日6小時處理的交易額遠(yuǎn)遠(yuǎn)超過了天貓雙十一全天的交易額,核心系統(tǒng)處理時延精確至納秒級,部分系統(tǒng)數(shù)據(jù)精度要到小數(shù)點(diǎn)后三十多位。系統(tǒng)的穩(wěn)定性至關(guān)重要,如果交易系統(tǒng)發(fā)生故障導(dǎo)致中斷會影響世界范圍內(nèi)相關(guān)產(chǎn)品定價。總而言之一句話,我們要千方百計地確保系統(tǒng)“不能出事”。

系統(tǒng)測試階段面臨的問題

在系統(tǒng)測試階段,針對接口測試我們主要面臨兩類問題。

第一類是私有協(xié)議問題,期貨交易采用基于TCP和UDP的期貨報文交換協(xié)議,市面上沒有針對性的測試工具。如果需要自動化,就需要編寫C++代碼來進(jìn)行測試,這無疑對測試人員提出了很高的要求;

第二類問題則是我們的辦理申報類業(yè)務(wù),對HTTP接口測試的需求具有鮮明的特點(diǎn)。此類采用非私有協(xié)議的系統(tǒng),大部分采用Java開發(fā),通過HTTP接口進(jìn)行交互。

而在這一環(huán)節(jié)中,我們需要和數(shù)據(jù)庫進(jìn)行比較。業(yè)務(wù)中有大量的表單填寫和各種計算,需要對接口處理后的數(shù)據(jù)進(jìn)行一定規(guī)則的校驗(yàn)。傳統(tǒng)接口測試工具均無法支持?jǐn)?shù)據(jù)庫相關(guān)操作。

在這方面,我們也進(jìn)行了一些嘗試,今年疫情期間,我們開發(fā)了一版以HttpRunner為核心引擎的接口測試工具原型,結(jié)合自有Python操作Oracle封裝的庫,實(shí)現(xiàn)了和數(shù)據(jù)庫結(jié)果的比較,但由于腳本編寫內(nèi)容多、UI不夠便捷、文檔不夠清晰等一系列原因最終擱置了這一自研工具;

接口測試的另一個特點(diǎn)是具有復(fù)雜且長的流程性接口。對于很多審批、申報類業(yè)務(wù),需要按照順序和邏輯條件請求十幾個接口,中間由不同的用戶登錄并操作,過程之繁瑣遠(yuǎn)超微服務(wù)的無狀態(tài)調(diào)用,對于很多長流程組成的場景,無論是手工測試還是編寫自動化測試腳本都很復(fù)雜。

MeterSphere給我們帶來的幫助

任何技術(shù)都有著自己的生命周期,從誕生到衰落也符合事物發(fā)展的客觀規(guī)律。傳統(tǒng)金融行業(yè)的互聯(lián)網(wǎng)轉(zhuǎn)型是漫長的,為了求穩(wěn),對于業(yè)內(nèi)的眾多新興技術(shù),并不會立刻采納,但我們?nèi)匀怀掷m(xù)關(guān)注相關(guān)理論、技術(shù)、工具及平臺,爭取成為早期技術(shù)紅利的受益者。

2020年8月,在朱少民老師的公眾號“軟件質(zhì)量報道”上第一次了解到了MeterSphere這個開源項(xiàng)目,并在9月的QECon大會上第一次見面。真的是“相見恨晚”呀!

經(jīng)過一段時間的使用,我們逐步將MeterSphere開源持續(xù)測試平臺引入到我們的業(yè)務(wù)場景測試之中,也收獲了一些使用心得和體會。在這里和大家分享一下。

1.平臺即服務(wù)

在使用MeterSphere之前,我們主要用Postman進(jìn)行接口測試。與工具型的Postman相比,MeterSphere是一個持續(xù)測試的平臺。MeterSphere的主要優(yōu)勢包含以下幾點(diǎn):

■ 搭建方便

MeterSphere基于Docker提供服務(wù),并提供完備的私有化部署能力,支持一鍵安裝和升級,整個過程非常流暢,體驗(yàn)良好。容器化的部署方式避免了測試人員安裝工具的成本,搭建好平臺后即可直接使用。

undefined

 

圖1 MeterSphere支持一鍵安裝和升級

■ 管理規(guī)范

MeterSphere能夠?qū)崿F(xiàn)組織、工作空間、項(xiàng)目、測試、場景等多級管理,角色權(quán)限分離,井井有條。它還可以與內(nèi)部LDAP對接,使用起來非常方便。

 

undefined

 

圖2 MeterSphere可與LDAP進(jìn)行對接

 

undefined

 

圖3 MeterSphere支持用戶、組織和工作空間管理

2. 與MeterSphere的“一見鐘情”

初次試用MeterSphere,就發(fā)現(xiàn)了它非同一般的易用性,提供接口測試解決方案上也恰好直擊我們的痛點(diǎn)。我們選擇了具體的業(yè)務(wù)組進(jìn)行了試用推廣,真的很香,主要的原因來自以下幾個方面:

■ 調(diào)試功能

測試過程中常常需要調(diào)試,MeterSphere貼心地提供了調(diào)試按鈕,可以立刻看到當(dāng)前接口的執(zhí)行情況,方便使用者及時調(diào)整,這方面體驗(yàn)和Postman完全一樣。

 

undefined

 

圖4 MeterSphere接口測試提供了與Postman類似的體驗(yàn)

■ 支持Python的前后置腳本

Postman支持使用JavaScript編寫腳本,但我的同事們更熟悉Python,而MeterSphere支持Python的前后置腳本就給接口測試增加了更多的靈活性。在這方面,MeterSphere更具優(yōu)勢。

 

undefined

 

圖5 MeterSphere支持Python的前后置腳本

■ 支持SQL語句

這應(yīng)該是支持我的團(tuán)隊(duì)開始使用MeterSphere最關(guān)鍵的原因了。支持SQL就滿足了我們在接口測試中50%的需求,結(jié)合自定義變量和數(shù)據(jù)庫源配置及調(diào)試功能,可以非常便捷地編寫用例。即使測試人員不會寫代碼只會寫SQL,也可以通過簡單的培訓(xùn)快速上手,相較于原有需要測試人員手動編寫Python測試代碼要便捷許多。

 

undefined

 

圖6 MeterSphere在接口測試中支持SQL語句

 

undefined

 

圖7 SQL請求返回結(jié)果

3. 支持測試跟蹤和性能測試

除了我們主要關(guān)注的接口測試,MeterSphere也支持測試跟蹤和性能測試。官方有意和我們目前正在使用的禪道平臺打通,進(jìn)行缺陷管理,這樣工具就可以聯(lián)動起來。對于性能測試的功能,我們也正在探索中,將接口測試用例一鍵轉(zhuǎn)為性能測試用例,并輔以可視化施壓曲線,非常直觀,點(diǎn)個贊!

4. 與技術(shù)棧契合

基于Vue.js和SpringBoot的前后端分離程序是當(dāng)前主流的技術(shù)實(shí)現(xiàn)方式,MeterSphere沒有藏著掖著,核心功能代碼全部開源,使用Swagger作為接口文檔清晰易讀,大大降低了二次開發(fā)和定制化的門檻。

5. 支持持續(xù)集成

MeterSphere提供了Jenkins插件用來打通持續(xù)集成,能夠和內(nèi)部的CI/CD流水線配合工作,提高自動化率。同時,基于前后端分離的設(shè)計,MeterSphere還能夠便捷地通過自定義腳本觸發(fā)接口批量執(zhí)行。

使用情況

我們目前對MeterSphere的使用方法是在諸多測試團(tuán)隊(duì)中選擇了一個典型團(tuán)隊(duì)進(jìn)行試點(diǎn)推廣,文中截圖均來源于此團(tuán)隊(duì)的測試實(shí)踐。具體項(xiàng)目由專職測試團(tuán)隊(duì)進(jìn)行系統(tǒng)測試,充分設(shè)計場景和用例,開始逐漸將原有零散的用例向MeterSphere平臺遷移,充分利用其管理能力和復(fù)用能力。當(dāng)用例積累到一定規(guī)模后,可以便捷地展開冒煙和回歸測試。

感受與評價

MeterSphere開源持續(xù)測試平臺是一款經(jīng)過細(xì)心雕琢的產(chǎn)品,易用性相較于之前接觸過的開源工具有極大的提升。

社區(qū)的活躍度是評價一個開源項(xiàng)目的關(guān)鍵指標(biāo)。沒有社區(qū)哪來的生命力?MeterSphere團(tuán)隊(duì)的同學(xué)非常熱情,積極協(xié)助我們解決使用中的各種問題,同時我們將發(fā)現(xiàn)的問題和意見建議提交Issue,官方再有選擇地采納,這就形成了一個良性的互補(bǔ)和循環(huán),互相促進(jìn)各自的產(chǎn)品質(zhì)量持續(xù)提升,共同受益。

期待與建議

截至目前,MeterSphere每一個新版本都能解決多個切實(shí)關(guān)心的實(shí)際問題,并且積極采納用戶合理的意見和建議,永葆活力。希望MeterSphere開源項(xiàng)目不忘初心,在開源社區(qū)持續(xù)不斷地茁壯成長,成為測試工程師們不可或缺的工具。