Control Flow ใน Robot Framework¶
เวอร์ชัน: Robot Framework 5.0+ (ทุก syntax ในเอกสารนี้ใช้ได้กับ RF 5.0 ขึ้นไป) ทดสอบจริงกับ: RF 7.3.2 / Python 3.14.0
Prerequisites¶
1. โครงสร้างพื้นฐานของ RF¶
ไฟล์ .robot แบ่งเป็น section ด้วย *** ... ***:
*** Settings ***
Library Collections # import library เพิ่มเติม
*** Variables ***
${NAME} Alice # ตัวแปร global
*** Keywords ***
Say Hello
[Arguments] ${name} # keyword รับ argument
Log Hello, ${name}! # สั่งให้ทำอะไรบางอย่าง
*** Test Cases ***
My First Test
Say Hello Bob # เรียกใช้ keyword
- Test Case คือหน่วยทดสอบ 1 ชุด — RF จะรันทีละ Test Case
- Keyword คือ "คำสั่งที่นิยามเอง" เหมือน function — เรียกซ้ำได้
*** Settings ***ใช้ import Library หรือตั้งค่า suite
2. ตัวแปร ${variable} และ @{list}¶
RF มีตัวแปรสองรูปแบบหลักที่ใช้บ่อยใน control flow:
${variable} — ตัวแปรทั่วไป (string, number, boolean, หรือ object ใดๆ)
${score}= Set Variable 85 # เก็บตัวเลข
${name}= Set Variable Alice # เก็บ string
${flag}= Set Variable ${True} # เก็บ boolean
@{list} — ตัวแปรแบบ list (เก็บหลายค่า)
ความแตกต่างสำคัญ: @{fruits} ใน FOR loop จะ unpack รายการออกมา แต่ ${fruits} จะส่ง list ทั้งก้อนเป็น item เดียว — เรื่องนี้จะเจออีกครั้งในบทที่ 2
3. Built-in Keywords ที่ใช้บ่อยในเอกสารนี้¶
| Keyword | ทำอะไร | ตัวอย่าง |
|---|---|---|
Log |
print ข้อความลง log | Log Hello World |
Set Variable |
กำหนดค่าให้ตัวแปร | ${x}= Set Variable 10 |
Evaluate |
คำนวณ Python expression | ${sum}= Evaluate ${a} + ${b} |
Should Be Equal |
assert ว่าค่าสองอันเท่ากัน | Should Be Equal ${x} ${y} |
Create List |
สร้าง list ใหม่ | ${items}= Create List a b c |
Get Length |
นับจำนวน item ใน list | ${len}= Get Length ${items} |
Run Keyword And Return Status |
รัน keyword แล้วคืน True/False | ${ok}= Run Keyword And Return Status Should Be Equal 1 1 |
Evaluateเป็น keyword ที่สำคัญมากใน WHILE loop เพราะใช้คำนวณค่าใหม่ทุกรอบ เช่น${counter}= Evaluate ${counter} + 1
เอกสารนี้ครอบคลุมอะไร¶
| บท | หัวข้อ | ใช้เมื่อ |
|---|---|---|
| 01 — IF / ELSE | เงื่อนไข: IF, ELSE IF, ELSE, Inline IF | ต้องการทำอะไรบางอย่าง "เฉพาะเมื่อ" |
| 02 — FOR Loop | IN, IN RANGE, IN ENUMERATE, IN ZIP | ต้องวนซ้ำตาม list หรือตัวเลข |
| 03 — WHILE + BREAK + CONTINUE | WHILE, BREAK, CONTINUE | วนซ้ำจนกว่าเงื่อนไขจะเปลี่ยน |
| แบบฝึกหัด | โจทย์ Recall → Application → Synthesis | ฝึกใช้จริง |
| Glossary | คำศัพท์สำคัญ | เปิดดูอ้างอิง |
กฎสำคัญที่ต้องจำก่อนเริ่ม¶
1. ทุก keyword ต้องเป็น UPPERCASE:
2. ทุก block ต้องปิดด้วย END:
3. Indent 4 spaces ภายใน block:
4. Condition ใน IF/WHILE ใช้ Python expression: