มาทำ LoadTesting ด้วย locust.io

การทำ Load Testing ด้วย locust.io เป็นกระบวนการที่ช่วยในการทดสอบประสิทธิภาพและความทนทานของระบบโดยการสร้างการตั้งค่าและจำลองผู้ใช้แบบพร้อมกันหลายคน

เริ่มต้นด้วยการติดตั้ง locust.io โดยใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

pip install locust

เมื่อติดตั้งเสร็จสมบูรณ์ คุณสามารถสร้างไฟล์สคริปต์ของการทดสอบด้วย locust.io ได้โดยใช้ภาษา Python

ตัวอย่างการสร้างไฟล์สคริปต์ Load Testing ด้วย locust.io:

from locust import HttpUser, task, between

data = {
    "username": "username",
    "password": "password"
}


class WebsiteTestUser(HttpUser):
    wait_time = between(0.5, 3.0)

    def on_start(self):
        response = self.client.post(
            "/v1/signin", json=data).json()
        self.header = {"authorization": response["access_token"]}

    @task(1)
    def testapi01(self):
        self.client.get(
            "/v1/dashboard", headers=self.header)

    @task(2)
    def testapi02(self):
        self.client.get(
            "/v1/event", headers=self.header)

    @task(3)
    def testapi03(self):
        self.client.get(
            "/v1/test?search=&page=1&pageSize=100", headers=self.header)

ในตัวอย่างนี้ เราสร้าง Class ชื่อ MyUser ที่สืบทอดจาก HttpUser ซึ่งเป็น Base class ของ locust.io และกำหนดเวลาหน่วงระหว่างการส่งคำขอระหว่าง 1-2 วินาที ในเมท็อด เรียกใช้ endpoint ที่ต้องการทดสอบผ่าน self.client.get()

เมื่อคุณได้กำหนดสคริปต์การทดสอบเสร็จสิ้น ให้บันทึกไฟล์และปิดตัวอย่างการทดสอบ

คุณสามารถเริ่มต้นการทดสอบด้วย locust.io ได้โดยใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

locust -f mylocustfile.py

โดยในตัวอย่างเราใช้ชื่อไฟล์ mylocustfile.py สามารถตั้งชื่อไฟล์ตามที่คุณต้องการได้

หลังจากนั้น ให้เปิดเบราว์เซอร์และไปที่ http://localhost:8089 เพื่อเข้าสู่หน้าตรวจสอบผลลัพธ์และสถิติการทดสอบของ locust.io

การทำ Load Testing ด้วย locust.io เป็นเครื่องมือที่มีประสิทธิภาพและความยืดหยุ่นในการทดสอบและปรับปรุงระบบของคุณ แต่ควรระวังในการใช้งานร่วมกับระบบที่มีความสำคัญและต้องการการทดสอบอย่างรอบคอบ ควรใช้ locust.io ในการทดสอบบนระบบเฉพาะเพื่อป้องกันความเสียหายที่อาจเกิดขึ้น