1,、前言虛竹哥從事后端開發(fā),平時(shí)寫的后端接口,是以swagger生成API接口文檔,提供給前端調(diào)用,與前端交互的文檔;然后用Postman 自測(cè)接口,有些性能要求的接口會(huì)用JMeter 進(jìn)行接口性能測(cè)試,。有時(shí)開發(fā)前端時(shí),要Mock一些數(shù)據(jù),會(huì)用Mock.js來(lái)處理。從事后端工作不容易,要掌握多種工具來(lái)配合日常的工作,。 這些軟件在使用上,存在一些問(wèn)題: 維護(hù)不同工具之間數(shù)據(jù)一致性非常困難、低效,。并且這里不僅僅是工作量的問(wèn)題,更大的問(wèn)題是多個(gè)系統(tǒng)之間數(shù)據(jù)不一致,導(dǎo)致協(xié)作低效,、頻繁出問(wèn)題,開發(fā)測(cè)試人員痛苦不堪。
后來(lái)公司的技術(shù)總監(jiān)在公司推行Apifox :集 API 文檔,、API 調(diào)試、API Mock,、API 自動(dòng)化測(cè)試一體化協(xié)作平臺(tái),。 我對(duì)這款Apifox 有了一定的了解,跟大家分享分享。 2,、Apifox介紹2.1,、Apifox是什么Apifox 是 API 文檔、API 調(diào)試,、API Mock,、API 自動(dòng)化測(cè)試一體化協(xié)作平臺(tái),定位 Postman + Swagger + Mock + JMeter。通過(guò)一套系統(tǒng)、一份數(shù)據(jù),解決多個(gè)系統(tǒng)之間的數(shù)據(jù)同步問(wèn)題,。只要定義好 API 文檔,API 調(diào)試,、API 數(shù)據(jù) Mock、API 自動(dòng)化測(cè)試就可以直接使用,無(wú)需再次定義;API 文檔和 API 開發(fā)調(diào)試使用同一個(gè)工具,API 調(diào)試完成后即可保證和 API 文檔定義完全一致,。高效,、及時(shí)、準(zhǔn)確! 2.2,、Apifox如何解決痛點(diǎn)問(wèn)題2.2.1,、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í)寫好 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è)試更多功能還在開發(fā)中,敬請(qǐng)期待!目標(biāo)是: JMeter 有的功能基本都會(huì)有,并且要更好用。 快捷請(qǐng)求:類似 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è)的需求,。 2.2.2,、Apifox 做的不僅僅是數(shù)據(jù)打通如果你認(rèn)為 Apifox 只做了數(shù)據(jù)打通,來(lái)提升研發(fā)團(tuán)隊(duì)的效率,那就錯(cuò)了。Apifox 還做了非常多的創(chuàng)新,來(lái)提升開發(fā)人員的效率,。 2.2.2.1,、接口支持“用例管理” 通常一個(gè)接口會(huì)有多種情況用例,比如 2.2.2.2,、“數(shù)據(jù)模型”定義、引用 可以獨(dú)立定義數(shù)據(jù)模型,接口定義時(shí)可以直接引用數(shù)據(jù)模型,數(shù)據(jù)模型之間也可以相互引用,。同樣的數(shù)據(jù)結(jié)構(gòu),只需要定義一次即可多處使用;修改的時(shí)候只需要修改一處,多處實(shí)時(shí)更新,避免不一致,。 2.2.2.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)寫斷言腳本檢測(cè),非常高效! 2.2.2.4,、“可視化”設(shè)置斷言 設(shè)置斷言: 運(yùn)行后,查看斷言結(jié)果: 2.2.2.5,、“可視化”設(shè)置提取變量 2.2.2.6、支持?jǐn)?shù)據(jù)庫(kù)操作 2.2.2.7,、“零配置”Mock 出非常人性化的數(shù)據(jù) 先放一張圖對(duì)比下 Apifox 和其他同類工具 可以看出 Apifox 2.2.3、 Apifox 如何做到
|
|