接口管理效率神器Apifox


前言

你是一個測試,你們團隊目前開發模式是前后端分離。

某一天,版本V1.0接口評審完,發布在了swagger上,前后端各自進行開發。此時你根據接口文檔將新接口遷移到JMeter上,然后開始編寫接口測試用例。

過了幾天,前端先提測了APP,怎么測試前端效果呢,💡你想到使用charles抓包,造一些假數據,然后改響應數據。然而界面情況有點多,數據准備起來有點繁瑣。這時前端同學向你介紹了Mock工具Rap,他們把接口放在上面,編寫mock規則,獲得模擬數據進行前端調試。雖然數據也不是很真實,但是類型和結構是對了。

又過幾天,后端終於提測,連接到測試服務器上運行接口用例,有個接口報錯,前端打開價格頁也有些顯示錯亂。你淡定地抓包看數據,查了一下接口文檔,原來是后端返回的字段類型錯了,於是你在jira上提了bug給后端同學,並有理有據粘貼了文檔截圖和抓包截圖。

后端同學過了一會跑過來告訴你,”這個字段有變更,我在Postman調試通過的,忘記改文檔和通知你們啦,麻煩你轉給前端吧。“

后端很無辜,前端很無奈,你心很累,然而只能默默改用例。

又過了一段時間,你發現,有些自動化用例跑不動了,原來是隔了很久,接口的變動有些沒來得及改,腳本的數據跟文檔差異變多,看來還要專門找時間檢查接口的差異。可是剛好有新人入職,還要給他培訓JMeter的用法,看來這周又要加班了😢。

你有沒有想過,這一切的一切都是因為你的團隊沒有用過一個可以同時解決數據同步、調試、Mock、自動化測試的 接口文檔管理工具。咦,你問我是什么神器嗎,那我就告訴你👇

Apifox是最好用的接口文檔工具

什么是Apifox

Apifox是一個集API 文檔管理、接口調試、Mock功能、測試於一體的研發協作平台,簡單來說Apifox 是 Postman + Swagger + Mock + JMeter的有機結合,整合多種接口管理流程,為研發團隊提供一個開箱即用的Api流程管理的可視化工具。

為什么選Apifox

我們常常討論敏捷開發、使用數字化工具實現研發項目流程管理。但是在API管理這一塊卻還處於前、后端、測試各自孤島式管理的境況:

  • 后端開發通過Swagger管理接口文檔,然后通過Postman調試接口
  • 前端開發通過RAP等工具做Mock 接口數據
  • 測試通過JMeter、HttpRunner等工具做接口自動化測試、壓力測試

這種模式下,最突出的問題是數據同步問題,幾個工具之間數據彼此隔離,不同的角色各自維護一份接口數據,因接口變更未及時同步導致前后端聯調失敗、或測試用例失效的情況屢屢發生。因此只有將接口數據中心化,圍繞着接口文檔,各個角色在同一平台上進行協作,才能最大提升研發效能。因此Apifox的優勢非常明顯:

​ 1、數據同步:接口數據發生變更實時自動同步到用例、mock服務,不同角色之間無需再關注數據一致性問題,從而高效管理接口文檔;

​ 2、跨部門協作:平台的測試用例、mock規則、公共腳本等數據可以團隊內共享,實現數據沉淀,減少重復工作;

​ 3、降本提效:常用功能(斷言、數據庫操作、數據提取等)有便捷的可視化操作,小白也能參與文檔管理和自動化測試,避免重復造輪子,降低研發成本,使得研發可以專注於各自的工作。

Apifox初體驗

話不多說下面帶大家上手體驗,看Apifox是如何兼顧[接口文檔管理工具](#接口文檔管理工具)、[接口文檔生成工具](#接口文檔生成工具)、[接口Mock工具](#接口Mock工具)、[接口調試工具](#接口調試工具)、[接口自動化測試工具](#接口自動化測試工具)等多重身份的

安裝注冊

Apifox 是跨平台的工具,支持macOS(Intel+M1)、Linux、windows(32位、64位),在官網選擇對應系統的安裝包下載安裝即可用。

首次使用,可以使用郵箱注冊或直接通過微信登錄。

登錄apifox,可以看到當前用戶加入的團隊列表和團隊項目列表。點擊項目右側的小飛機設置直達,下次打開Apifox可直達該項目。

接口文檔管理

我們進入寵物店項目,如下所示:左側是以樹狀聚合的接口列表,層級為分類(可多級分類)->接口->用例,三個層級均支持一鍵復制、刪除,列表拖拽修改排序。右側是項目概覽頁,可以設置在線文檔分享給團隊成員或合作伙伴。

雙擊接口,右側顯示接口文檔頁,接口的基本信息、請求參數格式、響應數據格式、示例值。

點擊修改文檔/新建接口,可以編輯接口的信息。如圖我們編輯登錄的接口信息,字段都可以編輯示例值和說明,字段類型下拉表單有多種可選,界面清晰容易上手。

當然,Apifox的數據結構和數據模型是完全遵守 JSON Schema 規范 的,可以直接編輯 JSON Schema 來定義數據結構。

在線接口文檔

定義好的接口,在線文檔效果如下

接口調試

當我們接口設計好之后,可以調試看看效果。以登錄接口為例,進入運行頁,編輯好參數值,選擇運行環境,點擊運行即可發起一個簡單的請求,頁面下方可查看接口響應、請求詳情。


接口調試內容可以保存為一個用例,方便下次調試或者團隊成員測試用。

調試和用例都是為了測試接口的正確性,肯定需要驗證接口返回的信息、有時還要從響應提取信息供后續請求使用。這時候就需要提取變量和斷言操作,現成的0編碼的可視化步驟,,入口在后置操作里面,我們從響應提取一token存為環境變量,並斷言響應里的city字段值為“廣州市”。

運行,系統會自動校驗響應的數據結構是否與文檔定義一致,當斷言失敗時會提示並打印期望值和實際值。

點擊控制台看到變量token提取成功

變量提取來源和斷言的對象不只是響應JSON,還有cookie、header等,大大提高了編寫斷言的效率。

除了提取和斷言,接口前后置操作還支持數據庫查詢、公共腳本和自定義腳本,滿足日常的測試場景下數據庫查詢取值,自定義功能等需求,這些操作使用門檻低,小白用戶也可以優雅從容地進行接口測試~

除了可以編寫JS腳本,還可以直接調用java (.jar)、python (.py)、php (.php)、js (.js)、BeanShell (.bsh)、go (.go)、shell (.sh)、ruby (.rb)、lua (.lua)等語言編寫的外部程序,滿足進階用戶的定制化需求。

數據模型

Apifox文檔支持數據模型,可以按分類管理,支持數據模型之間的調用

環境管理

每個環境都有自己的前置URL,環境變量,變量的遠程值可在團隊內共享,本地值只保存在本地不上傳雲端。當我們運行時,選擇環境即發起該環境的請求。使用{{變量名}}即可讀取該環境的環境變量值。

全局變量和全局參數供所有環境使用。

Mock功能

通常在前后端並行開發的模式下,前端需要根據API文檔,使用 Mock模擬響應數據數據保證前端調用鏈路的暢通。Apifox運行時Mock 功能即在本地啟動,接口文檔頁可以根據響應結構自動生成mock數據,並且其內置規則使得大部分常用字段,如頭像、城市、手機號、IP等, 零配置即可生成非常人性化的 mock 數據。這個功能不僅節省搭建mock服務、編寫mock規則的時間,而且大大增強了前端數據的展示效果:


此外,還可以根據接口/數據結構定義Mock規則配置Mock 期望配置,自動生成模擬數據,且使用者可以根據需要靈活構造各種結構的接口數據。

測試用例

當我們要對某個功能做完整流程的測試、或者單一接口的不同情況進行測試時,需要將多個用例串聯起來測試。測試管理-測試用例可以滿足將用例組合起來自動化測試。我們在測試管理這里創建一個測試用例,點擊添加步驟可以選擇從接口用例導入或者從接口導入。

選擇從接口用例導入,可導入之前編寫的接口用例。導入模式可選擇復制或綁定,推薦使用“綁定”,測試管理和接口用例數據同步,當一處發生變化時,另一處的數據自動同步無需再手動修改用例。

我們做一個簡單的登錄-簽到的例子,導入2個接口用例-登錄和簽到。

我們來看看這兩個用例的設置:登錄用例設置了后置操作,從響應提取token存為變量

簽到用例:token字段參數值讀取登錄接口提取的token值進行簽到

導入之后,可以調整用例排序,設置循環次數和線程數

運行,生成測試報告如下:

點擊接口查看接口的請求、響應信息。可以看到登錄返回的token值,在簽到請求中使用了。這就是一個簡單的集成測試的例子。

測試套件

套件是測試用例的集合,用於組織更復雜的功能測試,常應用於接口自動化測試、回歸測試,操作方法類似測試用例。

參數化

在測試用例/套件運行時,設置循環次數和線程數即可對接口進行壓力測試。在壓力測試中,我們或許還需要對接口使用不同的參數值,Apifox支持接口參數值設置為變量,通過上傳CSV/JSON格式的數據文件,實現用例運行參數化,還是以登錄為例子,我們把賬號密碼都設置為變量


我們創建一個存放賬號和密碼的CSV文件,第一行是變量名,第二行開始是數據

account password
test1@qq.com 123456
test2@qq.com 123457
test3@qq.com 123458
test4@qq.com 123459
test5@qq.com 123460
test6@qq.com 123461
test7@qq.com 123462
test8@qq.com 123463
test9@qq.com 123464
test10@qq.com 123465

運行用例時上傳該csv文件,循環次數會自動填充csv的數據行數

點擊運行,用例會按csv順序運行,如圖,查看運行的第二個接口請求,參數值為第二組數據。

持續集成

為了方便集成Jenkins等持續集成工具自動構建、持續運行測試用例,Apifox支持通過命令行運行工具Apifox CLI實現持續集成。主要有下載測試數據運行到本地運行和通過命令下載在線數據運行2種方式。

在測試用例/測試套件頁,點擊“持續集成”,即可生成命令,通過Apifox CLI運行該命令實時運行在線測試用例/套件。

運行結果如圖

也可以導出Apifox CLI格式數據,通過ApifoxCLI讀取導出的json數據運行測試用例。

團隊管理

團隊角色分所有者、管理者和普通用戶,分別有以下不同的權限:

權限名稱 所有者 管理員 普通成員
修改團隊資料 × ×
移交團隊 × ×
解散團隊 × ×
查看成員權限列表 ×
修改成員權限 ×
邀請/移出成員 ×

每個成員在每個項目中可以設置不同的項目權限:分別是管理員、普通成員、只讀成員、禁止訪問。

不同項目權限對應內容如下,滿足團隊的多層次管理需求。

權限名稱 管理員 普通成員 只讀成員 禁止訪問
項目增刪改 × × ×
項目信息修改 × × ×
訪問接口文檔 ×
接口增刪改 × ×
接口查看調試 ×
用例增刪改 × ×
用例查看和運行 ×
測試套件增刪改 × ×
測試套件運行 ×
數據模型增刪改 × ×
數據模型查看 ×
環境增刪改 × ×
Mock規則增刪改 × ×
公共Response增刪改 × ×
公共腳本增刪改 × ×
數據庫連接增刪改 × ×
自定義函數增刪改 × ×
變量增刪改 × ×
變量本地值設置 ×
導入導出數據 × ×
其他特性
生成代碼

Apifox提供基於OpenAPI Generator的代碼生成功能——根據接口模型定義,自動生成各種語言/框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 種語言及框架)的業務代碼(如 Model、Controller、單元測試代碼等)和接口請求代碼。目前 Apifox 支持 130 種語言及框架的代碼自動生成。

更重要的是:可以通過自定義代碼模板來生成符合自己團隊的架構規范的代碼,滿足各種個性化的需求。

總結

都看到這了,這款既能管理接口又能做自動化測試、好用好看還免費的接口文檔工具還不趕緊用起來,fox在手,效率全有,准點下班不是夢~
ps.更詳細的使用說明請前往官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM