เชื่อว่าไม่กี่ปีนี้ทุกคนอาจพอได้ยินคำว่า RPA หรือ Robotic Process Automation กันมาบ้าง แต่มันคืออะไร และมีประโยชน์อย่างไร บทความนี้เราจะมาคุยถึง RPA และการใช้ Robot Framework ในการทำงานแบบ RPA ดูครับ

เริ่มกันด้วย RPA คืออะไร

RPA หรือ Robotic Process Automation เป็นแนวคิดที่จะลดการทำงานซ้ำๆเดิมๆด้วยการใช้งาน automation เข้ามาช่วยนั่นเอง

ปัญหาที่สามารถแก้ด้วย RPA ตัวอย่างเช่น บริษัทมีระบบบัญชี และระบบ eCommerce ซึ่งระบบบัญชี บริษัทอาจไปซื้อมาจาก บริษัท ABC แต่ว่า eCommerce อาจทำขึ้นมาเอง หรือ จ้างบริษัทอื่นๆทำให้

ปัญหาที่มักจะเจอคือ eCommerce ไม่ได้เชื่อมเข้ากับระบบบัญชีนั่นเอง แต่ระบบบัญชีจำเป็นต้องใช้ข้อมุลจากการซื้อขายต่างๆ ในการสรุปยอดบัญชีรายเดือน วิธีการทำงานทั่วไปก็คือ พนักงานบัญชีก็ต้องมา print หรือ export รายการซื้อขายเป็น Excel แล้วนำไปไล่กรอกให้กับระบบบัญชีอีกทีหนึ่ง

ตามรูปนี้เลย จะเห็นว่ามีช่องว่างระหว่างระบบ eCommerce และ ระบบบัญชี ที่ใช้แรงงานคนอยู่

ซึ่ง RPA นี่เองคือพระเอกที่จะมาแก้ไขกระบวนการทำงานตรงส่วนนี้ โดยการแทนที่ Manual Task ด้วย Automate Script

ถ้าฟังๆดูแล้วคล้ายกับการทำ Automate Test เลยใช่ไหมล่ะครับ แต่จริงๆ แล้ว RPA กับ Automate Test มีบางอย่างที่แตกต่างกันอยู่คือ RPA ใช้เพื่อแก้ปัญหาการทำงานซ้ำๆ ที่มักจะเกิดจากการ เชื่อมต่อของข้อมูลระหว่างระบบ 2 ระบบ ที่ไม่ได้ออกแบบมาให้ใช้งานร่วมกัน และ RPA ไม่ได้สนใจในการตรวจสอบว่าระบบทำงานถูกต้องหรือไม่

ทำไมเราไม่ใช้ Test Framework มาทำ RPA Script ไปเลย

  1. Test Framework ออกแบบมาโดยเน้นการตรวจสอบการทำงานนั่นเอง ทำให้ Test script ที่เขียนออกมาจะหยุดการทำงานทันทีเมื่อมีปัญหาเกิดขึ้น เช่น Field ที่จะกรอกหาไม่เจอ หรือเปลี่ยนชื่อ ทำให้ Script หยุดทำงานทันที และไม่กรอกข้อมูลถัดๆไป
  2. การอ่าน Test Data ของ Test Script มักจะอยู่ในรูปแบบเฉพาะเจาะจง ไม่ได้ถูกสร้างมาเพื่อให้อ่านข้อมูลจาก excel ได้ง่ายๆ

มาทำความรู้จักกับ ExcelDataDriver Library

ExcelDataDriver เป็น library ของ Robot Framework ที่จะช่วยให้ Robot Framework สามารถทำงานของ RPA ได้อย่างสมบูรณ์ นั่นก็คือ มาแก้ปัญหา 2 ข้อหลักๆด้านบน

โดยฟีเจอร์หลักๆคือ

  1. สามารถอ่าน Data จาก Excel file และ Save ผลกลับ excel file ได้
  2. สามารถแยก 1 test data เป็น 1 task หมายความว่า task ไหนมีปัญหา ก็จะไม่ส่งผลกระทบกับ task อื่นๆนั่นเอง
  3. ระบบ report แยกำตามแต่ละ test data ทำให้สามารถตรวจสอบปัญหาที่เกิดขึ้นได้ง่ายมากขึ้นนั่นเองครับ

มาดูตัวอย่างการใช้งานเลย

  1. เริ่มด้วยการ install library เพิ่มด้วย command
pip install --upgrade robotframework-exceldatadriver

2. สร้าง Excel data file โดย copy จาก template (download)
ให้ตั้งชื่อ file ว่า BasicDemoData.xlsx โดย Template มีข้อมูลดังนี้ครับ

Columns สำคัญ:
  • [Status] เก็บผมลัพธ์การทำงาน Pass/Fail
  • [Log Message] เก็บข้อความ เช่น Error log
  • [Screenshot] Screenshot (รองรับการเก็บรูป 1 รูป)
  • [Tags] Robot Tag

Test data Columns:
เราสามารถเพิ่ม Column ต่างๆที่ต้องการใช้งานได้เช่น

  • Username
  • Password

โดย Excel File ของเราจะมีข้อมูลดังนี้ครับ

3. สร้าง Robot Framework Test suite

*** Setting ***
Library    ExcelDataDriver    ./test_data/BasicDemoData.xlsx    capture_screenshot=Skip
Test Template    Validate user data template

*** Test Cases ***
Verify valid user '${username}'    ${None}    ${None}    ${None}

*** Keywords ***
Validate user data template
    [Arguments]    ${username}     ${password}    ${email}
    Log    ${username}
    Log    ${password}
    Log    ${email}
    Should Be True    '${password}' != '${None}'
    Should Match Regexp    ${email}    [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}

จากตัวอย่างจะเป็นการเขียน script เพื่อตรวจสอบข้อมูลจาก Excel ว่า ข้อมูล password และ email ต้องถูก format ครับ

โดย Test Case จะต้องใส่ argument ${None} ให้เท่ากับ Test Template ในที่นี้มี 3 arguments คือ ${username}, ${password} และ ${email} ครับ

Verify valid user '${username}'    ${None}    ${None}    ${None}

หากเรารองรันดูจะได้ผลลัพธ์ประมาณนี้ครับ

และสามารถดูผลสรุปการรันได้ใน Folder RPA_report/summary_report.xlsx

หากใครสนใจข้อมูลเพิ่มเติมของ CoreRPAHive สามารถอ่านเพิ่มเติมได้ที่ https://github.com/qahive/robotframework-ExcelDataDriver

Previous articleWork life integration ในเมื่องานแม่งเยอะนัก ก็เอามาเป็นส่วนหนึ่งในการใช้ชีวิตซะเลย
Next articleQA กับเชื้อร้าย WYSIWYG