Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2029

[Robot Framework] สร้าง Image เอาไว้ทดสอบระบบ web ด้วย Docker

$
0
0

retro-robots-vector-hires-1184x592

retro-robots-vector-hires-1184x592 ในการทดสอบระบบ Web application ด้วย Robot framework หนึ่งในปัญหาและสิ่งที่ต้องทำซ้ำ ๆ เสมอคือ
  • การติดตั้ง python
  • การติดตั้ง library ต่าง ๆ เช่น robot framework และ selenium2library ผ่าน pip
ยังไม่พอนะ ยิ่งนำการทดสอบไปทำงานร่วมกับระบบ Continuous Integration ด้วยแล้ว ก็ยิ่งลำบากในการติดตั้งอีก เช่น
  • การ configuration
  • การทดสอบแบบ Headless ผ่าน Xvfb virtual display
ซึ่งทั้งหมดนี้ทำบ่อยจนน่าจะเบื่อแล้ว ดังนั้นมาลองทำ image ด้วย Docker ไว้ใช้กันดีกว่า

เริ่มต้นด้วยสิ่งที่ต้องการประกอบไปด้วย

  • ระบบปฏิบัติการใช้ Alpine เพราะว่าเล็กดี
  • ติดตั้ง python และ pip
  • ติดตั้ง robot framework
  • ติดตั้ง selenium2library สำหรับทดสอบระบบ web application
  • ติดตั้ง firefox และ google chrome รวมทั้ง chrome driver
  • ติดตั้ง Xvfb virtual display
ดังนั้นจึงสร้าง Dockerfile ไว้ดังนี้ [gist id="ea2db1bed29f2145b55382561607274d" file="Dockerfile"]

โดยก่อนที่จะทำการสร้าง container มาใช้งานนั้น

ต้องทำการกำหนดค่าต่าง ๆ เหล่านี้ก่อน
  • กำหนดค่าต่าง ๆ สำหรับ Xvfb เช่น ความละเอียดของหน้าจอ
  • ทำการ start Xvfb
  • ทำการ run ชุดการทดสอบ ซึ่งอยู่นอก container ดังนั้นจึงต้องส่งเข้ามาเอง
  • หยุดการทำงานของ Xvfb
สามารถเขียน shell script ได้ดังนี้ [gist id="ea2db1bed29f2145b55382561607274d" file="run.sh"]

เมื่อทุกอย่างเรียบร้อยก็ทำการสร้าง image ด้วยคำสั่ง

[code] docker build -t docker-robot-framework . [/code]

จากนั้นทำการ run container เพื่อทดสอบระบบงานด้วย robot framework

โดยชุดการทดสอบตัวอย่าง จะอยู่ใน folder ชื่อว่า robots ซึ่งอยู่นอก container ดังนั้นจึงต้องกำหนด volume เข้าไปด้วยเสมอ ใช้งานด้วยคำสั่ง [code] docker run --rm \ -e ROBOT_TESTS=/robots/ \ -e BROWSER=firefox \ -v $(pwd)/robots:/robots \ -ti docker-robot-framework [/code] ผลการทำงานเป็นดังนี้ result-robot-01 เพียงเท่านี้ก็สามารถนำไปใช้งานแบบสบาย ๆ แล้วครับ ตัวอย่างของ Dockerfile อยู่ที่ Github::Robot Alpine Docker ปล. ยังมีปัญหากับ google chrome นะ

Viewing all articles
Browse latest Browse all 2029

Trending Articles