มาลดเวลาการทำ API Testing ด้วยการใช้ Postman — Collection Runner กันเถอะะ :)

ถ้าจะพูดถึง การทำ API Testing แน่นอนว่า ตัว Postman testing tool นี่ต้องขึ้นอยู่ใน list อันดับต้นๆของบรรดาแก๊ง QA อย่างแน่นอนนนน .. เพราะว่ามี UI ที่ค่อนข้างใช้งานง่าย คนที่ไม่ได้มี technical skills มากมายอย่างเราก็สามารถใช้งานได้แบบสบายๆ ^___^

..​ แต่วันนี้ไม่ได้มาพูดถึงการใช้งานนะ เพราะคิดว่าทุกคนน่าจะเชี่ยวชาญกันมากอยู่แล้ว วันนี้จะมาพูดถึงตัว feature ที่ใช้ในการ organize ตัว test scenario ที่มันยุบยิบๆ((มากๆๆ)) ของ QA อย่างเราต่างหาก 555555 .. ซึ่งสิ่งนั้นก็คือ feature ที่เรียกว่า Collections นั่นเอง

ตัว Collections นี้ทำอะไรได้บ้าง?

เจ้าตัว Collection นี้ ประโยชน์หลักๆก็คือ ใช้ในการจัดการเก็บ request ต่างๆ ให้เป็นระเบียบอยู่ในหมวดหมู่ย่อยๆของตัวเอง และ ช่วยลดเวลาในการทำ test โดยการ run test ทั้งหมด ภายใต้ collection นั้นๆ ได้เพียงแค่คลิ้กเดียว

แล้วเจ้า Collections นี้มีประโยชน์ยังไง?

แน่นอนว่า เวลาเราจะทำการทดสอบ service ต่างๆเนี่ย มันค่อนข้างจะใช้เวลาทดสอบค่อนข้างเยอะ เนื่องจาก ..

  • จำนวน test case ที่จะถูกทำการทดสอบนั้นมีไม่น้อยเลย เพราะเราต้องทดสอบทั้ง case ที่เป็น positive, negative ทั้งหลายแหล่ว่า service เราจะ handle สถานการณ์ต่างๆได้เหมาะสมมั้ย
  • จำนวนรอบที่จะต้องทำการทดสอบใหม่ เนื่องจากเหตุผลใดใดก็ตามแต่ ((อิอิ))

จากแค่เหตุผล 2 ข้อข้างบน ก็น่าจะนึกภาพตามกันออกละเนอะ ว่าถ้าเราไม่มีการ จัดการ test case ของเราให้ดี เราจะต้องเสีย effort กันไปมากขนาดไหน ในการทำ regression test แต่ละรอบ

วิธีการใช้งานล่ะ?

สมมติว่าทีมของเรากำลังจะ implement โปรเจคนึงขึ้นมา มีชื่อโปรเจคว่า ABC ซึ่งประกอบไปด้วย API Service ย่อยๆ อีก 3 ตัว ได้แก่ Service A, Service B, และ Service C

อันดับแรกเลย เราก็ทำการเปิด Postman ขึ้นมา แล้วเลือกเมนูที่มีชื่อว่า “Collection”

ตั้งชื่อ Collection ที่ต้องการ แล้วก็กดปุ่ม Create

คราวนี้หลังจากทำการสร้าง Collection เรียบร้อย เราก็มาสร้าง folder ย่อยๆ ไว้แยก Service ต่างๆที่เรากำลังจะ implement ขึ้นมากัน โดยการ click ที่ปุ่ม “…” แล้วเลือก option ที่ชื่อว่า “Add Folder”

เวลาจะทำการทดสอบ เราก็จะสร้าง request ขึ้นมาใหม่ โดยแยกตามแต่ละ test case (1 request per 1 test case) แล้วก็จัดการจับแยกใส่แต่ละ folder ได้เลย

แล้วมันประหยัดเวลาตรงไหนนะ?

อ่านมาถึงตรงนี้ หลายคนอาจจะมีคำถามละ มันประหยัดเวลาตรงไหนกันนะ สร้าง request ยิบๆย่อยๆ เต็มไปหมด 555 ..​ ซึ่งสิ่งที่ช่วยประหยัดเวลาจริงๆก็คือ ขั้นตอนในการทำ regression test นั่นเอง

ตัว Collection นี้ มี feature ที่ชื่อว่า “Collection Runner” ช่วยในการ run test case ทั้งหมดที่เราต้องการภายใน 1 คลิ้กเท่านั้นนน!!

วิธีการก็คือ กดปุ่ม Run ในหน้าจอ เพื่อเปิดตัว Collection Runner

อันนี้คือหน้าตาของ Collection Runner ที่เราสามารถเลือกได้ว่า เราจะ run test ทั้งหมดที่มีอยู่ใน Collection นี้เลย หรือ อยากจะ run test แค่บาง Service ที่เราแยกไว้เป็น folder ย่อยๆ ก็ได้เช่นกัน

นอกเหนือจากการเลือกว่า จะ run test สำหรับ test case ไหนบ้างแล้ว เรายังสามารถกำหนดค่าต่างๆ พวกนี้ได้ด้วยนะ เช่น

  • Environment: กำหนด Environment ที่เราต้องการจะทำทดสอบ ซึ่งตัวแปรต่างๆในแต่ละ environment เราสามารถกำหนดได้ผ่านเมนูที่ชื่อว่า ‘Manage Environments’ ตามไปอ่านรายละเอียดเพิ่มเติมจาก link นี้ก่อนได้เลยจ้าา (click here)
  • Iterations: กำหนดจำนวนรอบในการ run ว่าอยากจะ execute ซักกี่รอบ
  • Log Response: กำหนดว่า เราอยากจะเก็บ response จาก api ยังไงบ้าง เช่น เก็บทั้งหมด ไม่เก็บเลย หรือ เก็บเฉพาะเคสที่มี error

ส่วนตัวเมนูที่เหลือพวก Delay, Data, Persist Variables นี่ ยังไม่เคยใช้เลย ไว้ถ้าคราวหน้าได้ลองใช้ จะเอามาแชร์ใหม่นะ แฮ่ะๆ

มี Test Report ให้ดูมั้ย?

แน่นอนว่า มีจ้าา อันนี้เป็นตัวอย่างของ test report ที่เราจะได้ออกมาหลังจาก run test ผ่านตัว collection runner แต่อย่างไรก็ตาม อย่าลืมไปใส่ Tests ในแต่ละ Service ของเราด้วยหล่ะ จะได้รู้ว่า เวลา run test แล้ว มัน Pass หรือ Fail

จบแล้ววว สำหรับตัว collection runner นี้ ใครเห็นว่ามีประโยชน์ก็ลองเอาวิธีไปปรับใช้กันดูได้ ส่วนตัวแล้วทำแบบนี้ ประหยัดเวลาในการทำ regression test ไปได้เยอะเลยทีเดียว ^__^