apifox支持快速的API文檔處理、API 調(diào)試、API Mock以及API自動(dòng)化測(cè)試,接口調(diào)試工作效率高,能夠在編輯設(shè)計(jì)的時(shí)候及時(shí)發(fā)現(xiàn)問(wèn)題并讓程序編程師進(jìn)行修改,整合多復(fù)合數(shù)據(jù)結(jié)構(gòu),多api設(shè)計(jì)功能于一體,操作安全、穩(wěn)定且流暢,是很多程序員朋友們常備的api管理調(diào)試工具。
這是一款接口調(diào)試工具,方便用戶對(duì)API進(jìn)行測(cè)試,支持可視化接口管理,接口調(diào)試,自動(dòng)校驗(yàn)數(shù)據(jù)結(jié)構(gòu),自動(dòng)化測(cè)試等功能,讓用戶在開(kāi)發(fā)過(guò)程中更方便快捷的對(duì)接口進(jìn)行測(cè)試。支持?jǐn)?shù)據(jù)結(jié)構(gòu)(JSON Schema)管理,多接口可復(fù)用相同數(shù)據(jù)結(jié)構(gòu),還支持如環(huán)境變量、預(yù)執(zhí)行腳本、后執(zhí)行腳本、Cookie/Session 全局共享等功能。
API 文檔設(shè)計(jì)
可視化 API 文檔管理,零學(xué)習(xí)成本。
支持?jǐn)?shù)據(jù)模型,接口之間可以復(fù)用相同數(shù)據(jù)結(jié)構(gòu)。
接口文檔完全遵循 OpenAPI(Swagger) 規(guī)范。
支持在線分享 API 文檔,方便與外部團(tuán)隊(duì)協(xié)作。
API 調(diào)試
Postman 有的功能 Apifox 都有(如環(huán)境變量、前置/后置腳本、Cookie/Session 全局共享等),并且比 Postman 更高效好用。
自動(dòng)校驗(yàn)數(shù)據(jù)結(jié)構(gòu):校驗(yàn)返回的數(shù)據(jù)結(jié)構(gòu)是否符合文檔定義,自動(dòng)發(fā)現(xiàn)接口數(shù)據(jù)異常。
可視化的斷言、提取變量、數(shù)據(jù)庫(kù)(sql)操作等功能。
支持接口用例功能(一個(gè)接口多個(gè)用例)。
API 自動(dòng)化測(cè)試
完善的 API 場(chǎng)景測(cè)試(流程測(cè)試)功能,保證接口數(shù)據(jù)的正確性。
可視化的斷言、提取變量、數(shù)據(jù)庫(kù)(SQL)操作等功能。
支持自定義前置/后置腳本,自動(dòng)校驗(yàn)數(shù)據(jù)正確性。腳本語(yǔ)法 100% 兼容 Postman,降低學(xué)習(xí)成本。
支持調(diào)用 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等語(yǔ)言代碼。
API 數(shù)據(jù) Mock
零配置即可 mock 出非常人性化的數(shù)據(jù)(根據(jù) API 文檔智能 mock)。
內(nèi)置 Mock.js 規(guī)則引擎,非常方便 mock 出各種數(shù)據(jù),并支持定義數(shù)據(jù)結(jié)構(gòu)時(shí)設(shè)置 mock 規(guī)則。
支持根據(jù)不同參數(shù)值返回不同數(shù)據(jù)內(nèi)容。
CI 持續(xù)集成
支持命令行方式運(yùn)行 API 測(cè)試 (Apifox CLI)。
支持集成 Jenkins 等持續(xù)集成工具。
數(shù)據(jù)庫(kù)操作
支持讀取數(shù)據(jù)庫(kù)數(shù)據(jù),作為 API 請(qǐng)求參數(shù)使用。
支持讀取數(shù)據(jù)庫(kù)數(shù)據(jù),用來(lái)校驗(yàn)(斷言) API 請(qǐng)求是否成功。
自動(dòng)生成代碼
根據(jù)接口/模型定義,自動(dòng)生成各種語(yǔ)言/框架的業(yè)務(wù)代碼和 API 請(qǐng)求代碼。
支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 種語(yǔ)言及框架。
支持自定義代碼模板,自動(dòng)生成符合自己團(tuán)隊(duì)的架構(gòu)規(guī)范的代碼,滿足各種個(gè)性化的需求。
支持 HTTP、TCP、RPC
支持 HTTP(s) 接口管理。
支持 Socket (TCP) 接口管理。
后續(xù)將會(huì)支持 GraphQL、Dubbo、gRPC、WebSocket 等協(xié)議接口。
數(shù)據(jù)導(dǎo)入/導(dǎo)出
支持導(dǎo)出 OpenAPI (Swagger)、Markdown、Html 等數(shù)據(jù)格式。
支持導(dǎo)入 OpenAPI (Swagger)、Postman、HAR、RAP2、JMeter、YApi、Eolinker、NEI、RAML、DOClever 、Apizza 、DOCWAY、ShowDoc、apiDoc、I/O Docs、WADL、Google Discovery 等數(shù)據(jù)格式。
團(tuán)隊(duì)協(xié)作
接口數(shù)據(jù)云端同步,實(shí)時(shí)更新。
成熟的團(tuán)隊(duì)/項(xiàng)目權(quán)限管理,支持管理員、普通成員、只讀成員等角色設(shè)置,滿足各類(lèi)企業(yè)的需求。
#一、如何解決這些問(wèn)題
#1、Apifox 定位
Apifox = Postman + Swagger + Mock + JMeter
Apifox 是 API 文檔、API 調(diào)試、API Mock、API 自動(dòng)化測(cè)試一體化協(xié)作平臺(tái)。
通過(guò)一套系統(tǒng)、一份數(shù)據(jù),解決多個(gè)系統(tǒng)之間的數(shù)據(jù)同步問(wèn)題。只要定義好接口文檔,接口調(diào)試、數(shù)據(jù) Mock、接口測(cè)試就可以直接使用,無(wú)需再次定義;接口文檔和接口開(kāi)發(fā)調(diào)試使用同一個(gè)工具,接口調(diào)試完成后即可保證和接口文檔定義完全一致。高效、及時(shí)、準(zhǔn)確!
#2、Apifox 功能
接口設(shè)計(jì):Apifox 接口文檔遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 規(guī)范的同時(shí),提供了非常好用的可視化文檔管理功能,零學(xué)習(xí)成本,非常高效。并且支持在線分享接口文檔。
數(shù)據(jù)模型:可復(fù)用的數(shù)據(jù)結(jié)構(gòu),定義接口返回?cái)?shù)據(jù)結(jié)構(gòu)及請(qǐng)求參數(shù)數(shù)據(jù)結(jié)構(gòu)(僅 JSON 和 XML 模式)時(shí)可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能導(dǎo)入,支持 oneOf、allOf 等高級(jí)組合模式。
接口調(diào)試:Postman 有的功能,比如環(huán)境變量、前置/后置腳本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口運(yùn)行完之后點(diǎn)擊保存為用例按鈕,即可生成接口用例,后續(xù)可直接運(yùn)行接口用例,無(wú)需再輸入?yún)?shù),非常方便。自定義腳本 100% 兼容 Postman 語(yǔ)法,并且支持運(yùn)行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各種語(yǔ)言代碼。
接口用例:通常一個(gè)接口會(huì)有多種情況用例,比如參數(shù)正確用例、參數(shù)錯(cuò)誤用例、數(shù)據(jù)為空用例、不同數(shù)據(jù)狀態(tài)用例等等。運(yùn)行接口用例時(shí)會(huì)自動(dòng)校驗(yàn)數(shù)據(jù)正確性,用接口用例來(lái)調(diào)試接口非常高效。
接口數(shù)據(jù) Mock:內(nèi)置 Mock.js 規(guī)則引擎,非常方便 mock 出各種數(shù)據(jù),并且可以在定義數(shù)據(jù)結(jié)構(gòu)的同時(shí)寫(xiě)好 mock 規(guī)則。支持添加“期望”,根據(jù)請(qǐng)求參數(shù)返回不同 mock 數(shù)據(jù)。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的數(shù)據(jù),具體在本文后面介紹。
數(shù)據(jù)庫(kù)操作:支持讀取數(shù)據(jù)庫(kù)數(shù)據(jù),作為接口請(qǐng)求參數(shù)使用。支持讀取數(shù)據(jù)庫(kù)數(shù)據(jù),用來(lái)校驗(yàn)(斷言)接口請(qǐng)求是否成功。
接口自動(dòng)化測(cè)試:提供接口集合測(cè)試,可以通過(guò)選擇接口(或接口用例)快速創(chuàng)建測(cè)試集。目前接口自動(dòng)化測(cè)試更多功能還在開(kāi)發(fā)中,敬請(qǐng)期待!目標(biāo)是: JMeter 有的功能基本都會(huì)有,并且要更好用。
快捷調(diào)試:類(lèi)似 Postman 的接口調(diào)試方式,主要用途為臨時(shí)調(diào)試一些無(wú)需文檔化的接口,無(wú)需提前定義接口即可快速調(diào)試。
代碼生成:根據(jù)接口及數(shù)據(jù)數(shù)據(jù)模型定義,系統(tǒng)自動(dòng)生成接口請(qǐng)求代碼、前端業(yè)務(wù)代碼及后端業(yè)務(wù)代碼。
團(tuán)隊(duì)協(xié)作:Apifox 天生就是為團(tuán)隊(duì)協(xié)作而生的,接口云端實(shí)時(shí)同步更新,成熟的團(tuán)隊(duì)/項(xiàng)目/成員權(quán)限管理,滿足各類(lèi)企業(yè)的需求。
#1. Apifox 是否收費(fèi)?
Apifox 公網(wǎng)版 (SaaS版) 免費(fèi),私有化部署版收費(fèi)。
#2. 登錄(Auth)態(tài)如何實(shí)現(xiàn)?
請(qǐng)參考文檔:登錄態(tài)(Auth)如何處理
#3. 接口發(fā)送請(qǐng)求前需要調(diào)用登錄接口獲取 token 放在 header,如何實(shí)現(xiàn)?
請(qǐng)參考文檔:登錄態(tài)(Auth)如何處理
#4. B 接口請(qǐng)求參數(shù)依賴于 A 接口返回的數(shù)據(jù),如何實(shí)現(xiàn)?
請(qǐng)參考文檔:接口之間如何傳遞數(shù)據(jù)
#5. 同項(xiàng)目下有不同域名的接口,如何處理?
方案一:在環(huán)境里新增多個(gè)服務(wù),分別設(shè)置不同的前置 URL ,接口分組和接口維度可以指定對(duì)應(yīng)的前置 URL。推薦本方案!
方案二:把域名設(shè)置成環(huán)境變量如DOMAIN_1,接口路徑這樣填寫(xiě):https:///users。接口路徑是以http://或https://起始的,系統(tǒng)會(huì)自動(dòng)忽略里環(huán)境里前置 URL。
方案三:給不同域名接口設(shè)置不同環(huán)境,通過(guò)切換環(huán)境來(lái)運(yùn)行不同域名下的接口。不推薦本方案!
#6. 腳本如何讀取或修改接口請(qǐng)求信息?
請(qǐng)參考文檔: 腳本讀取/修改接口請(qǐng)求信息
#7. 是否支持查詢數(shù)據(jù)庫(kù)字段作為參數(shù)傳給接口?
支持,請(qǐng)參考文檔:數(shù)據(jù)庫(kù)操作
#8. 數(shù)據(jù)是存儲(chǔ)在本地還是云端?可否離線使用?可否私有化部署?
目前 Apifox 有 Saas 版 和私有化部署版 。
Saas 版 是免費(fèi)的,數(shù)據(jù)都是存在云端的,需要聯(lián)網(wǎng)才能使用。
私有化部署版 是收費(fèi)的,數(shù)據(jù)存在使用者企業(yè)內(nèi)部,不連外網(wǎng)也可以使用。
注意
環(huán)境變量/全局變量里的 本地值 僅存放在本地,不會(huì)同步到云端,團(tuán)隊(duì)成員之間也不會(huì)相互同步,適合存放token、賬號(hào)、密碼之類(lèi)的敏感數(shù)據(jù)。
#9. 使用 Postman 調(diào)用接口返回正常,而 Apifox 返回錯(cuò)誤
解決方法:對(duì)比 postman 和 apifox 實(shí)際發(fā)出的請(qǐng)求內(nèi)容(url、參數(shù)、body、header)是否完全一樣。
查看實(shí)際請(qǐng)求內(nèi)容方法:
Apifox:返回內(nèi)容下的實(shí)際請(qǐng)求 tab (老版本為Request tab) 里查看
Postman:點(diǎn)擊底部狀態(tài)欄里的Console查看
#10. 為什么修改了環(huán)境變量(或全局變量)值,而引用的地方?jīng)]有生效?
請(qǐng)檢查環(huán)境變量、全局變量、臨時(shí)變量里是不是有多個(gè)地方定義了相同名稱的變量,如果有,系統(tǒng)會(huì)根據(jù)優(yōu)先級(jí)來(lái)取值。優(yōu)先級(jí)順序如下:臨時(shí)變量>環(huán)境變量>全局變量。
請(qǐng)檢查修改的是否是本地值,環(huán)境變量(或全局變量)僅讀取本地值,而不會(huì)讀取遠(yuǎn)程值。
維護(hù)不同工具之間數(shù)據(jù)一致性非常困難、非常低效。并且這里不僅僅是工作量的問(wèn)題,更大的問(wèn)題是多個(gè)系統(tǒng)之間數(shù)據(jù)不一致,導(dǎo)致協(xié)作低效,頻繁出問(wèn)題,開(kāi)發(fā)人員痛苦不堪。
開(kāi)發(fā)人員在 Swagger 定義好文檔后,接口調(diào)試的時(shí)候還需要去 Postman 再定義一遍。
前端開(kāi)發(fā) Mock 數(shù)據(jù)的時(shí)候又要去 RAP 定義一遍,手動(dòng)設(shè)置好 Mock 規(guī)則。
測(cè)試人員需要去 JMeter 定義一遍。
前端根據(jù) RAP Mock 出來(lái)的數(shù)據(jù)開(kāi)發(fā)完,后端根據(jù) Swagger 定義的接口文檔開(kāi)發(fā)完,各自測(cè)試測(cè)試通過(guò)了,本以為可以馬上上線,結(jié)果一對(duì)接發(fā)現(xiàn)各種問(wèn)題:原來(lái)開(kāi)發(fā)過(guò)程中接口變更,只修改了 Swagger,但是沒(méi)有及時(shí)同步修改 RAP。
同樣,測(cè)試在 JMeter 寫(xiě)好的測(cè)試用例,真正運(yùn)行的時(shí)候也會(huì)發(fā)現(xiàn)各種不一致。
時(shí)間久了,各種不一致會(huì)越來(lái)越嚴(yán)重。
MD5:73e5ccd6d48bbda4f46bc383044d985e
大?。?66.00M / 版本:v1.4.21 64&32位官方免費(fèi)版
大小:53.35M / 版本:v1.4.21 64&32位官方免費(fèi)版
大小:78.17M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?.84M / 版本:v1.4.21 64&32位官方免費(fèi)版
大小:34.58M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?.03M / 版本:v1.4.21 64&32位官方免費(fèi)版
大小:891.00M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?0.40M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?6.56M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?27.69M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?66.78M / 版本:v1.4.21 64&32位官方免費(fèi)版
大?。?.48M / 版本:v1.4.21 64&32位官方免費(fèi)版