ความต้องการของการทำงานสำหรับ Load testing ของระบบงาน ด้วย Locust
ซึ่งอยู่บน Kubernetes cluster เป็นดังนี้
ทำการ setup Locust แบบ Master-slave หรือ Manager-worker
เพื่อช่วยสร้าง virtual user จำนวนมากตามที่ต้องการ
มีขั้นตอนการเตรียมดังนี้

สิ่งที่ต้องการคือ สร้าง Locust แบบ Master-slave

เพื่อช่วยสร้าง virtual user จำนวนมาก ๆ
จากนั้นส่งผลการทดสอบจาก target system
กลับมายัง master node เพื่อมาแสดงผลสวย ๆ ต่อไป
แสดงดังภาพ

ขั้นตอนที่ 1 ทำการสร้าง test case หรือ task สำหรับการทดสอบ

โดยเขียนด้วยภาษา Python
แสดงดังตัวอย่าง

คำอธิบาย
ทำการทดสอบ 2 endpoint คือ

  • / สำหรับ index หรือ หน้าแรก
  • /users สำหรับดึงข้อมูล user ทั้งหมด

ขั้นตอนที่ 2 สร้าง Dockerfile สำหรับสร้าง Image ของ Locust

ทำหน้าที่ run test case จากขั้นตอนที่ 1

โดยมีไฟล์ run.sh สำหรับกำหนด mode ของแต่ละ node
หรือในแต่ละ container ว่าทำงานแบบใด

  • standalone
  • master
  • worker

ทำการสร้าง Docker image ให้เรียบร้อย
ซึ่งสามารถสร้างผ่าน Docker, Docker compose หรือ Swarm ได้เช่นเดียวกัน
แต่ในครั้งนี้จะทำการ deploy บน Kubernetes cluster

ขั้นตอนที่ 3 สร้าง Manefest file สำหรับการ deploy Locust บน Kubernetes

จะประกอบไปด้วยไฟล์ต่าง ๆ ดังนี้

  • Deployment ของ master จำนวน 1 pod
  • Deployment ของ worker จำนวน 6 pod
  • Service สำหรับการ expose UI ของ Locust admin

Deployment ของ master จำนวน 1 pod

Deployment ของ worker จำนวน 6 pod

Service สำหรับการ expose UI ของ Locust admin

จากนั้นทำการ deploy บน cluster เป็นอันเรียบร้อย
เข้าใช้งาน Locust ผ่าน Web user interface ที่ deploy


ตัวอย่าง code เต็ม ๆ อยู่ที่ Github:Up1