ไม่ได้เขียนอัพเดท Robot Framework มานาน เลยยกสรุป Feature เด่นๆ ตั้งแต่ version 4 – 6 มาใน blog เดียวเลย โดยผมขอไม่เรียงตาม Version นะครับ เพราะจะได้เรียงอัพเดทตาม Feature เพื่อให้เข้าใจได้ง่ายกว่า โดยล่าสุดตอนเขียน blog จะอยู่ที่ version 6.0.1

ก่อนอื่นมาอัพเดท Robot Framework กันก่อน

เริ่มจากการอัพเดท Robot Framework เป็น version ล่าสุดด้วยกันรันคำสั่ง

# window
pip install --upgrade robotframework

# mac / linux
pip3 install --upgrade robotframework

หลังอัพเดทแล้ว เราสามารถเช็ค version ของ robotframework ได้ด้วยคำสั่ง

robot --version
Robot Framework 6.0.1 

IF/ELSE

ก่อนนี้ถ้าจะเขียน condition เราต้องใช้คำสั่ง Run Keyword If แต่ตอนนี้เราใช้ IF ELSE ได้ตรงๆเลยมาดูตัวอย่างนี้กันครับ

IF    "${direction}" == "STRAIGHT"
	Log    Going straight
ELSE IF    "${direction}" == "LEFT"
	Log    Turning left
ELSE IF    "${direction}" == "RIGHT"
	Log    Turning right
ELSE
	Fail    Unrecognized direction: ${direction}
END

Loop

ทั้ง For Loop และ While Loop รองรับ Syntax ที่เป็น programming style มากขึ้น

Demo new for loop
    @{List}    Create List    LEFT    RIGHT
    FOR    ${element}    IN    @{LIST}
        Log    ${element}
    END

Demo new while loop
    ${count}    Set Variable    3
    WHILE    ${count} > 0
        Log    This is run limit to 3 times.
        ${count}    Evaluate    ${count} - 1
    END

RETURN

คำสั่ง RETURN ใหม่สามารถใช้งานได้หลากหลาย และเข้าใจง่ายกว่าเดิม

Is adult by age
    [Arguments]    ${age}
    IF    ${age} >= 18
        Log    Adult
        RETURN    Adult
    ELSE
        RETURN    Children
    END

TRY / EXCEPT

จะเหมือนกัน Try Catch ใน ภาษา Programming ทั่วไปแล้ว ทำให้เราเขียน Script ที่ซับซ้อน ได้ง่ายกว่าเดิม

Demo Try Except
    TRY
        Log    ${not existing variable}
    EXCEPT
        Log    found error
    FINALLY
        Log    always log
    END

Localization

เปิดโอกาศให้เราสามารถใช้ ภาษาอื่นๆในการเขียน Test Script แต่ก็ยังมีข้อจำกัดหลายๆอย่างเช่น IDE ส่วนใหญ่ยังไม่รองรับ รวมถึง Library ที่เป็น 3rd Party ก็ยังไม่รองรับเช่นกัน

Language: Thai

*** การตั้งค่า ***
ชุดคำสั่งที่ใช้    Dialogs

*** การทดสอบ ***
ทดสอบการ log ภาษาไทย
  Log    ทดสอบ
  Dialogs.Pause Execution

จะเห็นได้ว่าอัพเดทส่วนใหญ่เริ่มเป็นการปรับให้ Robot Framework รองรับการเขียน Test Script ที่ซับซ้อนได้มากขึ้น โดยการนำคำสั่งพื้นฐานของการเขียนโปรแกรมไปใส่ไว้ใน Test Step ได้ตรงๆ แต่ก็อยากให้เพื่อนๆระวังไว้เสมอว่า เราไม่ควรมี Test Step ที่ซับซ้อนมากเกินจำเป็น

นอกจากที่ผมเอามาแนะนำด้านบน ยังมี Feature อื่นๆอีกเพียบให้เราลองใช้ แนะนำให้ลองเข้าไปดูได้จาก Release Note

สนใจเรียนรู้แบบเจาะลึก

Robot Framework Selenium

Web Automated Test ด้วย

Robot Framework และ Selenium 6

บทความก่อนหน้านี้บันทึกการใช้งาน Applitools กับ Playwright
บทความถัดไปจัดการ Selenium Web driver ด้วย Web Driver Manager
Quality On Top