เคยเจอปัญหากันไหม เวลาจะ develop แล้วติดเรื่องที่เรายังไม่สามารถยิงทดสอบที่ 3rd party ได้ และจะได้ยินคำเพิ่มมาว่า ต้อง stub ไว้ก่อนๆ ซึ่งในส่วนของ stub ก็จะมีทั้งส่วนที่เขียนเองหรือใช้ tool มาช่วย เช่น stubby4j เคยได้ยินกันหม๊ายย หรือเขียน stub เองด้วย golang
วันนี้จะมาลองเขียน stub ด้วย Postman กัน โดยเลือกใช้ mock server เข้ามาช่วยในเรื่องนี้
มาเริ่ม STEP แรกกันเลย
จากนั้นจะแสดงหน้าต่างประมาณนี้
อย่าลืม!!
ก่อนที่จะเริ่มสร้าง Mock Server ควรที่จะรู้ Spec API ไว้ก่อนแล้วเพื่อจะได้ลดปัญหาในการต่อกับระบบจริง
โดยมีส่วนประกอบหลักๆ ได้แก่
- Method
- Request Path
- Response Code
- Response Body
ถ้าเรามี Spec API ไว้แล้วเราสามารถมาสร้างรอไว้ก่อนได้เลย
โดยสมติว่า กาดจำลองการ response กลับของการ Days Calculator: Days Between Two Dates โดยกำหนดค่า ดังนี้
- Method -> GET
- Request Path -> /duration/19950802/20190723
- Response Code -> 200
- Response Body ->
{"from": "Wednesday, 2 August 1995","to": "Tuesday, 23 July 2019","resultDays": 8757,"resultSeconds": 756604800,"resultMinutes": 12610080,"resultHours": 210168,"resultWeeks": 1251}
เมื่อกำหนดเสร็จแล้วก็ Next เลยจ้า
จากนั้นก็ตั้งชื่อให้เจ้าตัวนี้ (ควรจะตั้งชื่อให้สื่อด้วยนะจ้า)
เมื่อกด Create จะขึ้นว่ามันสร้าง mock server ให้เราเสร็จและพร้อมมี URL ของ mock ให้ด้วยนะ สามารถเข้าไปดูได้
หลังจากนั้นเจ้า mock server ที่เราสร้างก็จะมาปรากฎอยู่ใน Collections ของเรา แต่นแต๊นนนนน เมื่อลองกด Send ก็จะ response ค่าที่เรา mock เอาไว้นั้นเองงง แถมไม่ต้องกังวลด้วยนะว่าจะต้องมาเปลี่ยน URL อะไรอีกไหม เพราะมัน set environment ไว้ให้เราแล้วในตัวแปร {{url}} นั้นเอง ซึ่งเราสามารถดูได้จากมุมขวาบนรูปฟันเฟืองนะ
พอคลิกที่ฟันเฟืองก็จะเห็น environment ต่างๆที่เรากำหนดเอาไว้ ซึ่งไม่ต้องกลัวที่จะต้องมาพิมพ์ด้วยมือเอง เพราะ tool ตัวนี้จัดการเรื่องนี้ไว้ให้แล้ว
ซึ่งใน {{url}} ที่ใช้นั่นก็คือ mock_duration นั้นเอง ถ้าเรา implement เสร็จแล้วก็ค่อยมาเปลี่ยนเป็น environment อื่นแทน
สามารถเพิ่ม test เข้ามาได้ด้วยนะ
ไม่ยากเลยเห็นไหมมม :) หวังว่าจะเป็นประโยชน์ให้แก่ชาว develop และ tester ทุกคนนะคะ
ลองหาอ่านเพิ่มเติมดูได้ที่นี่ :
https://learning.getpostman.com/docs/postman/mock_servers/setting_up_mock/
อย่าลืมเขียน test กันด้วยนะ สามารถอ่านได้ที่นี่ :
หรือเขียน test แล้วไม่อยาก fix code ใน script สามารถอ่านได้ที่นี่ :