[Postman] Mock Servers(含圖和Json)

為何需要使用到Mock?
可參考這篇[面試][後端]在正式 API 完成前,如何讓要串接的工程師不要空等?

不只是前端可能會遇到要等後端API完成,有時候後端要與其他Server對接API拿資料時,也會使用到。
當不只是一個部門再開發時,可能需要與其他部門合作,等待對接API資料時,也能有效提高開發速度,避免在那等來等去的。

建立 Mock Server

建議勾選儲存 mock server URL 到環境變數的選項。

創建成功左方會新增一個Mock及mock server URL

點擊左方的Environments會有剛才建立的Mock Server Name,會自動將mock server URL帶入到url內,
後續只要打{{url}}就會取得資訊。

設計 Mock Server Response

  1. 到Collections的分頁
  2. 找到剛剛初始化的 Request,{{url}}會自動帶入
  3. 環境變數右上角請選擇剛剛建立的「User」
  4. 按下Send後
  5. 下面的Response一片空白是正常的,因為還沒設定 Mock Server Response

左側 Request 下面有一個「Default」,它就是用來自訂Response example,
最下方改為Json輸入完後儲存:

{
    "id":1,
    "user": "bocky"
}

回到Request,按下Send後,Response會跟剛剛填寫Json相同:

response 給隨機資料

Postman 本身就有提供給隨機資料的參數,主要在 example response 那邊把固定值改填參數就行,在 文件 中給的範例是這樣:

{
  "name": "{{$randomFullName}}",
  "userName": "{{$randomUserName}}",
  "location": "{{$randomCity}}",
  "company": "{{$randomCompanyName}}",
  "jobTitle": "{{$randomJobTitle}}",
  "updatedAt": "{{$timestamp}}"
}

收到的 response 就會像這樣:

{
    "name": "Mrs. Dana Berge",
    "userName": "Natalie.Moen85",
    "location": "South Orlando",
    "company": "Bergstrom, Schultz and O'Conner",
    "jobTitle": "Forward Data Manager",
    "updatedAt": "1674070363"
}

Postman 有的隨機參數官方都整理在這:Dynamic variables

依狀況返回不同的Response

通常在不同狀況會有不同的Response,例如成功或失敗。

成功/失敗的返回方式

再新增一個Explore為失敗的UserNume(success)。
當data為success時,返回:

{
    "status": "success",
    "msg": "成功",
    "data": {
        "name": "{{$randomFullName}}",
        "userName": "{{$randomUserName}}",
        "location": "{{$randomCity}}",
        "company": "{{$randomCompanyName}}",
        "jobTitle": "{{$randomJobTitle}}",
        "updatedAt": "{{$timestamp}}"
    }
}

再新增一個Explore為失敗的UserNume(Error)。
當data為error時的Response為

{
    "status": "error",
    "msg": "失敗",
    "data": {}
}

測試成功Response:

測試失敗的Response:

發佈留言

內容索引