ApiPost 真香真強大,是時候丟掉 Postman、Swagger 了



👉3萬字總結Java自學、進階線路圖、學習資料

大家好,我是一航!

如果你是一名Java后端開發工程師,像Swagger Postman RAP這些工具,應該再熟悉不過了吧!為我們的接口開發工作帶來了很多的便捷,不過因為這些都是獨立的框架,之間並不存在互通性,因此在多個框架間協調的時候,不可避免的會帶來一些重復性的工作;

今天來介紹一款強大的國產工具:ApiPost,將Swagger 、 Postman 、 RAP 、 JMeter 的功能完美的做了整合,一款工具,全部搞定。

什么是ApiPost

ApiPost = 接口調試+接口文檔快速生成+接口文檔規范化管理+Mock API+接口流程測試

常見的接口管理方案

  • API文檔

    Swagger

  • 調試 API

    Postman

  • Mock API 數據

    RAP

  • API 自動化測試

    JMeter

ApiPost產生的初衷是為了提高研發團隊各個角色的效率!產品的使用受眾為由前端開發、后端開發和測試人員以及技術經理組成的整個研發技術團隊。

APIPOST通過協作功能將研發團隊的每個角色整合打通。

安裝

ApiPost目前提供Window64位,Window32位、Mac、Linux版本的安裝包下載。

可通過以下官方地址進行下載

https://www.apipost.cn/download.html

使用

發送HTTP請求

API界面功能布局

API請求參數

Header 參數

你可以設置或者導入 Header 參數,cookie也在Header進行設置

Query 參數

Query 支持構造URL參數,同時支持 RESTful 的 PATH 參數(如:id)

Body 參數

Body 提供三種類型 form-data / x-www-form-urlencoded / raw ,每種類型提供三種不同的UI界面

  • 當你需要提交表單時,切換到 x-www-form-urlencoded

  • 當你需要提交有文件的表單時,切換到 form-data

  • 當您需要發送JSON對象或者其他對象時,切換到對應的raw類型即可

API 請求響應

點擊發送按鈕后,如果有數據返回,則會顯示返回數據,響應時間,響應碼,Cookie等。

注意:返回數據默認是Pretty模式,便於查看 JSON XML 格式。您可以通過切換 原生 或 預覽 模式 查看其它類型的類型。

返回Headers

全局參數和目錄參數

實際的企業級應用開發常見下,通常會約定一些通用的數據,比如token、時間、終端這些,如果每個接口都去獨立去維護,勢必會對開發、調試帶來一些不必要的工作量;此時,我們就需要有一個能設置全局參數的地方來統一管理這些公共參數

全局參數

我們打開全局參數管理器,在全局header除填上token參數:

每次在接口請求的時候,就會自動帶上這些公共配置的參數。

目錄參數

目錄參數和全局參數的作用一樣,屬於一個更細化的功能,可以通過目錄,來區分全局參數的作用域;可以為不同的目錄設置不用的公共參數:

參數的優先級

當全局參數、目錄參數、接口中都使用了同一個參數時,最終會按照以下優先級讀取參數值:

單個接口 > 目錄參數 > 全局參數

響應和斷言

響應

當Http請求發送之后,得到的服務端返回的結果表示一個響應;其中會得到狀態碼、數據、Headers、Cookie等。

  • Headers

斷言

服務器返回了響應數據,並不代表着接口就一定正常了,很可能以為bug或者數據異常導致得到的結果並沒有達到實際的預期;因此,我們就可以使用斷言功能,來判斷最終響應的結果是不是我們想要的;

常用斷言表達式
  1. 檢查response body中是否包含某個string

    apt.assert('response.raw.responseText=="test"');  // 檢查響應文本是否等於test字符串 
    apt.assert('response.raw.responseText.indexOf("test") > -1');  // 檢查響應文本是否含有test字符串
    
  2. 檢測返回JSON中的某個值是否等於預期的值

    apt.assert('response.json.hasOwnProperty("errcode")'); // 檢測返回json對象的是否含有errcode字段
    apt.assert('response.json.errcode=="success"');  // 檢測返回json對象的errcode字段是否等於success字符串
    apt.assert('response.json.errcode.indexOf("success") > -1');  // 檢測返回json對象的errcode字段是否含有success字符串
    apt.assert('response.json.errcode!="success"');  // 檢測返回json對象的errcode字段是否不等於success字符串
    apt.assert('response.json.errcode>=1');  // 檢測返回json對象的errcode字段是否大於1
    apt.assert('response.json.errcode==null'); // 檢測返回json對象的errcode字段是否是null
    
  3. 測試response Headers中的某個元素是否存在(如:Content-Type)

    apt.assert('response.headers.hasOwnProperty("content-type")');
    
  4. 驗證Status code(響應碼)的值是不是等於200

    apt.assert('response.raw.status==200');
    
  5. 驗證Response time(請求耗時)是否大於某個值

    apt.assert('response.raw.responseTime>=100');
    
  6. 驗證返回類型是不是json

    apt.assert('response.raw.type=="json"');
    

一鍵文檔生成

當通過上述的功能驗證完接口之后,即可通過分享文檔或者分享項目的方式,一鍵生成接口文檔;

點擊分享之后,即可拿到一個接口文檔訪問地址,詳情如下:

為了讓文檔的請求和響應參數更加的清晰、明確;我們可以對header、query以及form-data和urlencode的body參數進行詳細的描述

  • 請求參數描述

  • 響應參數描述

Mock

大部分企業的產品都采用的敏捷開發,為了能保證多端同步開展,當方案一旦確定,就需要通過Mock生成API的數據規則;這樣多端就可以根據文檔規則進行開發,不會因為團隊見彼此的進度而互相干擾、互相影響。

編寫Mock 規則

在APIPOST中,Mock 規則模板支持類型豐富(5.4版本起)。

基本數據(固定json結構)

{
  "code": "0",
  "data": {
    "name": "張三豐",
    "age": 100
  },
  "desc": "成功"
}

基本數據(Mock隨機json結構)

{
  "code": "0",
  "data": {
    "list|20": [{
      "name": "@name",
      "age": "@integer(2)"
    }],
    "url": "https://echo.apipost.cn"
  },
  "desc": "成功"
}

RESTFUL邏輯數據

某些場景中,我們可能需要根據接口的入參規則,加入適當的邏輯處理后再返回數據。一個簡單的場景就是登錄場景,需要根據用戶名密碼,判斷是否登錄成功。再或者,我們需要根據產品ID動態返回產品信息,等等。

現在,ApiPost 的Mock 服務提供了這種場景的解決方案。
以下示例中,我們用到了 _req.body對象,其含義是:

當 post 請求以 x-www-form-urlencoded 或者application/json 方式提交時,我們可以拿到請求的參數對象。

{  "code": "0000",  "data": {    "verifySuccess": function() {      let body = _req.body;      return body.username === 'admin' && body.password === '123456';    },    "userInfo": function() {      let body = _req.body;      if (body.username === 'admin' && body.password === '123456') {        return Mock.mock({          username: "admin",          email: "@email",          address: "@address"        });      } else {        return null;      }    },  },  "desc": "成功"}

獲取Mock地址

  • 切換到Mock環境進行測試

  • 復制Mock地址

自動化測試

流程測試是針對一個接口集合的測試,選擇相應的環境,可以作為一系列請求一起運行。
當您想要自動化API測試時,流程測試非常有用。

創建一個測試流程

步驟:

  1. 新建接口,並添加斷言
  2. 打開流程測試,新建一個流程
  3. 向流程添加測試接口
  4. 選擇環境,點擊開始測試
  5. 查看返回的測試接口

總結

至此,ApiPost常用的核心功能已經介紹完了,但ApiPost的強大並不限於此,在團隊管理協同管理項目管理的多個方面都表現的很優秀,如果你還沒有用過,建議嘗試一下,相信用過之后,一定會愛上!

更多詳細的功能,可查看官方文檔:

https://wiki.apipost.cn/


免責聲明!

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



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