Newman กับ Postman ต่างกันอย่างไร

INEZA Felin-Michel

INEZA Felin-Michel

22 May 2026

Newman กับ Postman ต่างกันอย่างไร

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

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

ความสับสนมักจะมาจากคำถามที่ว่า “ควรใช้ตัวไหนดี?” คำตอบที่ตรงไปตรงมาคือ ใช้ทั้งสองอย่าง แต่ต่างกันในแต่ละขั้นตอน คุณสร้างงานใน Postman เพราะอินเทอร์เฟซแบบกราฟิกทำให้ทำได้รวดเร็ว คุณรันงานใน Newman เพราะไปป์ไลน์ไม่สามารถคลิกปุ่มได้ บทความนี้จะอธิบายความสัมพันธ์นี้อย่างละเอียด แสดงให้เห็นว่าแต่ละส่วนเหมาะกับอะไร และแนะนำขั้นตอนการนำ Newman ไปใช้ในไปป์ไลน์ CI/CD

Postman คืออะไร

Postman เป็นแพลตฟอร์ม API แบบกราฟิก คุณติดตั้งเป็นแอปเดสก์ท็อป สร้างคำขอ จัดระเบียบเป็นคอลเลกชันและโฟลเดอร์ และแนบสภาพแวดล้อมที่เก็บตัวแปรต่างๆ เช่น base URLs และโทเค็น หลังจากแต่ละการตอบสนอง Postman จะรันสคริปต์ทดสอบ JavaScript ที่คุณเขียนในแท็บ Tests ของคำขอ

สคริปต์ทดสอบของ Postman จะตรวจสอบการตอบสนอง:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Order total is a positive number", function () {
    const body = pm.response.json();
    pm.expect(body.total).to.be.a("number");
    pm.expect(body.total).to.be.above(0);
});

Postman สร้างขึ้นมาเพื่องานแบบโต้ตอบ นักพัฒนาที่กำลังดีบั๊กเอนด์พอยต์ใหม่จะส่งคำขอ ตรวจสอบการตอบสนอง ปรับเปลี่ยนเฮดเดอร์ และทำซ้ำในเวลาไม่กี่วินาที วิศวกร QA จะเปลี่ยนคำขอเหล่านั้นให้เป็นชุดการทดสอบรีเกรสชันที่บันทึกไว้ ทีมต่างๆ แชร์พื้นที่ทำงานร่วมกันเพื่อให้ทุกคนทำงานจากคอลเลกชันเดียวกัน ทั้งหมดนี้ได้รับประโยชน์จากอินเทอร์เฟซแบบภาพ คู่มือของเราเกี่ยวกับการ ทดสอบ API ด้วย Postman ครอบคลุมเวิร์กโฟลว์นั้นอย่างละเอียด

สิ่งที่ Postman ไม่ได้สร้างมาเพื่อคือการรันโดยไม่มีคนควบคุม การรันชุดทดสอบหมายถึงการเปิดแอปและคลิก Collection Runner ซึ่งใช้ได้ดีสำหรับคนทำงานที่โต๊ะ แต่ไม่มีประโยชน์สำหรับบิลด์เซิร์ฟเวอร์

Newman คืออะไร

Newman เป็นตัวรันคอลเลกชันแบบบรรทัดคำสั่งอย่างเป็นทางการของ Postman เป็นแพ็คเกจ npm แบบโอเพ่นซอร์ส ใช้งานฟรี ซึ่งรันไฟล์คอลเลกชันแบบเดียวกับที่ Postman สร้างขึ้น คุณส่งออกคอลเลกชันเป็นไฟล์ JSON มอบให้ Newman และ Newman จะรันทุกคำขอและทุกสคริปต์ทดสอบ จากนั้นรายงานผลลัพธ์ไปยังเทอร์มินัลของคุณ

ติดตั้งด้วย npm:

npm install -g newman

รันคอลเลกชัน:

newman run orders-api.postman_collection.json \
  --environment staging.postman_environment.json

Newman รันแต่ละคำขอ ดำเนินการยืนยัน pm.test แบบเดียวกับที่ Postman ทำ และพิมพ์สรุป รายละเอียดสำคัญคือ Newman ใช้เอนจินการทำงานเดียวกันกับ Postman ดังนั้นคอลเลกชันที่ผ่านใน GUI จะทำงานเหมือนกันทุกประการบนบรรทัดคำสั่ง ไม่มีการเขียนใหม่และไม่มีภาษาทดสอบแยกต่างหาก

Newman จะออกจากโปรแกรมพร้อมรหัสสถานะที่ไม่ใช่ศูนย์เมื่อการทดสอบใดๆ ล้มเหลว พฤติกรรมเดียวนี้เองที่ทำให้มีคุณค่าต่อการทำ automation: ระบบบิลด์จะอ่านรหัสสถานะนั้นและทำให้บิลด์ล้มเหลวหากมีการยืนยันที่ผิดพลาด การรันที่ผ่านจะออกด้วยรหัสศูนย์และไปป์ไลน์จะดำเนินต่อไป

เปรียบเทียบเคียงข้างกัน

แง่มุม Postman Newman
อินเทอร์เฟซ แอปเดสก์ท็อปแบบกราฟิก บรรทัดคำสั่ง, ไม่มี UI
การใช้งานหลัก การสร้าง, การดีบั๊ก, การสำรวจ การทำงานอัตโนมัติ, การทำงานโดยไม่มีคนควบคุม
รันที่ไหน เครื่องของนักพัฒนา เซิร์ฟเวอร์ CI, เทอร์มินัล, ตัวกำหนดเวลา
ค่าใช้จ่าย แบบฟรีและแบบมีค่าใช้จ่าย โอเพ่นซอร์ส, ฟรีทั้งหมด
การติดตั้ง ตัวติดตั้งเดสก์ท็อป แพ็คเกจ npm
สคริปต์ทดสอบ เขียนและรันในแอป รันสคริปต์เดียวกันโดยไม่มีส่วนแสดงผล
การรายงานผล แผงแสดงผลในแอป เอาต์พุตเทอร์มินัลพร้อมปลั๊กอินรายงาน
เหมาะที่สุดสำหรับ การวนซ้ำแบบโต้ตอบ การรันที่ทำซ้ำได้และเขียนสคริปต์ได้

ไฟล์ JSON ของคอลเลกชันคือสะพานเชื่อมระหว่างทั้งสอง คุณสร้างมันเพียงครั้งเดียวใน Postman และ Newman จะรันมันตลอดไปในระบบอัตโนมัติ

Newman เข้ากับ CI/CD ได้อย่างไร

Newman มีอยู่ส่วนใหญ่เพื่อนำการทดสอบ API เข้าสู่ระบบ continuous integration (การรวมโค้ดอย่างต่อเนื่อง) รูปแบบนี้มีความสอดคล้องกันในผู้ให้บริการต่างๆ คุณคอมมิตไฟล์คอลเลกชันและสภาพแวดล้อมที่ส่งออกไปยัง repository ของคุณ ติดตั้ง Newman ในไปป์ไลน์ รันมัน และให้รหัสออก (exit code) เป็นตัวกำหนดการผ่านของบิลด์

นี่คือเวิร์กโฟลว์ตามขั้นตอน:

  1. **ส่งออกจาก Postman.** ใน Postman ให้ส่งออกคอลเลกชันและสภาพแวดล้อมของคุณเป็นไฟล์ JSON
  2. **คอมมิตไปยัง repository.** จัดเก็บไว้เคียงข้างโค้ดของคุณเพื่อให้มีการจัดการเวอร์ชันพร้อมกับ API
  3. **ติดตั้ง Newman ในไปป์ไลน์.** เพิ่ม npm install -g newman ลงใน CI job หรือใช้ Docker image postman/newman
  4. **รันคอลเลกชัน.** เรียกใช้ newman run ด้วยไฟล์คอลเลกชันและสภาพแวดล้อม
  5. **ใช้รหัสออกเป็นเกณฑ์.** หากการทดสอบใดๆ ล้มเหลว Newman จะออกจากโปรแกรมด้วยรหัสที่ไม่ใช่ศูนย์ และผู้ให้บริการ CI จะทำเครื่องหมายว่าบิลด์ล้มเหลว

ขั้นตอนของ GitHub Actions จะมีลักษณะดังนี้:

- name: Run API tests
  run: |
    npm install -g newman
    newman run orders-api.postman_collection.json \
      --environment staging.postman_environment.json \
      --reporters cli,junit \
      --reporter-junit-export results.xml

แฟล็ก --reporters เป็นสิ่งที่คุณควรรู้ Newman มาพร้อมกับตัวรายงานในตัวสำหรับ CLI และ JUnit XML และตัวรายงานจากชุมชนยังเพิ่มเอาต์พุต HTML และอื่นๆ อีกด้วย โดยเฉพาะ JUnit XML ช่วยให้แดชบอร์ด CI แสดงผลการทดสอบได้อย่างเป็นธรรมชาติ สำหรับคำแนะนำฉบับเต็ม โปรดดูคู่มือของเราเกี่ยวกับการ ทำให้การทดสอบ API เป็นอัตโนมัติใน CI/CD และรายละเอียดเฉพาะของการ ทำ API test automation ด้วย GitHub Actions

ตัวเลือกบรรทัดคำสั่ง Newman ที่มีประโยชน์

Newman มีชุดแฟล็กที่จัดการปัญหาเล็กๆ น้อยๆ ของการรันอัตโนมัติ การรู้จักบางส่วนของมันสร้างความแตกต่างระหว่างงานที่ไม่เสถียรกับงานที่เชื่อถือได้

แฟล็ก --iteration-data จะชี้ Newman ไปยังไฟล์ CSV หรือ JSON และรันคอลเลกชันทั้งหมดหนึ่งครั้งต่อแต่ละแถว โดยแทนที่ค่าของแถวนั้นเป็นตัวแปร นี่คือวิธีที่คุณจะขับเคลื่อนการรันของ Newman ด้วยข้อมูล: หนึ่งคอลเลกชัน หลายอินพุต แฟล็ก --iteration-count เพียงแค่ทำซ้ำคอลเลกชันตามจำนวนครั้งที่กำหนด

แฟล็ก --bail จะบอก Newman ให้หยุดเมื่อเกิดความล้มเหลวครั้งแรก แทนที่จะรันส่วนที่เหลือของคอลเลกชัน ในไปป์ไลน์ที่ต้องการผลตอบรับที่รวดเร็ว มักจะเป็นสิ่งที่คุณต้องการ เพราะคำขอที่เสียเพียงรายการเดียวก็น่าจะหมายถึงบิลด์กำลังจะล้มเหลวอยู่แล้ว แฟล็ก --timeout-request กำหนดระยะเวลาสูงสุดที่คำขอแต่ละรายการสามารถใช้ได้ ซึ่งช่วยป้องกันไม่ให้งานค้างอยู่กับบริการที่ไม่ตอบสนอง

แฟล็ก --delay-request จะแทรกการหยุดชั่วคราวระหว่างคำขอ ซึ่งมีประโยชน์เมื่อ API บังคับใช้ขีดจำกัดอัตรา (rate limits) และ --folder ช่วยให้คุณรันเฉพาะโฟลเดอร์ที่ระบุภายในคอลเลกชันได้ ดังนั้นงาน smoke-test จึงสามารถรันชุดย่อยขนาดเล็กได้ ในขณะที่งาน regression แบบเต็มจะรันทุกอย่าง ไม่มีตัวเลือกเหล่านี้ใน Collection Runner ของ Postman GUI ในรูปแบบที่สามารถเขียนสคริปต์ได้เหมือนกัน และเมื่อรวมกันแล้วนี่คือเหตุผลที่ Newman เป็นตัวเลือกที่ใช้งานได้จริงสำหรับการทำงานโดยไม่มีคนควบคุม

ข้อผิดพลาดทั่วไปเมื่อย้ายจาก Postman ไปยัง Newman

ปัญหาบางอย่างมักจะเกิดขึ้นซ้ำแล้วซ้ำเล่าเมื่อทีมนำคอลเลกชันจาก GUI ไปใช้ใน Newman เป็นครั้งแรก ที่พบบ่อยที่สุดคือค่าที่ถูกฮาร์ดโค้ด คำขอที่เคยทำงานได้ใน Postman เพราะตัวแปรถูกตั้งค่าไว้ในสภาพแวดล้อมที่ใช้งานอยู่ จะล้มเหลวใน Newman หากไม่ได้ส่งไฟล์สภาพแวดล้อมนั้นพร้อมกับ --environment ควรส่งออกและระบุสภาพแวดล้อมอย่างชัดเจนเสมอ

อย่างที่สองคือการพึ่งพา Postman cloud คอลเลกชันที่อ้างอิงตัวแปรที่ซิงค์กับคลาวด์ หรือใช้คุณสมบัติที่ผูกกับเซสชัน Postman ที่ล็อกอินอยู่ อาจทำงานไม่เหมือนเดิมเมื่อรันจากไฟล์ JSON ธรรมดา ทดสอบไฟล์ที่ส่งออกในเครื่องด้วย Newman ก่อนที่จะเชื่อถือใน CI

อย่างที่สามคือการลืมว่าไฟล์ที่ส่งออกจะล้าสมัย ไฟล์ JSON คอลเลกชันใน repository ของคุณคือสแนปช็อต หากมีคนแก้ไขคอลเลกชันใน Postman และไม่ได้ส่งออกใหม่ ไปป์ไลน์จะยังคงรันเวอร์ชันเก่าอยู่ ทีมแก้ปัญหานี้ด้วยวินัย โดยการถือว่าการส่งออกเป็นการคอมมิตที่จงใจ หรือโดยการย้ายไปใช้เครื่องมือที่การกำหนดการทดสอบและตัวรันเป็นสิ่งเดียวกัน

ควรใช้ตัวไหนเมื่อไหร่

ใช้ Postman เมื่อมีคนทำงาน การออกแบบ API ใหม่ การดีบั๊กการเรียกที่ล้มเหลว การสำรวจบริการของบุคคลที่สาม การสร้างและปรับปรุงชุดทดสอบ: ทั้งหมดนี้เป็นการโต้ตอบและควรอยู่ใน GUI

ใช้ Newman เมื่อไม่มีคนอยู่ การรันชุดทดสอบในทุก pull request ตามกำหนดเวลาตอนกลางคืน หรือเป็นการทดสอบ smoke test หลังการปรับใช้: ทั้งหมดนี้ต้องการเครื่องมือที่รันจากสคริปต์และรายงานผ่านรหัสออก

ในทางปฏิบัติ ขอบเขตคือ “การสร้างงานเทียบกับการรันงาน” คุณจะไม่เลือกอย่างใดอย่างหนึ่ง คุณจะใช้ Postman ในการสร้าง และ Newman ในการทำให้เป็นอัตโนมัติ และไฟล์คอลเลกชันจะนำพางานของคุณระหว่างทั้งสอง หากคุณไม่ต้องการบำรุงรักษาตัวรันแยกต่างหากเลย คู่มือของเราเกี่ยวกับการ รันคอลเลกชัน Postman ใน CI โดยไม่มี Newman ก็ครอบคลุมตัวเลือกอื่นๆ

ทางเลือกแบบครบวงจร: Apidog

การดูแลการตั้งค่า Postman-บวก-Newman หมายถึงการส่งออกคอลเลกชัน การรักษาไฟล์ JSON ให้ตรงกัน และการจัดการตัวรันที่แยกต่างหาก Apidog รวมสิ่งเหล่านั้นเข้าไว้ในแพลตฟอร์มเดียว คุณออกแบบ API ดีบั๊กคำขอ และสร้างสถานการณ์ทดสอบอัตโนมัติพร้อมการยืนยันด้วยภาพในแอปเดียวกัน จากนั้นรันสถานการณ์เหล่านั้นใน CI/CD ด้วยตัวรันบรรทัดคำสั่งในตัว ไม่มีขั้นตอนการส่งออกและซิงค์ เนื่องจากคำจำกัดความของการทดสอบและเอนจินการดำเนินการอยู่ร่วมกัน

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

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

Newman เป็นตัวแทนของ Postman ใช่หรือไม่?

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

Newman มีค่าใช้จ่ายหรือไม่?

ไม่มี Newman เป็นโอเพ่นซอร์สและฟรีทั้งหมด มีการแจกจ่ายเป็นแพ็คเกจ npm Postman มีแผนบริการฟรีและแผนแบบมีค่าใช้จ่ายสำหรับทีมขนาดใหญ่ แต่ตัว Newman เองไม่มีค่าใช้จ่ายไม่ว่าคุณจะใช้งานอย่างไร

การทดสอบ Postman ของฉันจะทำงานเหมือนกันใน Newman ใช่หรือไม่?

ใช่ Newman ใช้เอนจินการดำเนินการเดียวกันกับ Postman ดังนั้นการยืนยัน pm.test และตรรกะของคำขอจะทำงานเหมือนกันทุกประการ คอลเลกชันที่ผ่านใน Postman Collection Runner จะให้ผลลัพธ์เดียวกันใน Newman ซึ่งทำให้ปลอดภัยสำหรับการใช้งานใน CI

Newman รายงานความล้มเหลวของการทดสอบอย่างไร?

Newman จะพิมพ์สรุปไปยังเทอร์มินัลและออกจากโปรแกรมด้วยรหัสสถานะที่ไม่ใช่ศูนย์เมื่อการทดสอบใดๆ ล้มเหลว รหัสออกนั้นคือวิธีที่ระบบ CI ตรวจจับความล้มเหลว Newman ยังรองรับตัวรายงาน รวมถึง JUnit XML และ HTML เพื่อให้ผลลัพธ์สามารถป้อนเข้าสู่แดชบอร์ดและรายงานบิลด์ได้

ฉันสามารถรัน Newman โดยไม่ต้องติดตั้ง Node.js ได้หรือไม่?

Newman เป็นแพ็คเกจ npm ดังนั้นการติดตั้งโดยตรงจึงต้องใช้ Node.js เพื่อหลีกเลี่ยงปัญหานั้น ให้ใช้ Docker image อย่างเป็นทางการ postman/newman ซึ่งรวมทุกอย่างไว้ด้วยกัน วิธีการใช้ Docker เป็นเรื่องปกติในสภาพแวดล้อม CI ที่คุณไม่ต้องการจัดการ Node.js runtime ในงานบิลด์

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

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