Robot Framework 4.0 is now
Robot Framework ถือได้ว่าเป็นเครื่องมือ ที่ช่วยในการทำ Automate Test ที่นิยมที่สุดตัวนึงของโลกเลยก็ว่าได้ ปัจจุบันที่ผมเขียนอยู่นี่ ก็ได้ออกเวอร์ชั่น 4.0.3 beta เป็นที่เรียบร้อย เพื่อมาแก้บัคตัว 4.0.0 release เราไปดูกันว่าเวอร์ชั่นนี้ มีอะไรเปลี่ยนแปลงไปจากเดิมบ้าง…
Robot Framework 4.0 released เมื่อ Thursday March 11, 2021 นับเป็น Major release ที่มาพร้อมกับ Features ใหม่ ๆ แบบอย่างเยอะ ยกตัวอย่างเช่นการมาของ SKIP status รวมไปถึงการมาของ native IF/ELSE
สำหรับท่านที่มี pip
อยู่แล้วสามารถรันได้ด้วยคำสั่ง pip install --upgrade robotframework
หรือ pip install robotframework==4.0
สำหรับใครที่อาจจะยังไม่เคยใช้งาน หรืออยากทำความรู้จัก Robot Framework พร้อม Workshop สามารถกดลิ้งด้านล่างนี้ได้นะครับ
Robot Framework 4.0
มาดู Features ใหม่ ๆ กัน
SKIP
ก่อนน่านี้มีแต่SKIP
ตอนนี้เค้าเพิ่มSKIP IF
เข้ามาแล้วจ้าา กล่าวคือมี Condition ในการข้ามอะแหละ- Criticality has been removed อันนี้ จัดว่าดีงาม ก่อนน่านี้ ถ้าเราทำเทสพัง ก็คือหยุดหมด หลังจากนี้ชีวิตเราจะดีขึ้นครับ โดยที่เราสามารถใช้ Function ใหม่นี้ด้วยการใส่ Option
--critical
and--noncritical
ลงไป IF/ELSE
ใน Release นี้เราจะได้เขียน Robotframework ให้มันเป็นเหมือนการเขียนโปรแกรมมากขึ้นด้วยการมาของ Condition
*** Test Cases ***
Example
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
- Support nested control structures นี่ก็เป็นอีก Features นึงที่มันทำให้รู้สึกถึงการเขียนโปรแกรมมากขึ้น มาดูตัวอย่างกัน
FOR ${row} IN @{rows}
FOR ${cell} IN @{row}
IF "${cell}" != "IGNORE"
Process Cell ${cell}
END
END
END
นอกจากนี้ก็ยังมีอีกหลาย Features เลยครับ
@{items} = Set Variable ${var}[items]
FOR ${item} IN @{items}
Log ${item}
END
- Relative order of keywords and messages is preserved in log file
- Keywords after failures are shown in log file as “NOT RUN”
- Listener API v2
start/end_keyword
methods get keyword source information - Performance enhancements with big remote libraries
- Positional-only arguments
- Enhancements to parsing APIs
- Enhancements to running and result model objects
Backwards incompatible changes
ดู Features ใหม่ ๆ เจริญหูเจริญตากันแล้ว ไปดูสิ่งที่ ไม่ Support กับของเก่ากันบ้าง (ก็คือถ้ามีของเก่าอยู่ แล้วอยากจะมาใช้ Version ใหม่นี้ ต้องแก้นะไม่งั้นพัง)
- Old
:FOR
loop syntax is not supported anymore ใครที่ยังใช้ Syntax:FOR
ตั้งแต่สมัย Robot Framework สมัยพระเจ้าเหา เค้า Deprecated ตั้งแต่ Robot Framework 3.2 แต่ตอนนี้4.0
เค้า Remove แล้วน้าาาา
ของเก่า
:FOR ${animal} IN cat dog cow
\ Keyword ${animal}
\ Another keywordของใหม่ ซึ่งใช้มาตั้งแต่ Robotframework 3.1
FOR ${animal} IN cat dog cow
Keyword ${animal}
Another keyword
END
- Meaning of
@{var][item]
and&{var}[item]
syntax has changed ให้ไปดู Syntax ใหม่ได้ที่นี่ หรือ@{list}
and&{dict}
นั่นเอง หล่อ ๆ ไปอีก - Argument conversion changes
- Running and result models have been changed
- Generated output.xml has been changed
- Libdoc spec changes
- Other backwards incompatible changes
Conclusion
เรียกได้ว่าการมาของ Release นี้เพิ่ม Features มาอย่างเยอะ ผมไม่ได้เขียนอธิบายทั้งหมด ที่หยิบมาจะเป็นส่วนที่ Critical ที่ทาง Robot Framework เค้ากำหนด Priority มา ซึ่งท่านสามารถอ่านต่อได้จาก Release note
ทั้งนี้ทางทีมงาน Robot Framework เค้าก็ได้มีช่องทางสำหรับคำถาม หรือการแสดงความคิดเห็นได้ที่ robotframework-users, Robot Framework Slack หรือรายงาน ISSUE ได้ที่ issue tracker