YAML (ย่อมาจาก YAML Ain't Markup Language หรือ Yet Another Markup Language) เป็นรูปแบบไฟล์ข้อมูลแบบข้อความ (human-readable data format) ที่ใช้สำหรับการเขียนและแลกเปลี่ยนข้อมูลที่มีโครงสร้าง
อ่านง่าย (Human Readable)
ใช้โครงสร้างที่เข้าใจง่าย ไม่ซับซ้อนเหมือน XML หรือ JSON
ใช้การเว้นวรรคแทนวงเล็บปีกกา
โครงสร้างของข้อมูลใช้ Indentation (การเยื้องบรรทัด) แทน {} หรือ []
รองรับโครงสร้างข้อมูลหลายแบบ
List (Array)
Key-Value (Dictionary, Object)
Multi-line String
รองรับการใช้เครื่องหมาย # เป็นคอมเมนต์
สามารถใช้ในหลายแอปพลิเคชัน
ใช้กำหนดค่า (Configuration) ใน Docker, Kubernetes, Ansible, GitHub Actions ฯลฯ
ใช้เป็นไฟล์กำหนดโครงสร้างของ API เช่น OpenAPI (Swagger)
ใช้จัดเก็บข้อมูลแทน JSON ได้
✅ การใช้ Key-Value แบบง่ายๆ
name: ChatGPT
version: 1.0
language: Thai
✅ การใช้ List (Array)
fruits:
- Apple
- Banana
- Orange
✅ การใช้ Dictionary (Object)
person:
name: John Doe
age: 30
address:
city: Bangkok
country: Thailand
✅ การใช้ Multi-line String
description: |
This is a multi-line text.
It can span multiple lines.
✅ การใช้ Boolean และ Null
isActive: true
isDeleted: false
notDefined: null
✅ การใช้ร่วมกัน
url: "https://example.com"
users:
- username: "testuser"
password: "password123"
- username: "admin"
password: "adminpass"
มาเริ่มจากการสร้าง Folder กันก่ออนเลย
สร้าง TestData
สร้าง Tests
requirements.txt เพื่อกำหนด libs ที่เราจะใช้
มาดูรายละเอียดในแต่ละไฟล์กันเล้ยยยยยยยยพี่น้อง
ไฟล์ requirements.txt
เพื่อใช้ในการติดตั้ง library ให้กับเจ้า robot ของเรา
ไฟล์ Eng.yaml
จะประกอบไปด้วยข้อมูลตัวอย่างที่เราจะใช้เรียกคือ JOM
ไฟล์ yaml.robot
*** Settings ***
Library yaml
Variables ${CURDIR}/../TestData/ENG.yaml
*** Test Cases ***
Example Test
[Documentation] ทดสอบการแสดงผลข้อความของ test data มาจาก yaml
Log To Console ${Profile.myName}
Log ${Profile.myName}
จากนั้นเราจะเห็นว่า Log ถูกแสดงขึ้นมา หลังจากที่เราเรียกใช้จากไฟล์ Eng.yaml
ไปดูใน log.html กันบ้างดีกว่า
จะเห็นได้ว่า variables ที่เราต้องการจาก yaml ไฟล์นั้นแสดงอย่างถูกต้องเช่นกัน