要如何建立一個假的API,除了讓自己可以測試debug外,也能優先讓測試人員取得到呢?
如果你還不知道怎麼安裝使用 ngrok 可以先參考這篇 【ngrok 教學】 webhook 直接在本地端測起來,Debug沒煩惱!
接著使用mockoon 這套工具可以快速讓你建立起 mock API,非常的方式實用!提供給你參考
另外最後有簡單示範使用python requests 取得 mock api 參數
內容目錄
Mockoon是什麼?
Mockoon 是設計和運行模擬 REST API 的最簡單、最快捷的方法。
無需遠程部署,無需帳戶,免費開源。
下載連結 https://mockoon.com/
點擊圖片的Download,針對你的平台進行安裝

開啟後,Mockoon IDE 如下方圖片顯示

Mockoon 建立 Mock API流程
那我們要怎麼建立一個Mock API呢?
點擊左側的 + 也就是 Filter 旁邊的 +

接著再 0.0.0.0: 旁邊輸入5567,當然可以輸入別的port,建議不要輸入經常使用過的port
GET 旁邊可以輸入 test123,或者不輸入也行

Body則就是你的response資料,可參考下方json格式資料,複製貼上到Body即可,到時候輸入資料時,會回傳下方資料
{
"userId": "5",
"name": "john",
"lang": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
"elementTitle": "My title",
"ip": "::1",
"method": "GET",
"hostname": "localhost",
"friends": [
{
"id": 0,
"name": "Stephen Bradbury"
},
{
"id": 1,
"name": "Warren Caffey"
}
],
"oneItem": "item1",
"someItemsAsString": "item2",
"someItemsAsArray": ["item2", "item3"],
"userName": "John"
}

接著我們點擊上圖右上角的設定按鈕,Environment settings
點擊下圖的 Add CRS header to environment header below ,主要是處理預設的參數可參考這篇 https://mockoon.com/docs/latest/cors/
完成後按下左上角的Back回到首頁

接著點擊左上角的箭頭按鈕,由於下方圖片已經按過會顯是紅色匡,代表正在運行中

開啟一個瀏覽器分頁輸入: http://localhost:5567/test123 或是 http://127.0.0.1:5567/test123 就可以在本地端看到回傳的body資料嚕!

Mockoon 與 ngrok 如何使用操作?
那我們想讓測試資料,讓外面的人也能使用,那該如何操作呢?
我們可以透過 ngrok 讓外網的朋友也可以看到你的參數值,首先你要先開啟ngrok
再終端機輸入:$ ./ngrok http 5567,為何輸入5567呢?因為我們上面使用5567 port
這樣我們才能把本地端的資料轉換乘ngrok格式
如果不輸入5567的話,會對應不到我們本地端的資料
$ ./ngrok http 5567
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account MarkwwLiu (Plan: Free)
Version 2.3.40
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://e4a290fb3f2f.ngrok.io -> http://localhost:5567
Forwarding https://e4a290fb3f2f.ngrok.io -> http://localhost:5567
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00

接著你會看到Forwarding這行,我們取得最後一行也就是 https://ffafeb2c030b.ngrok.io
再瀏覽器輸入https://ffafeb2c030b.ngrok.io/test123,就會如同我們看到的資料一樣
可以試著用其他設備,如手機或是其他電腦也相同輸入https://ffafeb2c030b.ngrok.io/test123
就可以獲取相同資料,這樣其他開發者或是測試人員,都只打這個api就能先進行開發測試了!
相當方便!那為何要輸入/test123呢?
因為我們再前面有給他定義/test123才會有資料的關係,如果沒有設定 /test123 就沒有這個問題
Python 使用 requests 套件輕鬆取得 Mock API 的資料
使用Python 要怎麼獲取到API裡面的資訊呢?
我們可以使用 requests 套件輕鬆獲取裡面的資料,並針對裡面的資料進行編寫測試用例或是串接其他功能。
可參考下方簡單的程式碼範例
import requests
url = 'https://ffafeb2c030b.ngrok.io/test123'
resp = requests.get(url=url)
data = resp.json()
print(data)
$ python3 request_test.py
{'userId': '5', 'name': 'john', 'lang': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7', 'elementTitle': 'My title', 'ip': '::1', 'method': 'GET', 'hostname': 'localhost', 'friends': [{'id': 0, 'name': 'Stephen Bradbury'}, {'id': 1, 'name': 'Warren Caffey'}], 'oneItem': 'item1', 'someItemsAsString': 'item2', 'someItemsAsArray': ['item2', 'item3'], 'userName': 'John'}
文章內的程式碼都可以直接複製下來練習操作,或是直接套用到自己的專案都行!
多練習,對自已會有很大的幫助!
一回生二回熟,將所學習到內容變成自己的知識。
人就是要學習自己不會的事情,這樣才會不斷的成長、進步!
更多技術文章
透過下方按鈕找尋到相關的技術文章,希望可以幫助到正在學習的你
加入到我的粉絲專頁,不定期發布最新文章資訊!
有任何文章問題都可以詢問喔!
發佈留言