Apifox干貨純享丨20分鐘搞定接口管理、開發(fā)、測試全流程!
一. Apifox簡介
Apifox?是?API?文檔、API 調(diào)試、API Mock、API 自動化測試一體化協(xié)作平臺。
功能定位 Postman + Swagger + Mock + JMeter。
Apifox主要用于接口管理、開發(fā)、測試全流程集成工具,使用受眾為整個研發(fā)技術(shù)團隊,主要使用者為前端開發(fā)、后端開發(fā)和測試人員。而且公網(wǎng)SaaS版本完全免費。

二. 背景需求
1、概述
目前市面上很多團隊都有前端后端測試三個崗位,當一個團隊在開始開發(fā)一個項目前,前端與后端需要提前約定好接口,一般會安排一名開發(fā)工程師去編寫一個API文檔,通常會使用Swagger,此時后端會根據(jù)API文檔去編寫接口,而調(diào)試的時候則需要通過先前的文檔再到Postman里面重新定義。
與此同時,在后端把接口做出來之前,前端如果想要提前開始開發(fā)的話,他又需要提前去Mock數(shù)據(jù),他又要重新在Mock.js里寫一遍接口定義。
測試則需要按照文檔去Jmeter中去編寫測試用例。而且在開發(fā)過程中也常會出現(xiàn)接口變更,此時還要同時改變Swagger、Postman、Mock、Jmeter里的定義,或者前后端聯(lián)調(diào)的時候也常常會出現(xiàn)前后端數(shù)據(jù)類型不同的情況,而測試在最終對接口測試的時候也可能會出現(xiàn)實際返回值與文檔不一致。整個開發(fā)團隊的協(xié)同因此非常低效。

既然整個開發(fā)團隊都是圍繞API進行開發(fā),但是現(xiàn)在的開發(fā)工作被分散在不同的開發(fā)工具上,Apifox的開發(fā)人員為解決上述痛點,因此便推出了Apifox
Apifox支持團隊開發(fā),開發(fā)團隊可以同時工作,當API定義人員在Apifox上定義接口后,會實時同步給所有的團隊成員。
同時Apifox還提供了更豐富的基于API的開發(fā)包

2、解決的問題
一套系統(tǒng)、一份數(shù)據(jù),解決多個系統(tǒng)之間的數(shù)據(jù)同步問題。
只要定義好接口文檔,接口調(diào)試、數(shù)據(jù) Mock、接口測試即可直接使用,無需再次定義。
接口文檔和接口開發(fā)調(diào)試使用同一個工具,接口調(diào)試完成后即可保證和接口文檔定義完全一致。
高效、及時、準確!
3、最佳實踐
前端(或后端):在?Apifox?上定好接口文檔初稿。
前后端:一起評審、完善接口文檔,定好接口用例。
前端:使用系統(tǒng)根據(jù)接口文檔自動生成的 Mock 數(shù)據(jù)進入開發(fā),無需手寫 mock 規(guī)則。
后端:使用接口用例 調(diào)試開發(fā)中接口,只要所有接口用例調(diào)試通過,接口就開發(fā)完成了。如開發(fā)過中接口有變化,調(diào)試的時候就自動更新了文檔,零成本的保障了接口維護的及時性。
后端:每次調(diào)試完一個功能就保存為一個接口用例。
測試人員:直接使用接口用例測試接口。
所有接口開發(fā)完成后,測試人員(也可以是后端)使用集合測試功能進行多接口集成測試,完整測試整個接口調(diào)用流程。
前后端都開發(fā)完,前端從Mock 數(shù)據(jù)切換到正式數(shù)據(jù),聯(lián)調(diào)通常都會非常順利,因為前后端雙方都完全遵守了接口定義的規(guī)范。
4、功能介紹
(1)接口設(shè)計:Apifox 接口文檔遵循OpenApi3.0 (原 Swagger)、JSON Schema規(guī)范的同時,提供了非常好用的可視化文檔管理功能,零學習成本,非常高效。并且支持在線分享接口文檔。
(2)數(shù)據(jù)模型:可復用的數(shù)據(jù)結(jié)構(gòu),定義接口返回數(shù)據(jù)結(jié)構(gòu)及請求參數(shù)數(shù)據(jù)結(jié)構(gòu)(僅 JSON 和 XML 模式)時可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能導入,支持 oneOf、allOf 等高級組合模式。
(3)接口調(diào)試:Postman 有的功能,比如環(huán)境變量、前置/后置腳本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口運行完之后點擊保存為用例按鈕,即可生成接口用例,后續(xù)可直接運行接口用例,無需再輸入?yún)?shù),非常方便。自定義腳本 100% 兼容 Postman 語法,并且支持運行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各種語言代碼。
(4)接口用例:通常一個接口會有多種情況用例,比如參數(shù)正確用例、參數(shù)錯誤用例、數(shù)據(jù)為空用例、不同數(shù)據(jù)狀態(tài)用例等等。運行接口用例時會自動校驗數(shù)據(jù)正確性,用接口用例來調(diào)試接口非常高效。
(5)接口數(shù)據(jù) Mock:內(nèi)置Mock.js規(guī)則引擎,非常方便 mock 出各種數(shù)據(jù),并且可以在定義數(shù)據(jù)結(jié)構(gòu)的同時寫好 mock 規(guī)則。支持添加“期望”,根據(jù)請求參數(shù)返回不同 mock 數(shù)據(jù)。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的數(shù)據(jù),具體在本文后面介紹。
(6)數(shù)據(jù)庫操作:支持讀取數(shù)據(jù)庫數(shù)據(jù),作為接口請求參數(shù)使用。支持讀取數(shù)據(jù)庫數(shù)據(jù),用來校驗(斷言)接口請求是否成功。
(7)接口自動化測試:提供接口集合測試,可以通過選擇接口(或接口用例)快速創(chuàng)建測試集。目前接口自動化測試更多功能還在開發(fā)中,敬請期待!目標是:JMeter 有的功能基本都會有,并且要更好用。
(8)快捷請求:類似 Postman 的接口調(diào)試方式,主要用途為臨時調(diào)試一些無需文檔化的接口,無需提前定義接口即可快速調(diào)試。
(9)代碼生成:根據(jù)接口及數(shù)據(jù)數(shù)據(jù)模型定義,系統(tǒng)自動生成接口請求代碼、前端業(yè)務(wù)代碼及后端業(yè)務(wù)代碼。
(10)團隊協(xié)作:Apifox 天生就是為團隊協(xié)作而生的,接口云端實時同步更新,成熟的團隊/項目/成員權(quán)限管理,滿足各類企業(yè)的需求。
三. 接口文檔設(shè)計
1、接口文檔的設(shè)計
完全可視化
零學習成本
遵循 OpenAPI 規(guī)范

2、數(shù)據(jù)模型
完全可視化
支持模型之間嵌套引用
支持 JSON/XML 智能導入
遵循 JSONSchema 規(guī)范
支持 oneOf、allOf 等高級組合模式

3、生成接口文檔
可通過分享鏈接講接口文檔分享給別人


4、接口用例/接口調(diào)試
一個接口多個用例
自動跟隨接口變更

Postman 有的功能 Apifox 基本都有
環(huán)境變量、全局變量、前置/后置腳本、Cookie/Session 全局共享等…

5、環(huán)境變量/全局參數(shù)


6、自動校驗接口數(shù)據(jù)
根據(jù)數(shù)據(jù)結(jié)構(gòu)自動校驗
完整的 JSONSchema 校驗


7、前置操作/后置操作
針對單個接口

針對整個分組

8、斷言


9、提取變量
可視化
JSONPath 提取


10、數(shù)據(jù)庫操作
讀取數(shù)據(jù)庫數(shù)據(jù)
寫入數(shù)據(jù)庫數(shù)據(jù)

11、自定義腳本
語法 100% 兼容 Postman
支持運行其他任何語言代碼
四. 智能 Mock 數(shù)據(jù)
根據(jù)接口定義里的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型,自動生成 mock 規(guī)則。
內(nèi)置智能 mock 規(guī)則庫,根據(jù)字段名、字段數(shù)據(jù)類型,智能優(yōu)化自動生成的 mock 規(guī)則。
可自動識別出圖片、頭像、用戶名、手機號、網(wǎng)址、日期、時間、時間戳、郵箱、省份、城市、地址、IP 等字段,從而 Mock 出非常人性化的數(shù)據(jù)。
支持自定義規(guī)則庫,滿足各種個性化需求。支持使用 正則表達式、通配符 來匹配字段名自定義 mock 規(guī)則。
1、零配置 Mock 接口數(shù)據(jù)
2、自定義 Mock 規(guī)則
支持 Mock.js 語法
擴展身份證、國內(nèi)手機號等常用規(guī)則
3、高級 Mock
五. 自動化測試
1、自動化測試
2、測試數(shù)據(jù)
六. 其他特性
根據(jù)接口/模型定義,自動生成各種語言/框架的業(yè)務(wù)代碼和接口請求代碼。
支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 種語言及框架。
支持自定義代碼模板,自動生成符合自己團隊的架構(gòu)規(guī)范的代碼,滿足各種個性化的需求。
1、生成業(yè)務(wù)代碼

2、生成接口請求代碼

3、支持 CI/CD
支持命令行方式運行接口測試 (Apifox CLI)。
支持集成 Jenkins 等持續(xù)集成工具。

4、數(shù)據(jù)導入/導出
支持導出 OpenAPI (Swagger)、Markdown、Html 等數(shù)據(jù)式。
支持導入 OpenAPI (Swagger)、Postman、HAR、RAP2、JMeter、YApi、Eolinker、RAML、DOClever、Apizza、DOCWAY、ShowDoc、I/O Docs、WADL、Google Discovery 等數(shù)據(jù)格式。

5、團隊協(xié)作
接口數(shù)據(jù)云端同步,實時更新。
成熟的團隊/項目權(quán)限管理,支持管理員、普通成員、只讀成員等角色設(shè)置,滿足各類企業(yè)的需求。
Apifox官方網(wǎng)站:https://www.apifox.cn/

關(guān)注千鋒教育,一起學習,一起成長