大家好,我是小 G,。 作為軟件開(kāi)發(fā)從業(yè)者,,API 調(diào)試是必不可少的一項(xiàng)技能,在這方面 Postman 做的非常出色,。 但是在整個(gè)軟件開(kāi)發(fā)過(guò)程中,,API 調(diào)試只是其中的一部分,還有很多事情 Postman 無(wú)法完成,,或者無(wú)法高效完成 ,,比如:API 文檔定義、API Mock,、API 自動(dòng)化測(cè)試等等,。Apifox 就是為了解決這個(gè)問(wèn)題而生的。 接口管理現(xiàn)狀一、常用解決方案使用 Swagger 管理 API 文檔 使用 Postman 調(diào)試 API 使用 mockjs 等工具 Mock API 數(shù)據(jù) 使用 JMeter 做 API 自動(dòng)化測(cè)試
二,、存在的問(wèn)題維護(hù)不同工具之間數(shù)據(jù)一致性非常困難,、低效。并且這里不僅僅是工作量的問(wèn)題,,更大的問(wèn)題是多個(gè)系統(tǒng)之間數(shù)據(jù)不一致,,導(dǎo)致協(xié)作低效、頻繁出問(wèn)題,,開(kāi)發(fā)測(cè)試人員痛苦不堪。 開(kāi)發(fā)人員在 Swagger 定義好文檔后,,接口調(diào)試的時(shí)候還需要去 Postman 再定義一遍,。 前端開(kāi)發(fā) Mock 數(shù)據(jù)的時(shí)候又要去 mockjs 定義一遍,還需要手動(dòng)設(shè)置 Mock 規(guī)則,。 測(cè)試人員需要去 JMeter 再定義一遍,。 前端根據(jù) mockjs Mock 出來(lái)的數(shù)據(jù)開(kāi)發(fā)完,后端根據(jù) Swagger 定義的接口文檔開(kāi)發(fā)完,,各自都試測(cè)試通過(guò)了,,本以為可以馬上上線,結(jié)果一對(duì)接發(fā)現(xiàn)各種問(wèn)題: 開(kāi)發(fā)過(guò)程中接口變更了,,只修改了 Swagger,,但是沒(méi)有及時(shí)同步修改 mockjs。 后端開(kāi)發(fā)的接口數(shù)據(jù)類型和文檔不一致,,肉眼難以發(fā)現(xiàn)問(wèn)題,。
同樣,測(cè)試在 JMeter 寫(xiě)好的測(cè)試用例,,真正運(yùn)行的時(shí)候也會(huì)發(fā)現(xiàn)各種不一致,。 時(shí)間久了,各種不一致會(huì)越來(lái)越嚴(yán)重,。
Apifox 解決方案
一,、如何解決這些問(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 宗旨節(jié)省研發(fā)團(tuán)隊(duì)的每一分鐘! 3,、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)試:類似 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)限 管理,,滿足各類企業(yè)的需求。
二、Apifox 做的不僅僅是數(shù)據(jù)打通如果你認(rèn)為 Apifox 只做了數(shù)據(jù)打通,,來(lái)提升研發(fā)團(tuán)隊(duì)的效率,,那就錯(cuò)了。Apifox 還做了非常多的創(chuàng)新,,來(lái)提升開(kāi)發(fā)人員的效率,。 1、接口支持“用例管理”通常一個(gè)接口會(huì)有多種情況用例,,比如 正確用例 參數(shù)錯(cuò)誤用例 數(shù)據(jù)為空用例 不同數(shù)據(jù)狀態(tài)用例 ,。定義接口的時(shí)候定義好這些不同狀態(tài)的用例,接口調(diào)試的時(shí)候直接運(yùn)行,,非常高效,。 2、“數(shù)據(jù)模型”定義,、引用可以獨(dú)立定義數(shù)據(jù)模型,,接口定義時(shí)可以直接引用數(shù)據(jù)模型,數(shù)據(jù)模型之間也可以相互引用,。同樣的數(shù)據(jù)結(jié)構(gòu),,只需要定義一次即可多處使用;修改的時(shí)候只需要修改一處,,多處實(shí)時(shí)更新,,避免不一致。 3,、調(diào)試時(shí)“自動(dòng)校驗(yàn)”數(shù)據(jù)結(jié)構(gòu)使用 Apifox 調(diào)試接口的時(shí)候,,系統(tǒng)會(huì)根據(jù)接口文檔里的定義,自動(dòng)校驗(yàn)返回的數(shù)據(jù)結(jié)構(gòu)是否正確,,無(wú)需通過(guò)肉眼識(shí)別,,也無(wú)需手動(dòng)寫(xiě)斷言腳本檢測(cè),非常高效,!
4,、“可視化”設(shè)置斷言設(shè)置斷言:
運(yùn)行后,查看斷言結(jié)果:
5,、“可視化”設(shè)置提取變量
6,、支持?jǐn)?shù)據(jù)庫(kù)操作
7、“零配置”Mock 出非常人性化的數(shù)據(jù)先放一張圖對(duì)比下 Apifox 和其他同類工具 零配置 mock 出來(lái)的數(shù)據(jù)效果:
可以看出 Apifox 零配置 Mock 出來(lái)的數(shù)據(jù)和真實(shí)情況是非常接近的,,前端開(kāi)發(fā)可以直接使用,,而無(wú)需再手動(dòng)寫(xiě) mock 規(guī)則。 Apifox 如何做到高效率 ,、零配置 生成非常人性化的 mock 數(shù)據(jù) Apifox 根據(jù)接口定義里的數(shù)據(jù)結(jié)構(gòu),、數(shù)據(jù)類型,,自動(dòng)生成 mock 規(guī)則。 Apifox 內(nèi)置智能 mock 規(guī)則庫(kù),,根據(jù)字段名,、字段數(shù)據(jù)類型,智能優(yōu)化自動(dòng)生成的 mock 規(guī)則,。如:名稱包含字符串image 的string 類型字段,,自動(dòng) mock 出一個(gè)圖片地址 URL;包含字符串time 的string 類型字段,,自動(dòng) mock 出一個(gè)時(shí)間字符串,;包含字符串city 的string 類型字段,自動(dòng) mock 出一個(gè)城市名,。 Apifox 根據(jù)內(nèi)置規(guī)則,,可自動(dòng)識(shí)別出圖片、頭像,、用戶名,、手機(jī)號(hào)、網(wǎng)址,、日期,、時(shí)間、時(shí)間戳,、郵箱,、省份,、城市、地址、IP 等字段,,從而 Mock 出非常人性化的數(shù)據(jù),。 除了內(nèi)置 mock 規(guī)則,用戶還可以自定義規(guī)則庫(kù),,滿足各種個(gè)性化需求,。支持使用 正則表達(dá)式 、通配符 來(lái)匹配字段名自定義 mock 規(guī)則,。
8,、生成在線接口文檔Apifox 項(xiàng)目可“在線分享” API 文檔,分享出去的 API 文檔可設(shè)置為公開(kāi)或需要密碼訪問(wèn),,非常方便與外部團(tuán)隊(duì)協(xié)作,。 體驗(yàn)地址:https://www./apidoc/shared-ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285
9、代碼自動(dòng)生成根據(jù)接口模型定義,,自動(dòng)生成各種語(yǔ)言/框架(如 TypeScript,、Java,、Go、Swift,、ObjectiveC,、Kotlin、Dart,、C++,、C#、Rust 等)的業(yè)務(wù)代碼(如 Model,、Controller,、單元測(cè)試代碼等)和接口請(qǐng)求代碼。目前 Apifox 支持 130 種語(yǔ)言及框架的代碼自動(dòng)生成,。 更重要的是:你可以通過(guò)自定義代碼模板 來(lái)生成符合自己團(tuán)隊(duì)的架構(gòu)規(guī)范的代碼,,滿足各種個(gè)性化的需求。 10,、導(dǎo)入,、導(dǎo)出支持導(dǎo)出 OpenApi (Swagger) 、Markdown ,、Html 等數(shù)據(jù)格式,,因?yàn)榭梢詫?dǎo)出OpenApi 格式數(shù)據(jù),所以你可以利用 OpenApi (Swagger) 豐富的生態(tài)工具完成各種接口相關(guān)的事情,。 支持導(dǎo)入 OpenApi (Swagger) ,、Postman 、apiDoc ,、HAR ,、RAML 、RAP2 ,、YApi ,、Eolinker 、NEI ,、DOClever ,、ApiPost 、Apizza ,、ShowDoc ,、API Blueprint 、I/O Docs ,、WADL ,、Google Discovery 等數(shù)據(jù)格式,方便舊項(xiàng)目遷移,。 支持定時(shí)自動(dòng) 導(dǎo)入OpenApi (Swagger) ,、apiDoc ,、Apifox 格式數(shù)據(jù)。
三,、后續(xù)功能規(guī)劃發(fā)布 Apifox WEB 版,,支持在瀏覽器端使用 Apifox。 接口性能測(cè)試支持(類似 JMeter),。 支持插件市場(chǎng),,可以自己開(kāi)發(fā)插件。 開(kāi)放 Apifox API,,允許開(kāi)發(fā)者通過(guò) API 調(diào)用 Apifox 的功能,。 支持更多接口協(xié)議,如GraphQL ,、gRPC ,、websocket 等。 支持離線使用,,項(xiàng)目可選擇在線同步(團(tuán)隊(duì)協(xié)作)還是僅本地存儲(chǔ)(單機(jī)離線使用),。
四、更多 Apifox 功能截圖
五,、 Apifox 交流群掃二維碼加微信,,拉你進(jìn)官方微信群,各種使用過(guò)程中的疑問(wèn),,官方工作人員貼心為你解答::
六,、 Apifox 下載地址
|