在項目開發
測試中,接口文檔是貫穿始終的。先後端開發須要在開發前期進行接口定義並造成文檔,QA在
功能測試和
接口測試的環節也須要依賴於這些接口文檔進行測試。接口文檔每每以最簡單的靜態文檔的形態存在。然而在緊張的敏捷開發模式下,隨着版本迭代,不少接口發生了變化或者被廢棄,而開發幾乎不會在後期去更新這種靜態文檔。QA人員閱讀「過時」的接口文檔是一件痛苦的事情,與開發的溝通成本不降反升。而這些不便於及時維護的靜態文檔,隨着時間的推移最終無人問津。所以,咱們想要找到一種長期可維護且輕量便捷的接口文檔工具。
Postman
Postman是被你們所熟知的網頁調試Chrome插件,咱們經常用它來進行臨時的http請求調試。幸運的是,Postman能夠將調試過的請求保存到Collection中。造成的Collection就能夠做爲一份簡單有效且支持在線測試的接口文檔,使用同一帳號登陸就能夠作到分享和同步。對QA來講,使用Postman進行接口測試和接口文檔維護是同一件事情,測試即文檔,維護成本也很低。
Swagger
「Swagger是一個規範和完整的框架,用於生成、描述、調用和可視化RESTful風格的
Web服務。」簡單來講,Swagger是一個功能強大的接口管理工具,而且提供了多種編程語言的先後端分離解決方案。Swagger主要包含了如下4個部分:
1. Swagger能夠直接嵌入項目中,經過開發時編寫註釋,自動生成接口文檔;
2. Swagger包含了Swagger Editor,它是使用yaml語言的Swagger API的編輯器,支持導出yaml和json格式的接口文件;
3. Swagger包含了Swagger UI,它將Swagger Editor編輯好的接口文檔以html的形式展現出來;
4. 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數據的工具等。
RAP的本地搭建過程以下:
1. 本地服務準備:Tomcat、Redis、Mysql;
2. Github上下載RAP最新的war包,部署war包到Tomcat/webapps/ROOT目錄下;
3. 修改
數據庫配置文件:ROOT/WEB-INF/classes/config.properties,修改成本地數據庫的鏈接信息;
4. 數據庫初始化:在本地數據庫上執行ROOT\WEB-INF\classes\database中的initialize.sql;
5. 開啓tomcat、redis、mysql服務,瀏覽器訪問http://localhost:8080/。
總結
Postman是一個測試向的API小工具,能夠很是輕量地維護一份「測試
記錄」,適合小的測試團隊本身使用並維護。Swagger豐富且獨立的各個功能使得它能夠被應用在各類需求下,不管是開發仍是測試均可以使用這個工具,來優化本身的開發過程,進行接口文檔維護、接口測試等;但Swagger的學習和接入成本相對較高,須要開發與測試的深刻配合。RAP的應用範圍很是明確,是一個面向開發人員自測和聯調的工具性平臺,它更適合以開發爲核心對接口進行維護,供測試人員參考。