
👉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或者資料例外導致得到的結果并沒有達到實際的預期;因此,我們就可以使用斷言功能,來判斷最終回應的結果是不是我們想要的;

常用斷言運算式
-
檢查response body中是否包含某個string
apt.assert('response.raw.responseText=="test"'); // 檢查回應文本是否等于test字串 apt.assert('response.raw.responseText.indexOf("test") > -1'); // 檢查回應文本是否含有test字串 -
檢測回傳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 -
測驗response Headers中的某個元素是否存在(如:Content-Type)
apt.assert('response.headers.hasOwnProperty("content-type")'); -
驗證Status code(回應碼)的值是不是等于200
apt.assert('response.raw.status==200'); -
驗證Response time(請求耗時)是否大于某個值
apt.assert('response.raw.responseTime>=100'); -
驗證回傳型別是不是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測驗時,流程測驗非常有用,
創建一個測驗流程
步驟:
- 新建介面,并添加斷言
- 打開流程測驗,新建一個流程
- 向流程添加測驗介面
- 選擇環境,點擊開始測驗
- 查看回傳的測驗介面

總結
至此,ApiPost常用的核心功能已經介紹完了,但ApiPost的強大并不限于此,在團隊管理、協同管理、專案管理的多個方面都表現的很優秀,如果你還沒有用過,建議嘗試一下,相信用過之后,一定會愛上!
更多詳細的功能,可查看官方檔案:
https://wiki.apipost.cn/

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345722.html
標籤:其他
下一篇:口水話講解Java實作順序表
