iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
Software Development

從入門到應用:30 天學會 Postman API 測試系列 第 27

Day 27:建立 CI/CD 測試流程(Newman + GitHub Actions)

  • 分享至 

  • xImage
  •  

目標:
1.自動化測試你前 26 天完成的 Postman Collection
2.利用 Newman 在 GitHub Actions 上執行 Collection,完成 CI/CD 流程
3.測試成功與否即時反饋

主要工具與檔案:
1.Postman Collection
檔案位置:tests/My Collection.postman_collection.json
內容:Day1–Day26 所有 API 測試
2.Postman Environment
檔案位置:tests/Dev.postman_environment.json
用於設定環境變數,如 {{base_url}}、{{baseurl}}
作用:替代 Collection 內的變數占位符
3.GitHub Actions Workflow
檔案位置:.github/workflows/ci.yml
功能:
自動安裝 Node.js
安裝 Newman
執行 Collection + Environment
回報測試結果

一開始要把我前26天的collection匯出,接著要開電腦的cmd建立幾個要用的資料夾,其中一個資料夾內是文件,裝要用的程式碼的https://ithelp.ithome.com.tw/upload/images/20251004/20178797x5IGQirZZ8.jpg
之後要把創建的內容分別輸出到GitHub裡
git add .
git commit -m "Setup CI/CD workflow"
git push -u origin main

但這次出現一些錯誤導致沒有辦法那麼完美https://ithelp.ithome.com.tw/upload/images/20251004/20178797JSmmPD2Kbw.jpg
可能的錯誤與原因

1.錯誤:collection could not be loaded / ENOENT
error: collection could not be loaded
ENOENT: no such file or directory
原因:
Collection JSON 路徑寫錯
Collection 沒 commit 到 GitHub
GitHub Actions 找不到檔案
改進:
確認檔案位置在 tests/
commit 並 push 到 GitHub
workflow 使用正確大小寫路徑
2.錯誤:environment could not be loaded / ENOENT
error: could not load environment
ENOENT: no such file or directory
原因:
環境檔名稱或路徑錯誤
檔案副檔名沒加 .json
環境檔沒 commit
改進:
workflow 裡要完整檔名:Dev.postman_environment.json
確認檔案在 tests/
commit + push 到 GitHub
3.錯誤:getaddrinfo ENOTFOUND {{base_url}}
getaddrinfo ENOTFOUND {{base_url}}
原因:
Collection 使用了變數但 workflow 沒提供環境檔或變數值
改進:
匯出 Postman Environment,包含變數對應值
workflow 用 -e tests/Dev.postman_environment.json 或 --env-var 指定
錯誤:Git push 被拒 / push protection
原因:
JSON 裡包含秘密金鑰(如 Stripe API Key)
GitHub Repo 開啟 push protection
改進:
用 dummy key 或 GitHub Secrets
秘密金鑰不要直接放在 Collection


上一篇
Day 26:整合多個 API 做一個小專案(例:查天氣 + 存到 DB)
下一篇
Day 28:測試 Webhook(配合 ngrok)
系列文
從入門到應用:30 天學會 Postman API 測試29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言