วิธีรัน Postman Collection ใน CI โดยไม่ต้องใช้ Newman

Ashley Innocent

Ashley Innocent

20 April 2026

วิธีรัน Postman Collection ใน CI โดยไม่ต้องใช้ Newman

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

สรุปโดยย่อ

Newman ซึ่งเป็น CLI runner อย่างเป็นทางการของ Postman ต้องการ npm และ Node.js ใน CI pipeline ของคุณ ซึ่งทำให้เกิดความเสี่ยงด้านซัพพลายเชน, เพิ่มภาระในการจัดการ dependency และสำหรับ Postman เวอร์ชันฟรี การรัน collection ผ่าน API ถูกจำกัดจำนวนครั้งแล้ว คู่มือนี้ครอบคลุมสามทางเลือกสำหรับการรัน API tests ใน CI โดยไม่ต้องใช้ Newman ได้แก่ CLI runner ของ Apidog, k6 และ Hurl Apidog เป็นเส้นทางที่ตรงที่สุดหากคุณมี Postman collection อยู่แล้ว เนื่องจากมันสามารถนำเข้า collection ได้โดยตรงและไม่มีข้อจำกัดในการรันแต่ละครั้ง

💡
Apidog เป็นแพลตฟอร์มพัฒนา API แบบครบวงจรที่ใช้งานฟรี CLI runner สามารถรัน collection ที่เข้ากันได้กับ Postman ใน CI โดยไม่มี dependency ของ npm และไม่มีการจำกัดจำนวนการรัน ลองใช้ Apidog ฟรี ไม่ต้องใช้บัตรเครดิต
ปุ่ม

บทนำ

Newman เป็นแนวคิดที่ดี เครื่องมือ CLI ที่รัน Postman collections ใน CI pipelines ทำให้การทดสอบ API สามารถเคลื่อนย้ายและทำให้เป็นอัตโนมัติได้ มันมาพร้อมกับความน่าเชื่อถือของแบรนด์ Postman, รวมเข้ากับ GitHub Actions ผ่าน community action ยอดนิยม และทำงานได้ดีพอที่หลายทีมสร้างกลยุทธ์การทดสอบ API แบบอัตโนมัติทั้งหมดโดยอิงกับ Newman

จากนั้นก็เกิดปัญหาขึ้นสามประการ

ประการแรก Newman เป็นแพ็คเกจ npm ทุก pipeline ที่ใช้ Newman จะดึงจาก npm registry ในช่วงเวลาที่ทำการ build เหตุการณ์ ua-parser-js ที่ถูกบุกรุกในปี 2021 และเหตุการณ์ node-ipc ในปี 2022 แสดงให้เห็นว่าการโจมตีซัพพลายเชนของ npm ไม่ใช่แค่ทฤษฎี ทีมรักษาความปลอดภัยเริ่มตั้งคำถามว่าทำไมเลเยอร์การทดสอบ API ถึงต้องใช้ npm ด้วยซ้ำ

ประการที่สอง Postman เริ่มจำกัดการรัน collection ในเวอร์ชันฟรีและแบบเสียเงินขั้นพื้นฐาน ทีมที่พึ่งพาการรัน collection ผ่าน Postman API เป็นส่วนหนึ่งของ CI ต้องเผชิญกับโควต้าและต้องอัปเกรดแผนหรือออกแบบ pipeline ใหม่

ประการที่สาม ความเร็วในการบำรุงรักษาของ Newman ช้าลง ปัญหาค้างอยู่ใน GitHub เป็นเวลาหลายเดือน API สำหรับสคริปต์ Postman บางตัวที่ใหม่กว่ามีการรองรับที่ไม่สอดคล้องกันใน Newman

ผลลัพธ์: นักพัฒนาที่สร้าง CI pipelines บน Newman กำลังมองหาทางเลือกอื่น นี่คือสิ่งที่มีอยู่

ตัวเลือกที่ 1: Apidog CLI (แนะนำสำหรับผู้ใช้ Postman collection)

CLI runner ของ Apidog เป็นการทดแทนที่ใกล้เคียงที่สุดสำหรับ Newman หากคุณลงทุนไปกับ Postman collections อยู่แล้ว

สิ่งที่รองรับ

ไม่ต้องใช้ npm Apidog CLI ถูกแจกจ่ายเป็นไบนารีแบบสแตนด์อโลน คุณดาวน์โหลดครั้งเดียว เพิ่มลงใน PATH และมันก็ทำงาน

ไม่มีการจำกัดจำนวนการรัน Apidog ไม่จำกัดจำนวนการรัน collection ในแผนใดๆ Pipeline ที่รัน 500 collections ต่อวันทำงานเหมือนกับ pipeline ที่รัน 5 collections

การติดตั้ง

ดาวน์โหลดไบนารี CLI สำหรับแพลตฟอร์มของคุณจาก apidog.com/cli หรือใช้ shell installer:

# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh | sh

# ตรวจสอบ
apidog --version

สำหรับ CI runners ที่ใช้ Docker, Apidog มีอิมเมจอย่างเป็นทางการให้:

FROM apidog/cli:latest

การรัน Postman collection

ส่งออก collection ของคุณจาก Postman (File > Export > Collection v2.1) และ environment ของคุณ (Manage Environments > Export)

จากนั้นรัน:

apidog run collection.json \
  --environment environment.json \
  --reporter-junit results.xml

ตัวอย่าง GitHub Actions

name: API Tests

on: [push, pull_request]

jobs:
  api-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install Apidog CLI
        run: curl -sSf https://apidog.com/cli/install.sh | sh

      - name: Run API tests
        run: |
          apidog run ./tests/collection.json \
            --environment ./tests/env.json \
            --reporter-junit test-results.xml

      - name: Upload test results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: api-test-results
          path: test-results.xml

ไม่มี npm install, ไม่มี package.json, ไม่มี Node.js version matrix Job ทำงานเร็วขึ้นและ dependency surface มีขนาดเล็กลง

ตัวอย่าง GitLab CI

api-tests:
  image: apidog/cli:latest
  script:
    - apidog run ./tests/collection.json
        --environment ./tests/env.json
        --reporter-junit test-results.xml
  artifacts:
    reports:
      junit: test-results.xml

ตัวเลือกที่ 2: k6

k6 เป็นเครื่องมือทดสอบโหลดจาก Grafana Labs ที่จัดการการทดสอบ API เชิงฟังก์ชันได้ด้วย มันคุ้มค่าที่จะรู้จักเพราะมันยอดเยี่ยมสำหรับการทดสอบประสิทธิภาพควบคู่ไปกับการตรวจสอบฟังก์ชัน

สิ่งที่รองรับ

สิ่งที่ไม่รองรับ

ควรเลือก k6 เมื่อใด

หากคุณต้องการรวมการทดสอบฟังก์ชันกับการทดสอบประสิทธิภาพใน pipeline เดียวกัน เช่น การตรวจสอบความถูกต้องของ API ภายใต้โหลด k6 ก็คุ้มค่ากับค่าใช้จ่ายในการย้ายข้อมูล หากคุณต้องการเพียงแค่แทนที่ Newman สำหรับการทดสอบฟังก์ชัน Apidog จะตั้งค่าได้เร็วกว่า

การใช้งาน k6 เบื้องต้นใน CI

# ติดตั้ง (Linux)
sudo apt-get install k6

# รันสคริปต์ทดสอบ
k6 run api-tests.js

เอาต์พุต CI ของ k6 แสดงผลผ่าน/ไม่ผ่านตามคำจำกัดความเกณฑ์ในสคริปต์ของคุณ เอาต์พุต JUnit XML สามารถใช้งานได้ผ่านแพ็คเกจ k6-reporter

ตัวเลือกที่ 3: Hurl

Hurl เป็นเครื่องมือทดสอบ HTTP แบบโอเพ่นซอร์สที่เขียนด้วย Rust มันรวดเร็ว ไม่มี runtime dependencies และใช้ DSL แบบข้อความธรรมดาในการกำหนด requests และ assertions

สิ่งที่รองรับ

สิ่งที่ไม่รองรับ

ควรเลือก Hurl เมื่อใด

หากคุณยินดีที่จะเขียนการทดสอบของคุณใหม่ใน Hurl’s DSL คุณจะได้ไบนารีที่มีขนาดเล็กอย่างน่าทึ่งโดยไม่มีรันไทม์ ไบนารีเป็นไฟล์เดียวขนาด 10 MB Hurl เป็นตัวเลือกที่แข็งแกร่งสำหรับโปรเจกต์ใหม่ที่คุณไม่มีภาระ Postman collection ค้างอยู่

ตัวอย่างการทดสอบ Hurl เบื้องต้น

GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString

Hurl ใน GitHub Actions

- name: ติดตั้ง Hurl
  run: |
    curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
    tar -xf hurl-*.tar.gz
    sudo mv hurl /usr/local/bin/

- name: รัน API tests
  run: hurl --test tests/*.hurl

เปรียบเทียบสามตัวเลือก

คุณสมบัติ Apidog CLI k6 Hurl
การนำเข้า Postman โดยตรง ตัวแปลง (มีการสูญหาย) ไม่รองรับ
Dependency ของ npm ไม่มี ไม่มี ไม่มี
การเขียนสคริปต์ JavaScript รองรับ (pm.* API) รองรับ (ES6) ไม่รองรับ (DSL เท่านั้น)
การทดสอบประสิทธิภาพ ไม่รองรับ รองรับ ไม่รองรับ
ขนาดไบนารี ประมาณ 50 MB ประมาณ 30 MB ประมาณ 10 MB
ข้อจำกัดการรันฟรี ไม่มี ไม่มี ไม่มี
เอาต์พุต JUnit รองรับ ผ่านปลั๊กอิน รองรับ

การย้ายจาก Newman: ขั้นตอนปฏิบัติ

หากคุณมี pipeline ที่ใช้ Newman อยู่แล้ว นี่คือเส้นทางการย้ายไปยัง Apidog CLI:

ส่งออกคอลเล็กชันของคุณ ใน Postman ให้คลิกขวาที่แต่ละ collection แล้วส่งออกเป็น v2.1 ส่งออก environment ของคุณแยกต่างหาก

ติดตั้ง Apidog CLI เพิ่มขั้นตอนการติดตั้งลงในการตั้งค่า CI ของคุณ

แทนที่คำสั่ง Newman คำสั่ง Newman ทั่วไปจะมีลักษณะดังนี้:

newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml

คำสั่ง Apidog ที่เทียบเท่า:

apidog run collection.json --environment environment.json --reporter-junit results.xml

โครงสร้าง flag คล้ายกันโดยตั้งใจ

ตรวจสอบความเข้ากันได้ของสคริปต์ รัน collection ของคุณในเครื่องด้วย Apidog CLI ก่อนที่จะ commit การเปลี่ยนแปลงใน CI สคริปต์ pm.* ส่วนใหญ่ทำงานได้โดยไม่ต้องแก้ไข สคริปต์ที่ใช้ pm.require เพื่อโหลดโมดูลภายนอกจำเป็นต้องปรับปรุง

นำ Node.js ออกจากการตั้งค่า CI ของคุณ หาก Newman เป็นเหตุผลเดียวที่ Node.js ปรากฏใน pipeline ของคุณ คุณสามารถลบขั้นตอนการตั้งค่า Node.js และขั้นตอน npm install ออกทั้งหมดได้

คำถามที่พบบ่อย

Newman ถูกเลิกใช้งานอย่างเป็นทางการแล้วหรือยัง?ไม่ ในช่วงต้นปี 2026 Newman ยังคงได้รับการดูแลโดย Postman แต่ความเร็วในการบำรุงรักษาช้าและปัญหาที่เปิดอยู่หลายประการส่งผลกระทบต่อกรณีการใช้งานจริง มันยังไม่หายไปเร็วๆ นี้ แต่การสร้าง pipeline ใหม่โดยใช้มันมีความเสี่ยงเพิ่มขึ้น

Apidog CLI ต้องใช้บัญชี Apidog หรือไม่?สำหรับการรัน collection ที่ส่งออกในเครื่อง ไม่จำเป็น สำหรับการซิงค์ collection จาก Apidog workspace จำเป็น หากคุณกำลังย้ายจาก Postman คุณสามารถรันได้จากไฟล์ JSON ที่ส่งออกเท่านั้น

Apidog CLI สามารถรันการทดสอบแบบ data-driven ได้หรือไม่?ได้ ผ่านไฟล์ข้อมูล CSV หรือ JSON ด้วย flag --iteration-data ซึ่งเทียบเท่ากับ flag -d ของ Newman สำหรับการวนซ้ำแบบ data-driven

ความเสี่ยงด้านซัพพลายเชนของรันเนอร์ที่ใช้ npm คืออะไร?แพ็คเกจใดๆ ที่ดึงมาจาก npm ในช่วงเวลา CI เป็นจุดที่อาจถูกโจมตีได้ แพ็คเกจที่ถูกบุกรุกสามารถส่งข้อมูลตัวแปรสภาพแวดล้อม ซึ่งในบริบทของ CI จะรวมถึง API keys และ tokens รันเนอร์แบบไบนารีที่ดาวน์โหลดผ่าน HTTPS และตรึงไว้กับ checksum จะหลีกเลี่ยงความเสี่ยงประเภทนี้ได้

k6 รองรับการทดสอบ gRPC หรือไม่?ได้ k6 มีการรองรับ gRPC ดั้งเดิม ซึ่งทำให้เป็นหนึ่งในไม่กี่เครื่องมือโอเพ่นซอร์สที่จัดการทั้ง REST และ gRPC ในชุดการทดสอบเดียวกัน หาก API surface ของคุณมี gRPC endpoints k6 ก็คุ้มค่าที่จะประเมิน

Hurl รองรับ authentication headers หรือไม่?ได้ Hurl รองรับ custom headers รวมถึง Authorization, Bearer และการยืนยันตัวตนแบบ cookie-based ตัวแปรช่วยให้คุณสามารถแทรก secrets จาก environment variables ในขณะรันไทม์ได้

ยุคของ Newman ที่เป็นตัวเลือกเริ่มต้นสำหรับ CI ในการทดสอบ API กำลังจะสิ้นสุดลง ความเสี่ยงด้านซัพพลายเชนเป็นของจริง ข้อจำกัดของเวอร์ชันฟรีได้เปลี่ยนแปลงสมการสำหรับหลายทีม และมีทางเลือกที่ดีกว่าอยู่ในขณะนี้ การย้ายไปใช้ pipeline ที่ไม่มี Newman เป็นเรื่องตรงไปตรงมา โดยเฉพาะอย่างยิ่งหากคุณย้ายไปใช้ Apidog CLI กับ Postman collections ที่มีอยู่ของคุณ

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API