KBTG: AUTOMATION TECH THE SERIES

[Automation Tech the Series] Ep.6 UFT Framework

Zax Csaino
KBTG Life
Published in
4 min readDec 15, 2022

--

เครื่องมือหรือ Tool คือหนึ่งในปัจจัยสำคัญในยุค Digital Transformation และการเลือก Tool ให้เหมาะสมกับประเภทของงานก็สำคัญเป็นลำดับต้นๆ นอกจากนั้นแล้วยังมีส่วนไหนที่เราพัฒนาและปรับปรุงได้อีกบ้าง เพื่อให้ผู้ใช้งานสามารถนำไปใช้ได้สะดวกและตรงตามเป้าหมายที่วางไว้

ก๊อกๆๆ สวัสดีท่านผู้อ่านทุกท่านครับ สำหรับท่านที่เข้ามาอ่านซีรีย์นี้เป็นครั้งแรก ยินดีด้วยครับ คุณมาถูกทางแล้ว 😁 นี่ก็เป็นอีพีที่ 6 ใน Tech Automation the Series หากติดใจ สามารถกลับไปอ่านอีพีก่อนหน้าได้ รับรองว่าได้ Technical กลับไปแบบจุกๆ แน่นอน

ส่วนการเดินทางของเราในอีพีนี้มีอะไรน่าสนใจบ้าง ตามมากันได้เลย

What’s framework?

ก่อนจะเข้าสู่เนื้อหาหลัก เรามาคุยกันก่อนว่า Framework คืออะไร หลายๆ ท่านที่เคยอ่าน Automation Tech the Series ของเรามาแล้ว น่าจะคุ้นเคย (หรือไม่คุ้น 😆) กับคำว่า Framework แต่ละท่านอาจจะให้คำนิยามของ Framework ไม่เหมือนกัน สำหรับผมเอง Framework นั้นเปรียบได้กับ Template (Structure) พร้อม Add-On (Library) ที่มาช่วยให้การทำงานของเรามีรูปแบบ ทำงานได้ดีและสะดวกสบายยิ่งขึ้น

What’s UFT?

UFT (Unified Functional Testing) เป็นอีกหนึ่ง Tool ที่มีการใช้งานใน KBTG และที่ Automation Core Team ซัพพอร์ต หลักๆ เราจะเน้นใช้งานกับ Application Type ที่เป็น Windows Application และ Web Application โดยภาษาที่ใช้ในการ Script คือ VB (เก่าแต่เก๋านะ) ซึ่งข้อจำกัดของ Tool ตัวนี้คือจำเป็นจะต้องมี License หรือเราต้องเสียเงินนั่นเอง อีกทั้งยังขาดบาง Function ที่ทำให้การใช้งานกับ Test Data มีประสิทธิภาพเมื่อเกิดการหมุนซ้ำ (Data Driven)

ในการนำ Tool มาใช้งานนั้น นอกจากจะต้องคิดเรื่อง Learning Curve แล้ว ยังต้องพิจารณาเรื่องการใช้งานในระยะยาวและเรื่อง Maintenance อีกด้วย อีกปัญหาที่ต้องพบเจอกันบ่อยๆ ในการ Script คือ Structure และ Library ที่นำมาใช้อาจจะมีความซับซ้อน หรือถ้าสามารถนำมาใช้ในภายหลังได้ ก็อาจจะไม่มีการจัดการที่ดี ทำให้การทำงานนั้นเป็นไปได้อย่างยากลำบาก

Framework Overview

ก่อนจะเข้าสู่ตัว Framework ผมขออธิบายเกี่ยวกับการใช้งานโดยทั่วไปของ UFT ก่อนนะครับ ในการสร้าง New Project ตัว Project จะถูกสร้างขึ้นโดยมี Structure ของ File ที่มีการเก็บ Action ตามที่เรา Record เพื่อนำมา Playback ในภายหลัง

Action recording

ซึ่งตัว Framework ที่ทำขึ้นนี้จะมีการจัดระเบียบ Structure ให้เป็นหมวดหมู่และใกล้เคียงกับ Structure ของตัว Robot Framework ทำให้ผู้ที่เคยใช้งาน Robot Framework มาก่อนสามารถเข้าใจได้ง่ายขึ้น ซึ่งจะแตกต่างกับ UFT ปกติที่มีการจัดเก็บ File ตาม Default ของ Program ทำให้ยากในการ Manage รวมถึงการนำไป Integrate กับ CI/CD Tool อื่นๆ ในภายหลัง

Framework flow

มาดูที่การทำงานของ Framework ของเรากันครับ Framework จะทำงานผ่านไฟล์ Excel โดยจะมีการอ่านค่าต่างๆ จาก Excel เข้ามาเป็นตัวกำหนดขั้นตอนในการ Test (Test Step) และมีรูปแบบการทำงานแบบ Data Driven คือการใช้ Data เป็นตัวหมุนแต่ละ Test Case

ขั้นตอนแรกจะมีการเช็คไฟล์ก่อนว่ามีไฟล์ที่เราต้องการดึงข้อมูลหรือไม่ แล้วทำการอ่านข้อมูลในไฟล์เข้ามา แต่ละ Sheet ก็จะทำหน้าที่ดังนี้

  1. Data Sheet ทำหน้าที่เก็บข้อมูลที่ใช้ในการ Run ในแต่ละ Test Case แบ่งตามแถว (1 แถวต่อ 1 Test Case) เพื่อนำไปใช้ร่วมกับ Test Step ต่อไป
  2. Main Sheet ทำหน้าที่เก็บ Step ที่ใช้ในการ Run ซึ่งจะ Call Function และ Mapping Object Repo กับ Value ที่ใช้ในการ Input หรือรับค่ากลับไปใช้งานต่อไป
  3. Settings Sheet ใช้ในการเก็บค่า Setting อื่นๆ เพื่อนำมาใช้เพิ่มเติมใน Automation Script

นอกจากนั้นเรายังมี Option เพิ่มเติม เพื่อให้การทำงานของเราง่ายขึ้น Framework สามารถใช้ Test Setup, Test Teardown, Suite Setup และ Suite Teardown ได้ เพียงแค่นำ Step ที่จะใช้งานแยกมาอยู่ใน Sheet ตามการทำงานที่เราต้องการ ยกตัวอย่างเช่น ต้องการให้ทำการ Close App ทุกครั้ง ก็เพียงนำ Step นั้นมาใส่ไว้ใน Test Teardown เป็นต้น

Suite Teardown

หลังจากอ่านค่าเข้ามา Driver จะเป็นตัวหลักในการจัดการนำค่าที่อ่านได้มาทำการแปลง Format, Assign ค่าที่รับเข้ามาให้กับระบบ และเริ่มการทำงานตาม Test Case โดยจะดำเนินการตาม Test Step และเรียกใช้งาน Test Data ที่ตรงกับ Test Case นั้นๆ

Test Step

ส่วน Function ที่ดึงมาจาก Library ตามการใช้งานหรือตาม Application Type ที่เราใช้งาน จะถูกเรียกใช้ใน Test Step ซึ่งในส่วนของการเรียกใช้งาน Object Repo และ Function ที่ถูกเรียกใช้งาน Utility จะเป็นส่วนที่จัดการตาม Function ที่ถูกเรียกใช้งาน Mapping และเป็นตัวติดต่อควบคุม Application ที่ถูกนำมา Test อีกด้วย

cscript Script_to_run.vbs 'testcase number' 'parameter1' 'parameterN'

ซึ่งในการทำงานของตัว Framework จะถูกเซ็ตให้มีการทำงานตามจำนวน Test Case ที่ถูกเขียนไว้ในไฟล์ Excel หรือสามารถใช้ Command เพิ่มเติ่มในการระบุ Test Case ที่ต้องการ Run ซึ่งเป็นโหมดเพิ่มเติมในการ Control การ Run Automation Script UFT ให้รองรับกับการทำงานมากยิ่งขึ้น

Result

สำหรับ Output ที่ออกมาของ Framework นั้น นอกจากจะมี Report แบบปกติที่ UFT เขามีกัน (อะแน่นอนซิ 😆) ของเรายังมี Result ออกมาอีก 2 แบบ นั่นก็คือ…

1. Log File เป็นแบบเดียวกับที่เราเห็น Log ตอน Debug เลยครับ คือจะพ่น Log ทุกๆ Action ว่าทำอะไรบ้างลงไปใน Text File

Log File

2. Test Status เป็นการพ่นผลการ Run ลงไปยังไฟล์ Excel ในส่วนของ Test Data แถมยังพ่น Start Time และ End Time ลงไปเพื่อให้สามารถนำไปต่อกับ Output Adapter เพื่อแปลง Data เป็น Xml File นำผลขึ้น Grafana ได้อีกด้วย 🤩

Excel Test Result File

Conclusion

จะเห็นได้ว่าในการใช้ Framework ทำให้การใช้งาน Tool ของเรามีประสิทธิภาพมากขึ้น และยังสามารถนำไป Reuse ได้ในภายหลัง รวมไปถึงการทำงานในโหมดที่แอดวานซ์มากขึ้น เช่น การทำงานด้วยกันแบบหลายๆ Module หรือ M&M (คุ้นๆ ชื่อกันใช่ไหมครับ)

สำหรับวันนี้ขอตัดจบแบบละครไทยไปก่อน หวังว่าโอกาสหน้าจะได้มาเขียนเนื้อหาอื่นๆ เกี่ยวกับเจ้า UFT Framework ตัวนี้ต่อ

See You Next Time, Bye Bye (´^ω^)ノ

Read More

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

--

--