搭建API管理與接口自動化測試平臺全過程

前言

最近公司要搞CICD,希望把公司內部所有API都統一起來管理,從立項、需求調研、產品調研、部署以及實施,前后總共搞了兩個多月,特此記錄下來,希望能夠幫到大家。


項目背景

公司是國內做外貿電商平臺的頭部企業之一,研發團隊130人左右,內部分為多個事業部,每個事業部內有多條產品線,每條產品線下有多個產品團隊。每個產品團隊使用不同的開發工具,代碼和API的設計沒有明確的設計規范,并且各自使用的工具也不一樣。在公司項目快速發展的時候,每個產品團隊都在忙著開發,因此研發管理的問題并不突出,雖然此前出現過幾次關于統一研發測試工具的討論,但最終因為項目排期問題不了了之。

從今年年初開始出現過幾次比較大的項目事故,因為迭代周期太短,測試覆蓋度不夠,導致項目上線之后優惠券系統有異常損失了一點錢,因此從公司高層開始推研發管理改革,什么cicd、敏捷開發、代碼審查、API管理、自動化測試啥的都要搞一套。整個項目從3月份立項到5月底正式完成,在經過6月一個月的實踐之后得到不錯的反饋。


面臨的問題(需求調研)

在經過一周左右的需求調研,把內部大部分團隊的API管理需求整理為以下8點:

1.API文檔管理工具不統一,編寫效率低下,不方便分享。

2.對于API的設計規范不統一,不同團隊之間的API對接非常麻煩,有用Rest的,也有表單的和json的。

3.API文檔記錄的內容不夠詳細,經常缺漏字段,導致對接和測試過程中增加了很多溝通成本。

4.需要mock?api模擬后端請求,讓前端可以脫離后端進行對接和測試。

5.測試人員同時使用多個工具(API文檔管理、測試、用例編寫),測試和溝通效率低下。

6.API變更的時候無法及時通知相關人員,只能在釘釘上去喊人或者是當面溝通。對于API的變更也沒有詳細的記錄。

7.測試人員水平層次不齊,沒有辦法按需編寫詳細的測試用例。通過腳本寫用例也不方便維護。

8.希望有API的自動化測試,方便對一些復雜的場景進行測試,比如支付的流程。

說實話當時一看到需求覺得頭都大了,首先是需求很雜,不僅有API文檔管理的需求,還有測試和自動化測試,還要能方便上手。一開始是希望專門拉個團隊做這事,但接到需求之后內部討論了一下覺得成本太高,大家也沒做過,何況實施周期比較短(只有兩個月),自己搞是不可能的(估算了一下如果要搞一個能用的可能得5個人搞個至少半年),轉而從現有的市面產品中尋找解決方案。


產品調研第一階段

產品調研的思路很簡單:

1.有免費或者開源的最好,其次才是付費的

2.能至少滿足80%的需求

3.能夠離線私有化部署

一開始我們想到大家平時用得比較多的Postman、Swagger和Jmeter,理由首先是他們都是免費的,其次是對這三個產品比較熟悉,上手比較快。但是把經過一輪調研之后還是淘汰掉,原因也很簡單:

1.缺乏足夠強的API文檔管理,Postman的文檔太簡單,Jmeter缺少這塊功能,Swagger需要在代碼里寫注解,但是我們之前的文檔都是寫在word里面的,使用習慣不一樣。

2.團隊協作功能太弱,對于130人左右的研發團隊,以上三個產品都像是單機的產品,后面我們試用了Postman的付費版,覺得依然不符合國內用戶的使用習慣,更像是一個測試工具,而非管理平臺。

3.無法滿足快速編寫測試用例和自動化測試的需求。

4.無法做到API變更通知和版本管理。

產品調研第二階段

于是我們就接著找目前市面上的API管理平臺,得到以下的清單:

1.EOLINKER API?Studio

2.RAP

3.NEI

4.APIZZA

5.Doclever

最值得一提的是EOLINKER?API?Studio,EOLINKER是一家專門做API相關產品的公司,什么API管理、自動化測試、監控、微服務網關等等都有,甚至還有數據庫管理和測試用例管理等等的產品,API?Studio只是其中一款產品,主要做API的研發管理和自動化測試,從產品的功能上看是能滿足我們的絕大部分的需求。但是要吐槽的是EOLINKER這個名字實在不好發音,一開始打電話給他們客服壓根不知道怎么叫,后面才知道原來是Easy?Open?Linker的縮寫。。。。

RAP是阿里媽媽團隊做的一個開源產品,做了有很多年,但是目前的功能還在是太弱了,和淘寶的朋友打聽了一下原來他們內部也不用(但他們內部有一個aone系統做得很強),所以就放棄了。

NEI是網易的API管理平臺,測試功能太弱并且不支持私有化部署,放棄。

APIZZA是一個創業團隊做的,界面直接照搬Postman,但是功能相比Postman弱很多,亮點應該是簡單上手快,定位小微型團隊,也不支持私有化部署。同樣要吐槽的是名字,以為是賣批薩的。。。

Doclever是一個個人開源項目,功能比APIZZA強一點,但是作者已經停止維護了,略感可惜。

所以一輪比較下來發現其實沒有啥可選的,國內的API管理產品的頭部效應太明顯,API?Studio無論是功能完善度還是產品整體成熟度都比另外幾個要好很多。我們先是試用了EOLINKER的線上免費版,覺得功能已經很強了,于是在項目進行到第三周的時候聯系了他們的客服申請私有云版本試用,申請之后有一個半月的試用期。


部署和實施

這應該是整個項目最難的部分,難點在于給全公司的產品團隊普及一個新的產品并且融入到工作流程里面。首先我們找到了一個項目進度不算緊張的團隊,讓EOLINKER的培訓講師遠程培訓了一次(如果上門培訓需要額外付費,但是試用過程中可以有一次免費的遠程培訓),然后我們觀察了團隊一周的時間,并且發布了調查問卷去了解團隊的使用情況。經過一周的使用之后,研發團隊的成員覺得還不錯,上手新產品并不需要很久,同時也給出了使用過程中的問題,我們再把問題反饋給EOLINKER那邊進行答疑。

當第一個團隊覺得用得還不錯的時候,我們繼續在第二個團隊里面進行試推,并且在第三周讓兩個產品團隊坐在一起討論產品的使用方式,比如制定權限管理的方式,文檔開發規范,通知規范等等??偨Y得到一個比較通用的方案之后,我們再繼續推廣到其他產品團隊。

在基本方案跑通之后,我們開始嘗試通過Jenkins把EOLINKER和其他系統關聯起來形成一個流程,比如當代碼push之后能夠自動跑測試用例,并且把報告發送給測試團隊,測試團隊再去校驗一下用例的情況。

整個培訓和實施過程花了差不多一個半月,在這個過程中EOLINKER的技術客服的態度不錯,基本上都是有問必答,而且可以針對問題給到demo。所以整個推進過程比預想中的要順利許多。后面我們由繼續采購了他們的API監控服務,讓API開發測試和監控能夠變成一個完整流程,目前實施下來覺得還是不錯的。


后記

這篇文章主要記錄我們搭建API管理和自動化測試平臺過程中的一些思路和過程,作為開發人員能夠完整參與到這整個過程中其實可以學到很多,無論是項目的管理、團隊利益關系的協調,還是新產品培訓和推廣等等。后續我們再繼續整理其他系統的搭建流程和使用技巧,希望可以多交流。


相關資源

EOLINKER:www.eolinker.com

RAP:http://rapapi.org

NEI:https://nei.netease.com/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容