← Back to list

Robot Framework — ep.3 Suite Setup, Test Setup, Variable ทั้ง 3 แบบและอื่นๆ

😸 สวัสดีครับ เท้าความจาก ep.1 ซึ่ง ep นี้จะเป็นการเสริมรายละเอียดต่างๆ, detail, หรือความรู้เพิ่มเติมในแต่ละส่วนของโครงสร้าง Robot…

Chopin Punthanet · 2026-05-16 12:15 · 100 claps · 2.4 min read
#robot-framework #qa #testers #automated-testing
Open on Medium ↗

Robot Framework — ep.3 Suite Setup, Test Setup, Variable ทั้ง 3 แบบและอื่นๆ

😸 สวัสดีครับ เท้าความจาก ep.1 ซึ่ง ep นี้จะเป็นการเสริมรายละเอียดต่างๆ, detail, หรือความรู้เพิ่มเติมในแต่ละส่วนของโครงสร้าง Robot Framework เช่น Suite Setup/Teardown , Test Setup/Teardown , Variable ทั้ง 3 แบบ Scalar, List, Dictionary และอื่นๆครับ ก็ถ้าพร้อมแล้วก็มาเริ่มกันดีกว่าครับ

Settings ✏️เสริม ⬆️

Suite Setup/Teardown และ Test Setup/Teardown 😤

Suite Setup/Suite Teardown 🫥

  • Suite Setup → ทำก่อนเริ่ม Test Case แรก
  • Suite Teardown → ทำหลังจบ Test Case สุดท้ายสุด
*** Settings ***
Suite Setup       เปิด Browser
Suite Teardown    ปิด Browser

*** Test Cases ***
TC1
    ขั้นตอน TC1

TC2
    ขั้นตอน TC2

ลำดับการทำงานจะเป็นแบบนี้

  1. ✅ เริ่มด้วย Suite Setup → เปิด Browser
  2. ▶️ รัน Test Case 1 (TC1)
  3. ▶️ รัน Test Case 2 (TC2)
  4. ✅ ปิดท้ายด้วย Suite Teardown → ปิด Browser

Test Setup/Test Teardown 🫥

  • Test Setup → ทำก่อนแต่ละ Test Case
  • Test Teardown → ทำหลังแต่ละ Test Case
*** Settings ***
Test Setup      เตรียมข้อมูลก่อนเทสต์
Test Teardown   ล้างข้อมูลหลังเทสต์

สรุป

Variables ✏️เสริม ⬆️

ในส่วนของ Variable ซึ่งมีทั้งหมด 3 แบบ Scalar, List, Dictionary

1. Scalar Variable (${variable})

  • ตัวแปรแบบ Scalar คือ ตัวแปรที่เก็บค่าเดี่ยวๆ หนึ่งค่า (สัญลักษณ์ ${})
  • ค่าที่เก็บได้หลากหลาย เช่น ข้อความ (String), ตัวเลข (Number), Boolean, หรือแม้แต่ Object ใดๆ
*** Variables ***
${username}    NameTesttttt

*** Test Cases ***
Example Scalar
    Log    Username is   ${username}

2. List Variable (@{variable})

  • ตัวแปรแบบ List คือ ตัวแปรที่เก็บค่า หลายค่า ในรูปแบบลำดับ (Sequence) (สัญลักษณ์ @{})
  • ใช้เก็บชุดข้อมูล เช่น รายการชื่อ, ตัวเลข, หรือ Object หลายๆ ตัว
*** Variables ***
@{fruits}    apple    banana    cherry
@{numbers}   1    2    3    4    5

*** Test Cases ***
Example List
    Log Many               @{fruits}     # เขียนแบบนี้ก็ได้
    Log First fruit is     ${fruits}[0]  # ระบุเป็นตัวซึ่ง index นับจาก 0,1,2,...

  • ดูง่ายๆเลยว่า ${fruits}[0] คือ index ที่ 0 ก็คือ apple นั้นเอง

3. Dictionary Variable (&{variable})

  • ตัวแปรแบบ Dictionary คือ ตัวแปรที่เก็บคู่ key-value (สัญลักษณ์ &{})
  • ใช้เก็บข้อมูลที่ต้องการ Index ด้วย key แทนตำแหน่ง เช่น ข้อมูลที่มีชื่อ Field ระบุชัดเจน
*** Variables ***
&{user}    name=JohnDoe    age=30    country=Congo

*** Test Cases ***
Example Dictionary
    Log    User name     ${user['name']}
    Log    User age      ${user['age']}
    Log    User country  ${user['country']}

  • ก็จะเห็นว่าเก็บข้อมูลแบบ key-value name=JohnDoe age=30 country=Congo ถ้าเรียก key ตัวไหน value ตัวนั้นก็ออก

Variables ด้วยไฟล์ .yaml

เราสามารถสร้างไฟล์เพื่อเก็บ Variables ในรูปแบบไฟล์ .yaml ได้นะ อย่าลืม Import YAMLLibrary ด้วยนะ สามารถโหลดได้ด้วยคำสั่งด้านล่างเลย

pip install robotframework-yaml
*** Settings ***
Library         SeleniumLibrary
Library         YAMLLibrary
Variables       ../resources/config/config.yaml
Variables       ../resources/testdata/testdata.yaml

ข้อดีของไฟล์ .yaml

  • ไฟล์ .yaml คือไฟล์ข้อมูลที่เก็บอยู่ใน รูปแบบ key-value

Robot Framework จะมองว่า key ทั้งหมดกลายเป็น ตัวแปรของ Robot Framework โดยที่ ค่าใน YAML จะยังเป็น String ตามประเภทเดิม

ตัวอย่าง .yaml

baseUrl: https://Testttt.co/
timeout: 5
enabled: true
tags: [login, smoke]

=> ถ้ากลายเป็นใน Robot Framework

${baseUrl} = "https://Testttt.co/"
${timeout} = 5
${enabled} = True
${tags} = [‘login’, ‘smoke’]

จะเห็นว่าไฟล์ .yaml จะเขียนง่ายมากๆ ทำให้ไฟล์ variables ของเราไม่ต้องไปใส่พวกวงเล็บ ${} ทำให้สะดวกมากๆ (แต่ผมไม่ค่อยชิน เลยไม่ใช้เลย55 )

Keywords ✏️เสริม ⬆️

เราสามารถใส่ ชื่อไฟล์. ข้างหน้า keyword ได้ เช่น CommonKeywords.Login to website

  • เพื่่อช่วยให้ชัดเจนว่า keyword นี้มาจากไฟล์ไหน (แต่ไม่จำเป็นต้องใส่ก็ได้นะ ผมก็ไม่ใส่) โดยเฉพาะในกรณีที่มีหลายไฟล์ Resource ถูก Import เข้ามา
*** Keywords ***
Login to website
    CommonKeywords.Login to website      xxxxx
    CommonKeywords.input some values     xxxxx

คร่าวๆก็จะประมาณนี้ครับ อาจจะมีอะไรที่ผมตกหล่นไปหรือมีผิดพลาดบ้าง ก็ขออภัยมา ณ ที่นี้ด้วยครับ

🫠 ทั้งหมดก็จะมีประมาณนี้ ถ้าชอบก็อย่าลืมกดตบมือและแชร์เพื่อเป็นกำลังใจให้ผมด้วยนะครับ และอย่าลืมติดตามบทความถัดๆไปของผมด้วย ขอบคุณทุกๆท่านที่อ่านจนจบนะครับ ขอบคุณมากครับ 🥳


메타데이터
post_id
2d42e8d57426
slug
robot-framework-ep-3-suite-setup-test-setup-variable-ทั้ง-3-แบบและอื่นๆ-2d42e8d57426
url
https://medium.com/@punthanet/robot-framework-ep-3-suite-setup-test-setup-variable-%E0%B8%97%E0%B8%B1%E0%B9%89%E0%B8%87-3-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%AD%E0%B8%B7%E0%B9%88%E0%B8%99%E0%B9%86-2d42e8d57426
canonical_url
https://medium.com/@punthanet/robot-framework-ep-3-suite-setup-test-setup-variable-%E0%B8%97%E0%B8%B1%E0%B9%89%E0%B8%87-3-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%AD%E0%B8%B7%E0%B9%88%E0%B8%99%E0%B9%86-2d42e8d57426
author_url
https://medium.com/@punthanet
status
ok
fetched_at
2026-06-09 15:37:30