← Back to list

QA/Tester มาทำความรู้จักกับ Robot Framework กันเถอะ — ep.1

😸 สวัสดีครับ นี่จะเป็น ep แรกที่เกี่ยวกับซีรีย์ของการทำ Automate ด้วย Robot Framework with selenium ซึ่ง ep นี้จะมาพาทัวร์ทำความรู้จักกับ…

Chopin Punthanet · 2026-05-01 08:12 · 150 claps · 1.9 min read
#robot-framework #selenium #qa #testers #automated-testing
Open on Medium ↗

QA/Tester มาทำความรู้จักกับ Robot Framework กันเถอะ — ep.1

😸 สวัสดีครับ นี่จะเป็น ep แรกที่เกี่ยวกับซีรีย์ของการทำ Automate ด้วย Robot Framework with selenium ซึ่ง ep นี้จะมาพาทัวร์ทำความรู้จักกับ Robot Framework และโครงสร้างของ Robot Framework ครับ ก็ถ้าพร้อมแล้วก็มาเริ่มกันดีกว่าครับ

🤖 Robot Framework คืออะไร? 🧐

Robot Framework เป็น framework สำหรับการทดสอบแบบอัตโนมัติ (Automation Testing Framework)

  • ใช้ภาษาแบบ Keyword-Driven Testing (ภาษาใกล้เคียงกับมนุษย์ ทำให้อ่านง่าย เขียนง่าย)
  • รองรับหลายประเภทของการทดสอบ (เช่น Web, API, Database, CLI)
  • รองรับการทำงานร่วมกับ library อื่น ๆ เช่น SeleniumLibrary, AppiumLibrary, และอื่นๆ
  • เขียน Test case ได้ทั้งในรูปแบบ .robot file (Syntax พิเศษของ Robot) หรือแบบ Python

Selenium คืออะไร? 🤔

Selenium เป็นเครื่องมือ Open Source สำหรับการทดสอบเว็บแอปพลิเคชันผ่านเบราว์เซอร์

  • เป็นตัวควบคุมการทำงานของเบราว์เซอร์ เช่น เปิดเว็บ, คลิก, พิมพ์ ฯลฯ
  • สนับสนุนหลายภาษา (เช่น Python, Java, C#, JavaScript)
  • สนับสนุนหลายเบราว์เซอร์ (Chrome, Firefox, Edge, Safari)

โครงสร้างของ Robot Framework 😤

โครงสร้างของ Robot Framework จะประกอบไปด้วย 4 ส่วนหลักๆดังนี้

Settings

Settings เป็นส่วนของการตั้งค่าเริ่มต้นโปรแกรม โดยกำหนดค่าต่างๆ เช่น library, Resource, Variables, Path ต่างๆ แล้วก็อย่าลืม Import SeleniumLibrary ด้วย เพื่อให้มันสามารถเข้าไปควบคุมตัว Browser ของเราได้

*** Settings ***
Library           SeleniumLibrary
Resource          resource.robot
Variables         variables.py
Suite Setup       Setup Environment
Suite Teardown    Cleanup
Test Setup        Open Browser
Test Teardown     Close Browser
  • Library – โหลด Library ที่ต้องการใช้
  • Resource – โหลดไฟล์ Resource ที่เก็บ keyword
  • Variables – โหลดไฟล์ที่เก็บตัวแปรต้องนามสกุล .py สามารถใช้ Resource ในการเก็บ Variables ได้
  • Suite Setup/Teardown – คำสั่งที่รันก่อนและหลัง Test suite
  • Test Setup/Teardown – คำสั่งที่รันก่อนและหลังแต่ละ Test case

Variables

Variables เป็นส่วนของการประการค่าตัวแปรเพื่อง่ายต่อการเรียกใช้งานซึ่งมีทั้งหมดอยู่ 3 แบบคือ Scalar, List และ Dictionary …ไว้เดี๋ยวอธิบายส่วนนี้ในบทความถัดๆไปนะครับ

ตัวอย่าง

*** Variables ***
${URL}           https://example.com
${BROWSER}       Chrome
@{USERS}         user1    user2    user3
&{CREDENTIALS}   username=user    password=pass

Keywords

Keywords เป็นส่วนของการเขียน Function หรือขั้นตอน เพื่อออกแบบว่าอยากให้มันทำอะไรบ้างเมื่อถูกเรียกใช้งาน ซึ่งสามารถเรียกใช้งานได้บ่อยๆ หรือใช้ซ้ำได้

ตัวอย่าง

*** Keywords ***
Login To Website
    Input Text      id=username    ${CREDENTIALS['username']}
    Input Text      id=password    ${CREDENTIALS['password']}
    Click Button    id=loginBtn

Test Cases

Test Cases เป็นที่ที่เราจะเขียนสิ่งที่ต้องการ Test ลงไป โดยใช้ชุด keyword ใส่ลงไป

ตัวอย่าง

*** Test Cases ***
Login Successfully
    Open Browser    ${URL}    ${BROWSER}
    Input Text      id=username    ${CREDENTIALS['username']}
    Input Text      id=password    ${CREDENTIALS['password']}
    Click Button    id=loginBtn
    Page Should Contain    Welcome
    [Teardown]      Close Browser
  • แต่ละ Test case เริ่มต้นด้วยชื่อเทส แล้วตามด้วยชุด keyword
  • รองรับการใช้ [Setup] และ [Teardown] เฉพาะราย Test ได้

มาดูตัวอย่าง Robot Framework ใน 1 หน้ากันครับ (เขียนไม่ค่อยดีครับ55 ก็อปมา)

*** Settings ***
Library           SeleniumLibrary
Resource          ../resources/keywords.robot
Variables         ../variables/global_variables.robot
Test Setup        Open Browser To Login Page
Test Teardown     Close Browser

*** Variables ***
${URL}            https://example.com
${BROWSER}        chrome
${VALID_USER}     user1
${VALID_PASS}     password1

*** Keywords ***
Open Browser To Login Page
    Open Browser      ${URL}           ${BROWSER}
    input text        id=tt            ${VALID_USER}
    input text        id=qq            ${VALID_PASS}


*** Test Cases ***
Valid Login Test
    Open Browser To Login Page    
    sleep    5

ถ้างานจริงก็ควรแยกไฟล์ Robot Framework ออกจากกัน มันจะเรียกว่า Page Object เพื่อง่ายต่อการทำงานอาจแยกได้ประมาณนี้ (ไปก็อปมา ไม่ต้องตามนี้ก็ได้ อันนี้ก็ไม่ดีเท่าไหร่ )

Project/
│
├── tests/
│   ├── login_tests.robot
│   ├── search_tests.robot
│   └── ...
│
├── resources/
│   └── keywords.robot          ← รวม keywords
│
└── variables/
    └── variables.robot         ← ตัวแปรที่ใช้ร่วมกัน

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

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


메타데이터
post_id
be214ebe663f
slug
qa-tester-มาทำความรู้จักกับ-robot-framework-กันเถอะ-ep-1-be214ebe663f
url
https://medium.com/@punthanet/qa-tester-%E0%B8%A1%E0%B8%B2%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-robot-framework-%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%96%E0%B8%AD%E0%B8%B0-ep-1-be214ebe663f
canonical_url
https://medium.com/@punthanet/qa-tester-%E0%B8%A1%E0%B8%B2%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-robot-framework-%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%96%E0%B8%AD%E0%B8%B0-ep-1-be214ebe663f
author_url
https://medium.com/@punthanet
status
ok
fetched_at
2026-06-09 15:37:30