在專案開發測試中,介面文件是貫穿始終的。前後端開發需要在開發前期進行介面定義並形成文件,QA在功能測試和介面測試的環節也需要依賴於這些介面文件進行測試。介面文件往往以最簡單的靜態文件的形態存在。然而在緊張的敏捷開發模式下,隨著版本迭代,很多介面發生了變化或者被廢棄,而開發幾乎不會在後期去更新這種靜態文件。QA人員閱讀“過期”的介面文件是一件痛苦的事情,與開發的溝通成本不降反升。而這些不便於及時維護的靜態文件,隨著時間的推移最終無人問津。因此,我們想要找到一種長期可維護且輕量便捷的介面文件工具。
Postman
Postman是被大家所熟知的網頁除錯Chrome外掛,我們常常用它來進行臨時的http請求除錯。幸運的是,Postman可以將除錯過的請求儲存到Collection中。形成的Collection就可以作為一份簡單有效且支援線上測試的介面文件,使用同一賬號登入就可以做到分享和同步。對QA來說,使用Postman進行介面測試和介面文件維護是同一件事情,測試即文件,維護成本也很低。
Swagger
“Swagger是一個規範和完整的框架,用於生成、描述、呼叫和視覺化RESTful風格的Web服務。”簡單來說,Swagger是一個功能強大的介面管理工具,並且提供了多種程式語言的前後端分離解決方案。Swagger主要包含了以下4個部分:
- Swagger可以直接嵌入專案中,通過開發時編寫註釋,自動生成介面文件;
- Swagger包含了SwaggerEditor,它是使用yaml語言的SwaggerAPI的編輯器,支援匯出yaml和json格式的介面檔案;
- Swagger包含了SwaggerUI,它將SwaggerEditor編輯好的介面文件以html的形式展示出來;
- Swagger支援根據定義的介面匯出各種語言的服務端或客戶端程式碼。
其中1和4是更加面向開發的內容,開發團隊要有自動生成文件的需求,在開發和自測中遵循前後端分離。而2和3是相對可以獨立出來的、可供QA人員參考的介面文件管理方案,也是我們主要關注的部分。
Swagger提供了Swagger Editor和Swagger UI的線上demo,如下圖。可以看出,Swagger可以完整地定義一個介面的內容,包括各個引數、返回值的具體結構、型別,Swagger Editor可以實時進行編輯並線上除錯。編輯好的API可以匯出為json檔案,使用Swagger UI開啟即可以看到更美觀的介面文件。
Swagger Editor和SwaggerUI的本地部署十分簡單,這兩者都可以直接從Github上下載原始碼,將其部署到本地Tomcat伺服器上,然後通過瀏覽器訪問即可。官方還提供了其他幾種部署方式,具體步驟在幫助文件中有詳細說明,這裡不再贅述。
RAP
RAP是阿里的一套完整的視覺化介面管理工具,可以定義介面結構,動態生成模擬資料,校驗真實介面正確性。不僅如此,RAP圍繞介面定義,提供了一系列包括團隊管理、專案管理、文件版本管理、mock外掛等服務。
有關RAP的使用,RAP官網提供了非常詳細的wiki和視訊教程。與Swagger需要使用標記語言編寫不同,RAP可以完全視覺化地定義專案相關資訊,定義介面的請求響應等等,學習成本較低。RAP還為後端開發人員提供了校驗介面的功能,為前端開發人員提供了mock資料的工具等。
DOClever
DOClever是一個視覺化介面管理工具 ,可以分析介面結構,校驗介面正確性, 圍繞介面定義文件,通過一系列自動化工具提升我們的協作效率。DOClever前後端全部採用了javascript來作為開發語言,前端用的是vue+element UI,後端是express+mongodb,這樣的框架整合了高併發,迭代快的特點,保證系統的穩定可靠。
DOClever產品功能如下:
• 可以對介面資訊進行編輯管理,支援 get,post,put,delete,patch 五種方法,支援 https 和 https 協議,並且支援 query,body,json,raw,rest,formdata 的引數視覺化編輯。同時對 json 可以進行無限層次視覺化編輯。並且,狀態碼,程式碼注入,markdown 文件等附加功能應有盡有。
• 介面除錯執行,可以對引數進行加密,從 md5 到 aes 一應俱全,返回引數與模型實時分析對比,給出不一致的地方,找出介面可能出現的問題。如果你不想手寫文件,那麼試試介面的資料生成功能,可以對介面執行的資料一鍵生成文件資訊。
• mock 的無縫整合,DOClever 自己就是一個 mock 伺服器,當你把介面的開發狀態設定成已完成,本地 mock 便會自動請求真實介面資料,否則返回事先定義好的 mock 資料。
• 支援 postman,rap,swagger 的匯入,方便你做無縫遷移,同時也支援 html 檔案的匯出,方便你離線瀏覽!
• 專案版本和介面快照功能並行,你可以為一個專案定義 1.0,1.1,1.2 版本,並且可以自由的在不同版本間切換回滾,再也不怕介面資訊的遺失,同時介面也有快照功能,當你介面開發到一半或者介面需求變更的時候,可以隨時檢視之前編輯的介面資訊。
• 自動化測試功能,目前市面上類似平臺的介面自動化測試大部分都是偽自動化,對於一個複雜的場景,比如獲取驗證碼,登陸,獲取訂單列表,獲取某個特定訂單詳情這樣一個上下文關聯的一系列操作無能為力。而 DOClever 獨創的自動化測試功能,只需要你編寫極少量的 javascript 程式碼便可以在網頁裡完成這樣一系列操作,同時,DOClever 還提供了後臺定時批量執行測試用例並把結果傳送到團隊成員郵箱的功能,你可以及時獲取介面的執行狀態。
• 團隊協作功能,很多類似的平臺這樣的功能是收費的,但是 DOClever 覺得好東西需要共享出來,你可以新建一個團隊,並且把團隊內的成員都拉進來,給他們分組,給他們分配相關的專案以及許可權,釋出團隊公告等等。
DOClever 開源免費,支援內網部署,很多公司考慮到資料的安全性,不願意把介面放到公網上,沒有關係,DOClever 給出一個方便快捷的解決方案,你可以把平臺放到自己的內網上,完全不需要連線外網,同時功能一樣也不少,即便是對於產品的升級,DOClever 也提供了很便捷的升級方案!
官網: doclever.cn
Github: github.com/sx1989827/D…
碼雲: git.oschina.net/sx1989827/S…
文件: doclever.cn/help/help.h…
QQ 群:611940610
總結
Postman是一個測試向的API小工具,可以非常輕量地維護一份“測試記錄”,適合小的測試團隊自己使用並維護。Swagger豐富且獨立的各個功能使得它可以被應用在各種需求下,不論是開發還是測試都可以使用這個工具,來優化自己的開發過程,進行介面文件維護、介面測試等;但Swagger的學習和接入成本相對較高,需要開發與測試的深入配合。RAP的應用範圍非常明確,是一個面向開發人員自測和聯調的工具性平臺,它更適合以開發為核心對介面進行維護,但目前基本不在維護。DOClever是一款功能比較強大的平臺,在國內好評率很高,而且產品完全免費開源,可線下部署;同時產品更新迭代比較頻繁,可以看錯他們也是在用心做這個產品;
以上僅供測試人員參考。