การทดสอบ API เป็นขั้นตอนที่สำคัญในการพัฒนาและบำรุงรักษาแอปพลิเคชัน ซึ่ง Postman เป็นเครื่องมือที่มีชื่อเสียงสำหรับทำการทดสอบ API อย่างมีประสิทธิภาพ ในบทความนี้เราจะพาลงลึกไปในกระบวนการทดสอบอัตโนมัติ API โดยใช้ Postman และ Newman ซึ่งเป็นเครื่องมือที่ช่วยในการรันคำสั่งทดสอบของ Postman ได้อย่างสะดวกและรวดเร็ว
Postman คืออะไร ?
Postman เป็นเครื่องมือที่มีหน้าตาใช้งานง่ายและมีความสามารถมากมาย ทำให้นักพัฒนาสามารถทดสอบ API ได้อย่างรวดเร็วและมีประสิทธิภาพ ติดตั้ง Postman และเริ่มต้นการทดสอบ API โดยการส่งคำขอ GET, POST, PUT, และ DELETE ไปยัง API ต่าง ๆ ใน Postman, สามารถเขียนสคริปต์ทดสอบเพื่อตรวจสอบผลลัพธ์ที่ได้จาก API ได้ นักพัฒนาสามารถเขียนสคริปต์ที่ทำการตรวจสอบค่าที่คืนมาจาก API ว่าตรงตามคาดหวังหรือไม่
Newman คืออะไร ?
Newman เป็นเครื่องมือที่ทำให้เราสามารถรันคำสั่งทดสอบของ Postman อัตโนมัติได้ นักพัฒนาสามารถใช้คำสั่งในโปรแกรมหรือ CI/CD pipeline เพื่อรันทดสอบอัตโนมัติและตรวจสอบความถูกต้องของ API
การใช้งาน Postman
การสร้าง Request:
- เปิด Postman และคลิกที่ "New" เพื่อสร้าง Request ใหม่.
- ใส่ URL ของ API ที่ต้องการทดสอบ.
การกำหนด Method:
- เลือก HTTP Method เช่น GET, POST, PUT, หรือ DELETE.
การเพิ่ม Headers:
- ใส่ Headers ที่จำเป็นต้องใช้ เช่น Content-Type, Authorization.
การส่งข้อมูล:
- ถ้าต้องการส่งข้อมูลเพิ่มเติม (เช่น JSON หรือ form data) ให้ใส่ข้อมูลในส่วนของ Body.
การทดสอบ Request:
- กดปุ่ม "Send" เพื่อทดสอบ Request และดูผลลัพธ์.
การจัดการ Environment:
- ใช้ Environment เพื่อจัดการตัวแปรและค่าที่ใช้ซ้ำในหลาย Request.
การใช้ Collections:
- สร้าง Collections เพื่อจัดการกลุ่มของ Requests ที่เกี่ยวข้อง.
การทดสอบ Script:
- สามารถเขียน JavaScript ในส่วนของ Pre-request Script หรือ Tests เพื่อปรับแต่งหรือตรวจสอบผลลัพธ์.
การจัดการการตอบรับ (Response):
- ตรวจสอบ Response ที่ได้รับ เพื่อให้แน่ใจว่ามีข้อมูลที่ถูกต้อง.
การเขียน Test script
ตัวอย่างข้อมูลที่ใช้สำหรับเขียน Test script
Method GET: https://jsonplaceholder.typicode.com/posts
Method POST: https://jsonplaceholder.typicode.com/posts
Request Body : {
"title": "foo",
"body": "bar",
"userId": 1
}
Method PUT: https://jsonplaceholder.typicode.com/posts/:id
Request Param: id
Method DELETE: https://jsonplaceholder.typicode.com/posts/:id
Request Param: id
Method GET
ในตัวอย่างนี้เราต้องการเขียน Test script สำหรับตรวจสอบข้อมูลดังนี้
- ตรวจสอบ status code ว่าตอบกลับเป็น 200 ไหม
- ตรวจสอบ response body ว่ามีคำว่า aut อยู่ไหม
- ตรวจสอบ header ว่ามี key Content-Type อยู่ไหม
- ในกรณีตรวจสอบไม่ผ่าน
// ตรวจสอบ status code 200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// ตรวจสอบ Response body ว่ามีคำว่า aut อยู่ไหม
pm.test("Response body success", function () {
pm.expect(pm.response.text()).to.include("aut");
});
// ตรวจสอบ Response header มี Content-Type อยู่ไหม
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
// ตัวอย่างตรวจสอบ FAIL
pm.test("Status code is 201", function () {
pm.response.to.have.status(201);
});
Method POST
ในตัวอย่างนี้เราต้องการเขียน Test script สำหรับตรวจสอบข้อมูลดังนี้
- ตรวจสอบ status code ว่าตอบกลับเป็น 201 ไหม
- ตรวจสอบ Response body โดย id = 101, body = bar
// ตรวจสอบ status code
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});
// ตรวจสอบ Response body โดย id = 101, body = bar
pm.test("Response body success", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(101);
pm.expect(jsonData.body).to.eql("bar");
});
การใช้งาน newman
ติดตั้ง Node.js
เนื่องจาก Newman ทำงานผ่าน Node.js ให้ดาวน์โหลดและติดตั้ง Node.js จาก Node.js Official Website
(แนะนำให้เลือก LTS Version เพื่อความเสถียร)
// ติดตั้ง Newman
npm install -g newman
// ติดตั้งเครื่องมือสำหรับออกรายงาย
npm install newman-reporter-html
// ตรวจสอบการติดตั้ง Newman
newman -v
การใช้งาน Newman คู่กับ Postman
สร้างและ Export Collection จาก Postman
- เปิด Postman และเลือก Collection ที่ต้องการทดสอบ
- คลิกขวาที่ Collection และเลือก Export
- เลือกรูปแบบเป็น v2.1 (recommended) จากนั้นบันทึกไฟล์
.json
ลงในเครื่อง
รัน Collection ด้วย Newman
ใช้คำสั่งด้านล่างเพื่อรัน Collection ที่ export มาจาก Postman:
newman run <path_to_collection_file.json>
เพิ่ม Environment File (ถ้ามี)
หาก Collection ต้องการ Environment Variables:
- Export Environment จาก Postman ในรูปแบบ
.json
- ใช้คำสั่งนี้เพื่อรัน Collection พร้อม Environment:
newman run <path_to_collection_file.json> -e <path_to_environment_file.json>
การสร้างรายงานผลการทดสอบ
Newman สามารถสร้างรายงานการทดสอบในรูปแบบต่างๆ ได้ เช่น HTML หรือ JSON
ตัวอย่างการสร้างรายงาน HTML:
newman run <path_to_collection_file.json> -r html
เคล็ดลับเพิ่มเติม
- ใช้ Postman Monitor ในการรัน Collection แบบอัตโนมัติ หากต้องการใช้งานบนคลาวด์
- ใช้ Plugin อย่าง newman-reporter-htmlextra เพื่อสร้างรายงาน HTML ที่มีข้อมูลมากขึ้น
npm install -g newman-reporter-htmlextra
newman run MyCollection.json -r htmlextra
Top comments (0)