新冠疫情肆虐翅溺,eolink 結合自身長期的遠程研發(fā)協(xié)作經驗,為企業(yè)推出 API 管理遠程協(xié)作指南髓抑,以下方案不僅在 Eolinker 內部咙崎,也在眾多客戶中得到驗證,希望能夠幫助您快速了解如何將 API 管理與自動化測試運用在實際的遠程辦公中吨拍。
01. API管理的發(fā)展過程褪猛、痛點及解決方案
在過去,許多研發(fā)團隊并不注重研發(fā)過程中的 API 管理密末,認為API管理無非是管理一下API文檔握爷,只需要用word文檔或者wiki把API描述寫一下,等到需要進行團隊協(xié)作的時候再把API文檔通過文件或者wiki的方式發(fā)給前端和測試人員即可严里。這時候的API管理方式粗放新啼,我們把它稱之為1.0時代。
但隨著敏捷觀念的不斷普及刹碾,大家開始發(fā)現傳統(tǒng)的API管理只側重管理API文檔是不行的燥撞,存在以下明顯的問題:
API文檔編寫不規(guī)范:缺乏統(tǒng)一文檔格式,簡寫迷帜、漏寫或不寫詳細說明(開發(fā)人員總覺得自己看得懂即可)物舒。
儲存平臺不統(tǒng)一:公司內部每個項目團隊都有自己的使用習慣,甚至一個項目內部可以同時存在多個API管理工具戏锹,平臺不統(tǒng)一導致無法高效維護和協(xié)作冠胯。
文檔更新不及時:開發(fā)團隊習慣于先開發(fā)后補文檔,認為文檔對于開發(fā)工作而已是一個附加的內容锦针,導致更新不及時荠察。
變更歷史不記錄:由于沒有及時維護文檔,當需要回頭檢查項目或進行工作交接時就會發(fā)現看文檔不如看代碼奈搜,反而拖慢工作進度悉盆。
測試人員無法快速編寫測試用例:由于傳統(tǒng)API文檔僅僅是個文檔,測試人員還需要使用其他工具編寫測試用例馋吗。
并沒有降低溝通成本:由于上述原因焕盟,前端、后端宏粤、測試脚翘、運維等成員經常由于不清晰的文檔而引發(fā)爭論灼卢,有時候反而增加了溝通成本。
為了解決上述問題而出現2.0時代的工具堰怨,開始思考如何將開發(fā)與測試結合芥玉,比如通過代碼注解生成API文檔來減少后端開發(fā)編寫文檔的負擔蛇摸、可以基于API文檔直接進行測試等备图。這個時代最突出的產品是Swagger、Postman赶袄、Jmeter揽涮、SoupUI等產品。
隨著研發(fā)測試一體化的觀念推廣饿肺,這些產品逐漸成為目前主流API管理與測試工具蒋困,有著龐大的用戶群體。
但是上述產品出現時并未流行遠程協(xié)作敬辣,因此其產品設計基本是基于本地開發(fā)和個人使用雪标,因此當遇到越來越高的迭代速度和質量要求時便顯得力不從心,從而出現以下問題:
前端開發(fā)進度受制于后端:單純API文檔缺乏Mock API溉跃,前端需要等待后端開發(fā)完成才能拿到測試數據村刨,自己構造測試數據費時費力。
文檔變更不通知:后端開發(fā)改了代碼和接口習慣于口頭溝通撰茎,而不是通過文檔明確地指出修改的內容嵌牺,導致后期溝通成本高昂。
接口測試不方便且工作重復:需要看著接口文檔再另外使用工具進行測試龄糊,如果接口發(fā)生了變化逆粹,寫好的測試也作廢了,增加了重復工作量炫惩。
工作成果無法分享:每個測試人員都用單機測試工具編寫測試腳本僻弹,但卻沒法共享和協(xié)作。
測試工作不自動化:一直希望促進自動化測試他嚷,但是沒有真正運作起來蹋绽,每天“點點點”依然消耗大量測試團隊的精力。
測試效果無法量化:無法準確了解測試效果爸舒,沒人可以說清今天蟋字、昨天、上周扭勉、這個月的測試情況如何鹊奖,和之前比有何改進。
測試工作被動:測試總是排在最后進行涂炎,無法參與項目討論忠聚,無法進行快速大范圍回歸測試设哗,甚至無法按時完成測試任務,導致項目延期或帶著忐忑上線两蟀。
并且這些產品并未解決 API 研發(fā)協(xié)作過程中的核心問題:如何將開發(fā)网梢、測試、運維赂毯、團隊協(xié)作四者結合战虏,成為一個適用于團隊的、靈活的党涕、統(tǒng)一的API管理平臺烦感。并且能夠為后續(xù)API監(jiān)控、運維提供直接的支持膛堤。
我們將實現了開發(fā)手趣、測試、運維肥荔、協(xié)作等四大要素的工具绿渣,作為3.0時代的產品的標志。而 Eolinker 自2017年成立以來燕耿,一直致力于構建 API 全生命周期管理解決方案中符,目前是國內最大的在線 API 研發(fā)管理平臺,旗下的線上SaaS產品以及離線私有化產品包括:
API 生成平臺(API Factory)
API 研發(fā)管理與自動化測試平臺(API Studio)
API 監(jiān)控平臺(API Monitoring)
API 微服務網關平臺(API Gateway)
API 開放平臺(API Open Platform)缸棵,即將發(fā)布
02. eolink API Studio的理論基礎:文檔與測試驅動
相信大家早已聽說過以下開發(fā)模式:文檔驅動開發(fā)(DDD)以及測試驅動開發(fā)(TDD)舟茶。
文檔驅動開發(fā)指的是在開發(fā)之前先把文檔寫好,明確功能需求堵第、入參出參定義吧凉、異常情況處理等之后再進行開發(fā)。這就好比我們在做題之前需要先了解清楚題目要求踏志,否則不審題就下筆很容易導致最后返工阀捅。
而測試驅動開發(fā)指的是在開發(fā)之前先把測試方案/用例寫好,只開發(fā)能夠順利通過測試的功能针余,如果測試不通過則持續(xù)進行改進饲鄙。這就好比我們考試前會先了解考試通過的標準,沒有標準亂答一通肯定沒有好結果圆雁。
以上兩種開發(fā)方式進行結合后就是 Eolinker API Studio 的設計理念:文檔與測試驅動開發(fā)(DTDD)忍级。簡單地說就是:
1. 用標準文檔代替口頭約定和筆記文檔,讓開發(fā)伪朽、測試轴咱、運維、協(xié)作有跡可循;
2. 快速用測試結果推動進度朴肺,讓團隊溝通更充分窖剑、管理有依據,實現敏捷開發(fā)戈稿;
因此西土,在 Eolinker API Studio 中,幾乎所有的協(xié)作工作都是圍繞著 API 文檔進行的鞍盗,當你創(chuàng)建了 API 文檔之后需了,你可以隨時查看 API 的改動情況、根據 API 文檔發(fā)起 API 測試橡疼、編寫 API 測試用例援所、創(chuàng)建 Mock API、進行 API 自動化測試等欣除。
因此我們非常建議您嘗試這種方式進行工作。
03. 初識API Studio
創(chuàng)建第一個 API 管理項目
在 Eolinker API Studio 中挪略,所有的 API 都是以項目的方式進行妥善管理历帚,因此我們首先需要創(chuàng)建一個 API 管理項目。同時我們也提供了一鍵導入功能杠娱,可以快速將Swagger挽牢、Postman、RAP摊求、YAPI等產品內的數據快速遷移到 Eolinker 中禽拔。
創(chuàng)建 API 文檔
在 API Studio 中,您可以通過三種方式來創(chuàng)建API文檔:
手動創(chuàng)建API文檔:APIStudio提供了非常全面的API文檔格式室叉,能夠詳細記錄您的API信息睹栖。這種方式適合所有用戶,并且也是我們推薦的方式茧痕。
關聯(lián)項目與Swagger URL野来,API Studio自動從該地址獲取最新API文檔:這種方式適合之前已經在使用Swagger,并且傾向于將文檔寫在代碼注解中的用戶踪旷。但這種方式會帶來代碼入侵的問題曼氛,讓代碼中加入了許多無關的信息從而增加維護成本。
關聯(lián)項目與代碼倉庫:API Studio自動從代碼倉庫中掃描代碼注解生成API文檔令野。目前這種方式支持Java以及PHP兩種語言舀患。這種方式也會帶來代碼入侵的問題。
當我們創(chuàng)建好 API 文檔之后气破,可以在 API Studio 中看到清晰的 API 文檔信息聊浅,并且可以在此基礎上進行測試API、編寫API測試用例、編寫Mock API狗超、管理API版本等等的操作弹澎。
一鍵發(fā)起 API 測試
當我們創(chuàng)建好 API 文檔之后,可以立刻對該 API 進行測試努咐,API Studio 提供了以下主要特性來幫助測試人員快速發(fā)起 API 測試:
1. 支持本地測試苦蒿、局域網測試、在線測試等渗稍;
2. 支持一鍵切換測試環(huán)境佩迟,使用全局變量、增加額外請求參數竿屹、改變請求地址等报强;
3. 支持直界面編輯JSON、XML請求數據拱燃,不需要手寫JSON秉溉、XML等數據結構;
4. 支持將測試數據保存為測試用例碗誉,以后可以直接使用測試用例進行測試召嘶;
5. 支持批量測試 API,比如測試登錄接口的多種情況并且返回實時測試數據哮缺;
6. 支持在測試過程中編寫代碼進行簽名弄跌、加解密袍冷、生成隨機數據等操作透硝;
下圖:在測試界面可以直接編寫JSON數據闽坡。
下圖:一秒切換測試環(huán)境并且發(fā)起測試吊趾。
批量測試多個 API 用例你雌,解放測試勞動力
在以往協(xié)作方式中躬贡,測試人員工作總是排在最后進行抵拘,無法參與項目討論引颈,無法進行快速大范圍回歸測試诵冒,甚至無法按時完成測試任務凯肋,導致項目延期或帶著忐忑上線。
而在 API Studio 中:
1汽馋、由于協(xié)作是基于 API 文檔進行的侮东,當后端開發(fā)人員將 API 文檔寫好之后,測試人員就可以馬上介入豹芯,在 API 文檔的基礎上編寫測試用例悄雅,讓測試工作前移;
2铁蹈、當 API 開發(fā)完成之后宽闲,測試人員可以一鍵將 API 的測試用例全部測完,并且得到詳細的測試報告。后端開發(fā)只需要看到測試結果就能夠知道自己的 API 是否滿足測試需求容诬,如果有異常則可針對性改進娩梨;
3、API 發(fā)生改變后览徒,測試人員只需一鍵即可進行 API 回歸測試狈定,真正解放勞動力;
通過上述方式习蓬,后端和測試人員可以進行更緊密地溝通纽什,讓測試驅動開發(fā)完成。
下圖:批量測試 API 的多種數據情況躲叼,并且獲得詳細測試報告芦缰,可以在報告中查看API異常原因。
構建 Mock API枫慷,讓前端擺脫后端束縛
在瀑布流開發(fā)模式中让蕾,如果前端開發(fā)人員需要進行頁面對接,需要后端先完成 API 的開發(fā)工作流礁,因此前后端開發(fā)的進度會互相影響涕俗。
通過 Mock API,您可以事先編寫好 API 的數據生成規(guī)則神帅,由 API Studio 動態(tài)生成 API 的返回數據。開發(fā)人員通過訪問 Mock API 來獲得頁面所需要的數據萌抵,完成對接工作找御。
Mock API 支持根據不同的請求參數返回不同的 HTTP Status Code、Header绍填、Body等數據霎桅。你可以在一個 API 文檔里創(chuàng)建多個Mock API ,模擬前端發(fā)起的各種請求讨永,方便對前端邏輯進行校驗滔驶。
當項目正式發(fā)布時,只需將 Mock API 的地址前綴替換為實際的訪問地址即可卿闹。
比如:同一個項目中的Mock API的地址前綴是相同的(如 mock.eolinker. com/uasyd1/…)揭糕,因此可以在代碼中將MockAPI的地址前綴作為全局變量,項目上線時僅需替換變量的值即可改變整個項目的 API 請求地址前綴锻霎。
下圖:該API創(chuàng)建了多個Mock API著角,前端可以傳遞不同的請求參數獲取相應的返回結果,比如用戶名為 jack liu時返回登錄成功旋恼,用戶名為 percy時返回登錄失敗或隨機字符串吏口。
API文檔發(fā)生變更時自動通知相關成員
許多用戶在維護 API 時,經常遇到 API 文檔變更了,但是前端和測試人員卻不知道的問題产徊。為了解決這個痛點昂勒,API Studio 提供了變更通知功能,當 API 發(fā)生變化時通過郵件和站內信自動通知相關成員舟铜,并且顯示變更的內容戈盈。
并且在 API Studio 中,我們將 API 的狀態(tài)劃分為以下階段深滚,方便成員在查看 API 文檔時了解 API 當前所處的狀態(tài)奕谭。
遠程協(xié)作時,直接對 API 文檔進行評論標注
當您進行遠程協(xié)作時痴荐,可以直接在 API 文檔上發(fā)布評論血柳,所有的溝通內容都會跟隨 API 文檔保留下來并且按照版本分類好,而不是零散地存在各種聊天工具中生兆。這樣避免后期溝通時找不到依據而浪費時間难捌。
下圖:在 API 文檔中直接發(fā)表評論,并且@了項目中的另一位成員查看鸦难。
查看根吁、回滾、對比API編輯歷史
API Studio中還提供了非常強大的 API 版本管理功能合蔽,您可以隨時回滾到任意一次 API 文檔版本击敌,并且還可以對比兩個版本之間的差異。
當無法用語言溝通更新了什么時拴事,不妨試試版本對比~
如下:當前版本相比歷史版本沃斤,刪減了某些參數,會在界面中以紅色標出刃宵。
除此之外衡瓶,還有…
API Studio的功能還遠不止如此,您可以在項目中進行嚴格的人員權限管理牲证、API狀態(tài)碼管理哮针、項目文檔管理、測試環(huán)境管理等等坦袍,一切都是為了讓團隊協(xié)作能夠更加輕松高效圖片
04. 進階十厢!通過API Studio打造API自動化測試平臺
快速了解市面上領先的 API 自動化測試
在 API Studio 中還提供了目前市面上領先的 API 自動化測試功能:
零代碼自動化測試:不需要寫任何代碼即可進行 API 自動化測試;
代碼模式自動化測試:編寫少量 Javascript 代碼即可進行復雜流程的自動化測試键闺;
支持操作數據庫:測試過程中支持操作數據庫寿烟,執(zhí)行數據插入、刪除辛燥、編輯等操作筛武;
數據驅動測試:一個測試用例支持測試多組數據缝其,分別生成測試報告;
自動生成測試報告:每次測試都可以生成詳細測試報告徘六,支持在線查看和離線下載内边;
支持定時測試任務:設置定時器自動執(zhí)行測試任務,將報告發(fā)送給指定人員郵箱待锈;
支持 Open API 觸發(fā)測試:可以通過 API 對接 Jenkins漠其,隨時進行API 自動化測試;
極低學習門檻:15分鐘培訓即可快速上手進行 API 自動化測試竿音;
可以幫助您快速解決以下常見問題:
需求發(fā)布前需要對項目進行回歸測試和屎,傳統(tǒng)測試方式的覆蓋面窄、效率低下春瞬。可以用自動化測試提高測試范圍以及效率柴信;
產品需求變動/代碼改動后,測試人員無法確定測試范圍宽气。可以用自動化測試進行大范圍回歸測試保證基本業(yè)務正常随常;
傳統(tǒng)測試方式周期長,無法每天萄涯、每小時绪氛、24小時隨時執(zhí)行測試,并且依賴于人的專業(yè)性涝影,測試效果不可靠枣察。用 API 自動化測試的定時測試任務或者將 API Studio 集成到 Jenkins 上,實現代碼提交即觸發(fā)測試并實時得到測試報告燃逻。
傳統(tǒng)測試團隊成員之間缺乏協(xié)作询件,互相不清楚各自編寫的測試用例、測試腳本唆樊、測試結果等,導致重復勞動刻蟹。用 API Studio 即實現測試團隊的在線協(xié)作逗旁。
測試團隊使用 API Studio 日常維護 API 自動化測試用例后,可有效解決上述問題舆瘪,幫助測試團隊提高測試能力和效率片效。
API Studio 提供UI 和代碼模式兩種測試用例編寫模式:
UI模式:支持通過界面模式編輯 API自動化測試用例,無需編寫代碼即可完成較復雜的API自動化測試工作英古。
腳本模式:通過編寫Javascript代碼淀衣,可以完成復雜的API自動化測試工作。
由于篇幅原因召调,我們在此僅演示 API Studio 的自動化測試效果膨桥,如需了解具體內容可以訪問 Eolinker 官方網站查看蛮浑。
如下圖所示,您可通過界面方式編輯 API 測試流程只嚣、API 之間數據管理沮稚、返回的校驗規(guī)則,甚至是插入數據庫操作等册舞,然后一鍵即可獲得測試報告蕴掏。
腳本模式中,編寫幾行代碼即可發(fā)起測試调鲸,且支持從 API 文檔自動生成測試腳本盛杰!
我們可以選擇多個測試用例,一鍵批量測試并得到測試報告藐石。
通過更多方式觸發(fā) API 自動化測試
API Studio 中提供了多種自動化測試的觸發(fā)方式:
1. Open API 觸發(fā)即供,可對接到Jenkins 等持續(xù)開發(fā)平臺中;
2. 定時觸發(fā)贯钩;
3. 手動觸發(fā)募狂;
靈活運用即可打造一個屬于您的測試效率神器!
05. 更多關于eolink的API 解決方案
疫情的肆虐讓無數的企業(yè)經營受阻角雷,以上是eolink 結合自身長期的遠程研發(fā)協(xié)作經驗祸穷,為企業(yè)推出 API 管理遠程協(xié)作指南,以下方案不僅在 eolink 內部勺三,也在眾多客戶中得到驗證雷滚,希望能夠幫助您快速了解如何將 API 管理與自動化測試運用在實際的遠程辦公中。
我們希望用這套理論和產品吗坚,幫助更多企業(yè)從傳統(tǒng)祈远、低效的開發(fā)方式中解脫出來,也祝愿承載著中國夢的廣大開發(fā)者和企業(yè)商源,能夠攜手一同渡過這個難關车份,eolink將一直與各位同在!
圖中所使用的的接口管理工具是eolink牡彻,感興趣可以自行使用:www.eolink.com