KBTG: AUTOMATION TECH THE SERIES

[Automation Tech the Series] Ep.5 API Testing ไม่ยากอย่างที่คิดด้วย Postman

Pirat Wongkum
KBTG Life
Published in
4 min readDec 14, 2022

--

ปฎิเสธไม่ได้เลยว่า ณ ปัจจุบันเราได้เข้าสู่ยุคใหม่แห่งการทำ Automation Testing กันแล้ว สังเกตได้จาก Automation Test Tool มากมายก่ายกอง จนเราเลือกเปรียบเทียบ Tool เหล่านั้นเพื่อใช้งานกันไม่ถูก มีทั้งสำหรับการทดสอบ Web API และ Mobile หรือแม้กระทั่งสามารถเทสทุกอย่างได้ใน Tool เดียว

ทั้งนี้ Tool แต่ละตัวมีวิธีเขียนเทส เขียนสคริป และโครงสร้างต่างกัน ตามแต่ความยากง่ายของ Tool ซึ่งทางทีมของเราก็มีการใช้ Tools ที่หลากหลายซะด้วยสิ…

สำหรับ Automation Tech the Series อีพี 5 นี้ เรามาดู Automation Test Tool ตัวแรกของทีมเรากัน นั่นคือ Postman หรือบุรุษ API นั่นเอง

API Method แบบเบียวๆ

ว่าแต่ Postman คืออะไรกัน?? 💌

หลายคนอาจจะคุ้นเคยกับ Tool ตัวนี้กันอยู่แล้ว แต่เราขอรีแคปกันอีกทีแล้วกันครับ

Postman คือเครื่องมือสำหรับการพัฒนาและทดสอบ API Service ซึ่งเป็นที่นิยมอย่างกว้างขว้าง เพราะการใช้งานที่แสนจะง่ายดาย มี UI สวยงาม และสามารถใช้ได้ฟรีอีกด้วย!!

💡 รู้จัก Postman เพิ่มเติมได้ที่ลิงก์ด้านล่างเลย

หน้าตาเจ้า Postman ที่เราคุ้นเคยกันดี

อย่างที่บอกไปว่า Automation Test Tool ของทีมเรามีค่อนข้างหลากหลายมาก ขึ้นอยู่กับแอปพลิเคชัน แพลตฟอร์ม หรือแม้กระทั่งความอยากใช้เลยทีเดียว แต่ที่หยิบยก Postman มาให้ชมกันก่อนเพราะว่าในยุคนี้ใครๆ ก็ต้องการความเร็ว ต้องการ Fast Feedback อยากได้ผลเทสไวๆ ซึ่งหนีไม่พ้น API Testing ที่จะทำให้เราได้ผลเทสในเวลาอันสั้น (100 Testcase/10 Mins แบบง่ายดาย)

การใช้งาน Postman ใน KBTG

จากภาพ จะเห็นได้ว่า Postman เป็นส่วนสำคัญส่วนหนึ่งของ Process เลย แต่ถ้าสังเกตดีๆ อีกทีจะเห็นว่า Postman อย่างเดียวไม่เพียงพอ เราต้องใช้อีก 1 ตัวช่วยสำคัญนั่นคือเจ้า Newman

จริงๆ แค่ Postman ก็เพียงพอถ้าจะรันเทสที่เครื่องเราเอง แต่ถ้าอยากให้ ออโตเม้ท ออโตเมท สุดๆ เราจะขาด Newman ไม่ได้ครับ (ไปดูความออโตเมทสุดๆ ได้ที่อีพี 4 ทำ Test Automation ให้ Automate ขึ้นไปอีก ด้วย CI/CD Tool จากทาง DevOps )

Newman ผู้ช่วยคนสำคัญของเรา

เกิดคำถามขึ้นอีกแล้วใช่ไหมล่ะ…

แล้ว Newman คืออะไรกัน 🦸‍♂️

หลายคนอาจจะคุ้นกับ Postman แต่ไม่ค่อยคุ้นกับ Newman เรามาทำความรู้จักกันดีกว่า

Newman เป็นเครื่องมือของ Postman Command Line ที่มีความสามารถในการส่ง API Requests, การรับ Response ที่ส่งกลับมา และการเทสระบบระหว่างการส่ง หากระบบของคุณมี Continuous Integration (CI) เช่น การใช้ Jenkins เราสามารถนำ Newman มาเป็นส่วนหนึ่งของ Jenkins Pipeline เพื่อทดสอบ Test Script ของเรา โดย Newman สามารถ Logs ข้อมูลต่างๆ ออกมาผ่าน CI System ของเรา รวมทั้งสร้าง Test Reports (HTML, JUnit) ได้

💡 รู้จัก Newman เพิ่มเติมได้ที่ลิงก์ด้านล่างเลยครับ

เมื่อเรารู้ถึงความสามารถของ Tool ที่จะนำมาใช้แล้ว ที่นี้มาดูกันต่อว่าเราจะใช้ยังไงกันดี ภาพมาาาาาา 👇

Flow การไหลของ Output Data

โดยปกติแล้ว องค์ประกอบพื้นฐานของ Test Automation หลักๆ จะมี 2 ส่วนด้วยกัน

  1. Test Data
  2. Test Script

แต่ก่อนที่เราจะ Deep Down ลงไปลึกกันกว่านี้ ขอแนะนำการสร้าง Postman Test Suite สำหรับใช้งานกันแบบง่ายๆ ก่อนครับ

  1. เริ่มจากสร้าง Postman Collection กันก่อน โดยภายใน Collection จะเก็บ API Schemas (URL, Request Body, Parameter, Header) ทั้งหมดของเรา
  2. สร้าง Test Set สำหรับแต่ละ API Schemas ให้กับ Test Suite ของเรา
  3. กำหนด Environment Variables สำหรับใช้ใน Test Suite
เริ่มต้นด้วย Postman Collection ที่เก็บ API Schemas และ Test Set ของเรา
กำหนด Environment Variables

เมื่อเราเตรียม Test Suite บน Postman Collection เรียบร้อยแล้ว หลังจากนี้งานของเราก็ง่ายแล้วครับ เพราะของที่ต้องเตรียมสำหรับเอาเข้า Test Framework ของเรานั้นได้ถูกสร้างไปแล้วยังไงล่ะ ลองไปดูกันเลย 👇

1. Test Script 🎼

ในส่วนของ Test Script เราสามารถ Export ออกมาจากตัว Postman Collection ได้เลย (ทั้งนี้ทั้งนั้นในตัว Postman ของเราต้องมีเทสด้วยนะครับ ไม่งั้นเราก็ไม่รู้จะเอาอะไรมาเทสสิ)

Export ไฟล์ JSON ในส่วนที่เป็น Request และ Test

2. Test Data 💾

ส่วนใหญ่ Test Data ของเราจะมาในรูปแบบไฟล์ Excel หรือ JSON ที่ผ่านการคิดวิเคราะห์แต่ละชุด Data อย่างละเอียด

แต่สำหรับ Postman แล้ว เราจะขอ Export Environments Variable ออกมาเป็น Test Data ในรูปแบบไฟล์ JSON เลย ง่ายดีใช่ไหมล่ะครับ

Export ไฟล์ JSON ในส่วนที่เป็น Environment Variable

เมื่อเราได้ทั้ง Test Script และ Test Data มาแล้ว ก็นำมาวางในโฟลเดอร์ของ Robot Framework เรา

เอ๊ะ! นี่มันไม่ใช่ Tool ตัวเดียวแล้วนี่

ใช่แล้วครับ เรามีการประยุกต์ใช้ Postman x Robot Framework เข้าไปอีกขั้น เพื่อที่จะรีดพลังสูงสุดของ Tool ออกมาใช้และให้มันออโตเม้ททท ออโตเมทยังไงล่ะ (ซึ่งเจ้าตัวนี้เราจะพูดถึงต่อไปในอีพีหน้าๆ ครับ)

เมื่อ 2 Tools ทำงานร่วมกัน ความว้าวซ่าจึงบังเกิด

จากนั้นลองรันผ่าน Jenkins เพื่อดูผลกันเลย

newman run postman_collection/test.json --insecure --suppress-exit-code --reporters cli,htmlextra,junit --reporter-htmlextra-template libs/grafana-shared-library/newman_report_to_grafana/template/custom-theme-dashboard.hbs 
--reporter-htmlextra-export newman/report.html --reporter-junit-export newman/report.xml --delay-request 2000 --global-var GRAFANA_URL=$Grafana_Dashboard_URL

เราจะได้ผลเทสจาก Newman ออกมาหน้าตาแบบนี้…

หน้าตา Report จาก Newman

ซึ่งสุดท้ายแล้ว…

เมื่อเราได้ report.html หน้าตาประมาณนี้ออกมาแล้ว ก็ถือว่ายังไม่ Completed และจุใจเราสักเท่าไร เราจึงนำผลรันที่ได้ไปแสดงบน Grafana Dashboard ต่อไป (ตามรูป ‘การใช้งาน Postman ใน KBTG’ ด้านบน) เพื่อให้ทุกคนสามารถเข้ามาดูผลรันแบบสวยงามได้ง่ายๆ ก็เป็นอันสิ้นสุด Process การทำงานของเราแล้วครับ

ภาพสปอยของ Dashboard ของเรา

ตอนนี้เราก็เดินทางกันมาไกลพอสมควรแล้ว ไว้เจอกันต่อในอีพีหน้าของ Automation Tech the Series ครับ เราจะยังได้เจอเรื่องราวและ Tools น่าสนใจอีกเพียบ อดใจรอกันนะครับ

KBTG Automation Tech the Series

Read More

สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech

--

--