目標:
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建立幾個要用的資料夾,其中一個資料夾內是文件,裝要用的程式碼的
之後要把創建的內容分別輸出到GitHub裡
git add .
git commit -m "Setup CI/CD workflow"
git push -u origin main
但這次出現一些錯誤導致沒有辦法那麼完美
可能的錯誤與原因
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