Jenkins 2 整合 postman collection runner

之前的文章 利用 POSTMAN 中的 collection 來快速測試 application 功能是否正常 介紹到如何使用 postman 內建的 collection runner 來為 api 做基本的測試,今天則要延用其中的概念,在每次上線部署後都做一次基本的 api 測試來保障基本的錯誤不會重複發生。當然這層基本保護絕對無法取代單元測試,只是希望在程式正式服務前能具備基本的品質,而更多測試保護也可以讓我們不用擔心程式修改時而造成無謂的錯誤

安裝 newman

可以使用 command line 環境來執行 postman collection runner 的套件

  • node.js 套件 (node.js 版本需大於 v4)
  • 安裝方式,擇一即可

    1. 使用 npm 安裝

      npm install newman --global;

    2. 使用 yarn 安裝

      yarn global add newman

  • 確認安裝成功

    newman -v

    • 可以正確得到版本資訊
  • 如果執行 newman 指令就會關閉 command prompt

    • 我就是這樣XD
    • 我的解法

      1. 先檢查 command prompt 下使用的 newman 位置

        1where

      2. 確認使用的 newman.cmd 內容

        2newmad

      3. 我不懂這麼寫 exit $? 的用意,但給了另個 newman.cmd 的位置,就試試看唄 –> 正常

        3newmanok

      4. 在錯誤的資料夾中發現有個 newman.cmd.cmd

        • 將原本的 newman.cmd rename 備用
        • newman.cmd.cmd rename 為 newman.cmd
        • 再執行一次 newman -v –> 已可正確執行

          4ok

準備 collection 及 environment

  • 匯出 collection

    1. Collections tab –> ... –> Export

      5export

    2. 選擇版本

      • v1 與 v2 都可以使用
      • v2 比較簡捷,人類比較好閱讀

        6version

  • 匯出 envinment

    1. 齒輪 圖示 –> Shared Environments

      7environment

    2. 點選所需環境組合的下載按鈕

      8download

jenkins 設定

  1. 新增 freestyle job

    9newjob

  2. 設定 job 內容

    • 新增 build step –> Execute Windows batch commnad

      10buildstep

    • 輸入 newman 指令 >newman run {collection path} -e {environment path}

      11newmancommand

  3. 加入 pipeline 中

  4. 實際效果

    • 測試中

      12building

    • 測試結果有成功也有失敗

      13result

參考資料

  1. How to write powerful automated API tests with Postman, Newman and Jenkins
  2. newman
  3. 利用 POSTMAN 中的 collection 來快速測試 application 功能是否正常