การทดสอบประสิทธิภาพด้วย pytest

Python เบื้องต้นสำหรับการทดสอบโค้ด

Alexander Levin

Data Scientist

Performance Testing คืออะไร

ประสิทธิภาพ (Performance) - ซอฟต์แวร์ใช้ทรัพยากรระบบเพื่อทำงานได้มีประสิทธิผลเพียงใด

การทดสอบประสิทธิภาพ (Performance Testing) - การทดสอบประเภทหนึ่งที่วัดประสิทธิภาพของซอฟต์แวร์

Python เบื้องต้นสำหรับการทดสอบโค้ด

เมื่อใดที่ต้องทดสอบประสิทธิภาพ

ทรัพยากร:

  • เวลาในการประมวลผล
  • CPU
  • RAM
  • ทรัพยากรอื่น ๆ

กรณีตัวอย่าง:

  • การเพิ่มความเร็วเว็บไซต์
  • แอปที่รับคำขอหลายล้านรายการ
  • การวางแผนเส้นทางสำหรับหุ่นยนต์ดูดฝุ่น
Python เบื้องต้นสำหรับการทดสอบโค้ด

Benchmark fixture

การติดตั้ง:

pip install pytest-benchmark
# Example_1.py
import time
def test_func(benchmark):
    benchmark(time.sleep, 1)

คำสั่ง CLI:

pytest Example_1.py
Python เบื้องต้นสำหรับการทดสอบโค้ด

ผลลัพธ์การ Benchmark

ผลลัพธ์หลังรันคำสั่ง CLI: ผลลัพธ์ benchmarking หลังรันคำสั่ง pytest

เมื่อใช้ time.sleep(3) แทน time.sleep(1): ผลลัพธ์ benchmarking หลังรันคำสั่ง pytest สำหรับโปรแกรมที่ใช้ time.sleep(3) แทน time.sleep(1)

Python เบื้องต้นสำหรับการทดสอบโค้ด

Benchmark decorator

# Example_2.py
import time
def test_func(benchmark):
    @benchmark
    def sleep_for_1_sec():
        time.sleep(1)

คำสั่ง CLI:

pytest Example_2.py
Python เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

  • Performance testing - การทดสอบประเภทหนึ่งที่วัดประสิทธิภาพของซอฟต์แวร์
  • ทรัพยากรมักมีจำกัด
  • มีประโยชน์เมื่อทรัพยากรถูกจำกัด
  • ใช้ pytest-benchmark fixture ได้โดย:
    • เรียกใช้ benchmark โดยตรง
    • ใช้ @benchmark เป็น decorator
  • ผลลัพธ์อธิบายกลุ่มตัวอย่างของการรันที่วัดได้ในหน่วยวินาที
Python เบื้องต้นสำหรับการทดสอบโค้ด

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการทดสอบโค้ด

Preparing Video For Download...