แพลตฟอร์มที่ใช้ในการสร้างและจัดการแอปพลิเคชันในรูปแบบของ container
ช่วยให้แอปพลิเคชันทำงานได้ในสภาพแวดล้อมที่เหมือนกันบนหลายๆ เครื่อง
สภาพแวดล้อมที่เหมือนกัน: ช่วยให้การทดสอบทำงานได้เหมือนกันทุกที่ (personal laptop, เซิร์ฟเวอร์)
สะดวกในการทำ CI/CD: สามารถทำการทดสอบและ deploy อัตโนมัติได้ง่ายขึ้น
ประหยัดเวลา: ไม่ต้องตั้งค่าใหม่ทุกครั้ง การติดตั้ง dependencies อยู่ใน container
ใช้งานร่วมกับเครื่องมืออื่นๆ ได้ง่าย: เช่น Selenium, Appium, API ทดสอบ
# ใช้ฐานของ Docker image เป็น Python เวอร์ชัน 3.9
FROM python:3.9-slim
# กำหนดโฟลเดอร์ทำงานภายใน Container เป็น /robot_tests
WORKDIR /robot_tests
# อัปเดต package list และติดตั้งไลบรารีที่จำเป็นสำหรับการใช้งาน Robot Framework เอาเท่าที่จำเป็นนะเด็กๆๆๆ 555+
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
gnupg \
ca-certificates \
curl \
unzip \
xdg-utils \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# ติดตั้ง Robot Framework ผ่าน pip
RUN pip install --no-cache-dir robotframework
# สร้างโฟลเดอร์สำหรับเก็บไฟล์ทดสอบ และผลลัพธ์
RUN mkdir -p /robot_tests/tests /robot_tests/results
# ตั้งค่าตัวแปรแวดล้อมสำหรับ display port เพื่อป้องกันการ crash ในบางกรณี
ENV DISPLAY=:99
# คำสั่งเริ่มต้นของ Container ให้รัน Robot Framework
ENTRYPOINT ["robot"]
CMD ["--outputdir", "results", "tests"]
ไฟล์ตัวอย่าง .robot
*** Settings ***
Documentation ตัวอย่างการรันเทสใน Robot Framework
*** Test Cases ***
Example Test
[Documentation] ทดสอบการแสดงผลข้อความใน Console และตรวจสอบค่าที่เท่ากัน
Log To Console Hello, My name is JOM DIESEL!
Should Be Equal 1 1
(กรณีถ้ายังไม่ได้สร้างนะครับ)
docker build -t robot-framework .
docker run --shm-size=1g \
-v $(pwd)/tests:/robot_tests/tests \
-v $(pwd)/results:/robot_tests/results \
robot-framework
หลังจากรันเสร็จ สามารถดูไฟล์ผลลัพธ์ในโฟลเดอร์ results/ ได้ดังนี้ แล้วแต่นะว่าไปเก็
ls results/
ถ้าเจอไฟล์ log.html และ report.html ให้เปิดดูผลลัพธ์โดยใช้
xdg-open results/log.html # สำหรับ Linux
open results/log.html # สำหรับ macOS
หรือเปิดผ่าน File Explorer แล้วเข้าไปที่โฟลเดอร์ results/ แล้วดับเบิ้ลคลิกไฟล์ log.html