วันนี้มีโอกาสไปแบ่งปันประสบการณ์การใช้งานโปรแกรม Postman
ใช้สำหรับการทดสอบระบบงานพวก REST API ผ่าน HTTP protocol
โดยใช้ชื่อว่า Postman in the Right Way ใน 1 วัน
เป็นคำแนะนำสำหรับการใช้งานที่คิดว่า น่าจะมีประโยชน์
มาจากประสบการณ์ใช้งานที่พอมีมาบ้าง
มีเป้าหมายว่า เครื่องมือถูกสร้างมาเพื่อลดงาน มิใช่เพิ่มงาน !!
สิ่งที่แบ่งปันประกอบไปด้วยเรื่องต่าง ๆ ดังนี้
เริ่มด้วยขั้นตอนการพัฒนาระบบ API เช่น REST API เป็นดังนี้
- ทำการออกแบบ API Specification ในรูปแบบของเอกสารต่าง ๆ เช่น spreadsheeet เป็นต้น
- ทำการประชุมเพื่ออธิบาย
- ทำการพัฒนา API
- ทำการ generate API document จากการพัฒนา เช่น Swagger หรือ OpenAPI ออกมา โดยเอกสารตัวนี้ใช้ทำอะไร ใครใช้บ้าง !!
- ทำการทดสอบ API ด้วยเครื่องมือต่าง ๆ เช่น Postman เป็นต้น
- มีการแนะนำ Bruno ให้ด้วย เผื่อจะสนใจ
คำถามที่น่าสนใจคือ มีเอกสารเรื่องเดียวกันดี่ชุด กี่ที่ กี่คนดูแล
เมื่อมีการแก้ไขในส่วนใดส่วนหนึ่งแล้ว
เอกสารทุก ๆ ตัวที่สร้างขึ้นมา ถูกแก้ไข หรือ เปลี่ยนแปลงตามไหม ?
ถ้าไม่ นั่นคือ มีปัญหาแน่นอน !!
หนึ่งแนวทางในการแก้ไขปัญหา ที่แนะนำคือ ทำใน Postman กันไปเลย
มาดูขั้นตอนการใช้งาน Postman กันดู
- ทำการออกแบบใน Postman ไปเลย สร้าง workspace -> collection -> request ต่าง ๆ ไป
- ทำการสร้าง folder ในแต่ละ collection มากเกินไปไหม ?
- ในแต่ละ request ทำการสร้าง response แต่ละแบบด้วยการเพิ่ม example เข้ามา
- ในแต่ละ collection และ request สามารถเขียน API documentation ได้เลย ในรูปแบบ Markdown นั่นเอง
- ต่อมาในแต่ละ request สามารถเขียน test case ที่ต้องการตรวจสอบได้เลย
- อีกทั้งเมื่อทำการออกแบบเรียนร้อยแล้ว สามารถสร้าง Mock Server ขึ้นมาจาก collection ที่ทำการออกแบบได้เลย
- ดังนั้น เราจะได้ทั้ง API specification, API documentation, Test case และ Mock Server หลังการคุย หรือ ประชุมกันเรียบร้อย โดยที่ยังไม่ได้ทำการเขียน code ใด ๆ เลย
จากนั้นเราสามารถทำการ convert จาก Postman's collection ไปยังเอกสารต่าง ๆ ได้อีกด้วย
ยกตัวอย่างเช่น
- ไปเป็น Swagger หรือ OpenAPI ได้เลย มีคำแนะนำเกี่ยวกับ AsyncAPI ด้วย
- ไปเป็น Apache JMeter และ K6 ได้เลย สำหรับการทำ performance testing ต่อไป
ต่อมาทำการแนะนำความสามารถต่าง ๆ ในการทดสอบด้วย Postman
ยกตัวอย่างเช่น
- การเขียน Test case ของแต่ละ request ซึ่งมีทั้ง snippet code และ PostBot ให้ใช้งาน
- ในการเขียน test case จะเน้นในเรื่องของการตรวจสอบ response ในรูปแบบ JSON ด้วย JSON Schema
- จากนั้นเราสามารถ generate data test จาก JSON Schema ได้อีกด้วย
- ต่อมาสิ่งที่แนะนำเพิ่มเติมคือการเขียน script ใน pre-request script ด้วย สำหรับช่วยในการ reuse การทำงานในการทดสอบ ที่มักจะเกิดจากการ duplicate request ขึ้นมา
- การใช้งาน environment ใน Postman ทั้ง Global, collection และ request นั้น ๆ
- การใช้งาน data ในการทดสอบของ collection ด้วย CSV และ JSON
- แนะนำ performance testing ใน Postman ที่เพิ่มเข้ามาอีกด้วย สามารถกำหนดรูปแบบของการสร้าง Virtual user ได้ 4 แบบคือ Fixed, Ramp up, Spike และ Peak
ทำการปรับเปลี่ยนจาก manual test มาเป็น automated test ด้วย newman
- ทำการติดตั้ง
- ทำการ run ด้วย option ต่าง ๆ ทั้ง folder, environment และ report เป็นต้น
- การทำงานบน pipeline ของ CI/CD
จากการแบ่งปันครั้งนี้ น่าจะพอทำให้เห็นว่า
เครื่องมือที่ใช้งานนั้น ช่วยลดงาน หรือ เพิ่มงาน !!!
ไว้เจอกันในการแบ่งปันรอบหน้าครับ
ลองปรับไปใช้งาน หรือ แก้ไขปัญหากันดู