ความต้องการของการทำงานสำหรับ 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
[gist id="713b6bcaa63654446d95314f0e0a34a7" file="Dockerfile"]โดยมีไฟล์ 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
[gist id="713b6bcaa63654446d95314f0e0a34a7" file="master-deploy.yml"]Deployment ของ worker จำนวน 6 pod
[gist id="713b6bcaa63654446d95314f0e0a34a7" file="worker-deploy.yml"]Service สำหรับการ expose UI ของ Locust admin
[gist id="713b6bcaa63654446d95314f0e0a34a7" file="master-ui-service.yml"]จากนั้นทำการ deploy บน cluster เป็นอันเรียบร้อย
เข้าใช้งาน Locust ผ่าน Web user interface ที่ deploy
ตัวอย่าง code เต็ม ๆ อยู่ที่ Github:Up1