siber 是來也科技研發團隊自主研發,面向接口的集成測試平臺。覆蓋 http、grpc、graphQL 三種常見類型接口測試。
siber 於2019年末在來也科技內部上線 V1.0 版本。當前已覆蓋接口 600 余個,占總接口數量的 85% 以上;配置 case 3300 余個,case 執行次數達 230w 余次。
自 siber 上線以後,多次幫助產品、業務線發現不易察覺的問題,有效的規避了線上故障,極大的減輕了測試同學、私有部署同學回歸測試的壓力。
在向妳宣傳 siber 之前,想請大家先思考幾個問題:
對於上述問題,在來也科技內部,統壹都使用集成測試平臺(siber)來解決。接下來從產品層面向大家介紹下,siber 有哪些亮點:
所有接口測試需要的測試案例(case)、測試場景(flow)、測試計劃(plan),都在 siber 上統壹創建、維護、查看。避免出現 “妳的腳本妳知道,我的流程妳不懂”等不友好交互的情況。
用戶之間可以***享 case、flow、plan。格式統壹,全部使用 json 格式進行交互和校驗,避免了 “ grpc 協議我不會調”,“前人用 go 寫的測試腳本,但我更喜歡 python ” 等問題。
使用 siber 可以降低接口測試難度,提高測試案例的復用性。
復用:同壹個 case 可以出現在多個 flow 中,復用特指復用自己或他人之前配置過的 case。不建議對他人的 case 隨意修改。
復制:點擊“復制 case”,siber 會為您自動復制該 case 下的全部內容,包括但不限於壹個或多個版本的request header 、 request body、checker、injector、sleeper。
如果您想對他人的 case 做出不確定後果的修改,我們建議您使用“復制 case” 功能,這樣,不必影響到使用原先的 case 的執行計劃。
在 siber 上執行的測試計劃,可以清晰的展示出 plan、flow、case 整體的狀態和運行詳情。
清晰的記錄了請求和返回的詳細內容,每個檢查項、註入項是否符合預期等結果。
執行結果永久保存,方便測試和開發者之間同步現場、復現、復盤問題。
避免出現:“我這兒沒有啊!”,“妳是不是參數填錯了?”,“無法復現”等許多理不清問題
敏捷開發模式下,產品叠代快。部分接口可能每次叠代都有改動,部分接口卻可能兩年都沒有變化。
那如何直觀清晰的維護,同壹個接口在不同版本下的 case 呢?
siber 支持對同壹個 case 配置不同版本的輸入、輸出及檢查。可單獨對有更新的接口對應的 case 增添版本,對於沒變化的接口,無需額外處理。
當執行 plan 時,會自動執行不高於 plan 指定版本的最高版本 case。
詳見: case 版本說明
在來也科技內部,許多項目配置了 grpc-gateway ,使得定義壹個 method(method 是延用了 grpcurl 中的定義),可以有gRPC 和 http 兩種訪問形式。
通常而言對內使用 gRPC 協議,對外使用需鑒權的 http 協議。
對於這樣的 method,僅需要配置壹個 case,便可支持 gRPC 和 http 兩種協議的測試。
parameter 用於渲染不確定的輸入。比如:
針對於上述問題,我們將 parameter 抽象出三個子項:
支持生成隨機的字符串、數字;當前時間戳;base64 等。
全部內容和配置方法,詳見: 預定義的 FUNCTION
支持將同壹 flow 中 case 的輸入、輸出、響應時間、狀態碼等信息保存在 variable 中,供後續case 使用
使用 SiberAuth 可以支持對接口進行鑒權。當前已內置通用鑒權算法,可以自己在 siber 上添加自定義的鑒權算法。
除手動觸發外,siber 還支持 CI 觸發和 crontab 觸發兩種觸發模式:
siber 已與來也科技內部 CI 工作流打通。當前支持兩種 CI 觸發模式:
自動執行:
項目在測試環境發布後,會自動觸發 siber 在測試環境運行相關plan(plan與服務的關系是自動綁定的)。
如有報錯會發送到企業微信群中提示用戶。
強制執行:
在應用上線前會自動檢查 siber 上配置了強制執行的 plan 是否通過,如果未通過,不予上線。
有些問題偶發,比如每天淩晨可能會有零星報錯。siber 提供定制執行的功能,可以按照 crontab 的方式觸發 plan,對於偶發問題提供了可觀測的現場。
siber 自上線以來,將許多問題扼殺在了上線前,包括但不限於:
後端開發:劉桐烔,季琛,董夢囡
前端開發:徐麗婧,鄔丹琳,楊子傑