Performance Testing (Kiểm thử hiệu suất)

Performance Testing (Kiểm thử hiệu suất) là quá trình kiểm tra (ứng dụng, api, website,…) và đánh giá một hệ thống hoạt động dưới các điều kiện tải khác nhau, với mục tiêu xác định hiệu suất của hệ thống trong các tình huống sử dụng thực tế. Ngoài ra, kiểm thử hiệu suất còn giúp tối ưu hóa hệ thống để đạt được sự ổn định và khả năng mở rộng khi số lượng người dùng hoặc tải trọng tăng.

 

1. Mục tiêu của kiểm thử hiệu suất

  • Đo lường thời gian phản hồi: Kiểm tra hệ thống xử lý yêu cầu trong bao lâu và thời gian phản hồi lâu nó sẽ ảnh hưởng đến trải nghiệm người dùng
  • Xác định khả năng chịu tải: Đo lường số lượng người dùng hoặc yêu cầu hệ thống xử lý mà không gặp vấn đề về hiệu suất
  • Đánh giá khả năng mở rộng (scalability): Kiểm tra hệ thống có thể mở rộng để xử lý tải lớn hơn khi cần thiết.
  • Kiểm tra tính ổn định: Xem xét khả năng duy trì hiệu suất khi hệ thống hoạt động trong thời gian dài.
  • Phát hiện các lỗi hiệu suất: Nhận diện các điểm yếu trong hệ thống mà có thể gây ra sự cố khi tải tăng.

2. Các loại kiểm thử hiệu suất

                                 

  • Load Testing (Kiểm thử tải)
  • Đo lường khả năng của hệ thống khi xử lý lượng tải dự kiến hoặc bình thường(số lượng người dùng đồng thời và số lượng yêu cầu mỗi giây)

Ví dụ: Kiểm tra xem một trang web có thể phục vụ 500 người dùng đồng thời mà không bị giảm hiệu suất.

  • Stress Testing (Kiểm thử quá tải)
  • Kiểm tra xem hệ thống hoạt động như thế nào dưới tải trọng cao hơn mức bình thường. Mục tiêu là tìm ra giới hạn của hệ thống và xem nó sẽ thất bại như thế nào khi quá tải.

Ví dụ: Kiểm tra ứng dụng với 1000 yêu cầu đồng thời thay vì 100 yêu cầu

  • Spike Testing (Kiểm thử đột ngột)
  • Kiểm tra phản ứng hệ thống khi thay đổi đột ngột lưu lượng người dùng => kiểm tra khả năng phục hồi 

Ví dụ: Gửi 100 yêu cầu mỗi giây trong một khoảng thời gian ngắn, sau đó tăng lên 1000 yêu cầu mỗi giây trong vài giây và kiểm tra sự ổn định của hệ thống.

  • Endurance Testing (Kiểm thử độ bền)
  • Kiểm tra hệ thống khi hoạt động dưới tải liên tục trong một khoảng thời gian dài mà không bị giảm hiệu suất hoặc xảy ra sự cố.

Ví dụ: Để hệ thống chạy trong 24 giờ liên tục dưới tải nhẹ và kiểm tra xem có sự cố nào như rò rỉ bộ nhớ hoặc giảm hiệu suất không.

  • Scalability Testing (Kiểm thử khả năng mở rộng)
  • Đo lường khả năng mở rộng của hệ thống khi tải tăng lên xem hệ thống có thể tăng trưởng mà không gặp vấn đề hiệu suất.

Ví dụ: Kiểm tra xem hệ thống có thể xử lý 1000 yêu cầu mỗi giây thay vì 500 yêu cầu mỗi giây mà không gặp vấn đề gì.

  • Volume Testing (Kiểm thử khối lượng)
  • Đánh giá khả năng của hệ thống khi xử lý khối lượng lớn dữ liệu =>  kiểm tra tốc độ xử lý mà còn kiểm tra khả năng của hệ thống trong việc quản lý và truy xuất một lượng lớn dữ liệu.

Ví dụ: Kiểm tra cơ sở dữ liệu có thể xử lý hàng triệu bản ghi mà không gặp phải vấn đề về hiệu suất.

3. Các bước trong kiểm thử hiệu suất

  • Xác định mục tiêu kiểm thử
    • Hiểu rõ về yêu cầu của hệ thống (số lượng người dùng, loại tải, khả năng phục hồi,…)
    • Đặt các tiêu chí như thời gian phản hồi tối đa, số lượng người dùng đồng thời tối đa
  • Chọn công cụ kiểm thử hiệu suất
    • Lựa chọn công cụ phù hợp để mô phỏng người dùng và gửi các yêu cầu tới hệ thống ví dụ: Apache JMeter, Gatling, LoadRunner, Artillery, BlazeMeter, Locust
  • Thiết kế kịch bản kiểm thử
    • Thiết kế các kịch bản kiểm thử, xác định các loại tải mà bạn muốn mô phỏng: tải bình thường, tải tăng dần, tải đột ngột,…
    • Quyết định loại yêu cầu API, URL, dữ liệu gửi đi và các tham số cần thiết.
  • Thiết lập môi trường kiểm thử
    • Kiểm tra môi trường kiểm thử giống môi trường sản xuất để kết quả chính xác hơn
  • Thực hiện kiểm thử
    • Chạy các bài kiểm thử và thu thập dữ liệu về thời gian phản hồi, tỉ lệ lỗi, sử dụng tài nguyên hệ thống, các kịch bản kiểm thử trên nhiều mức tải khác nhau
  • Phân tích kết quả
    • Phân tích kết quả kiểm thử để xác định thời gian có đạt yêu cầu, tài nguyên có tối ưu, hệ thống có cần mở rộng hay cải thiện không?
  • Tối ưu hóa hệ thống
    • Dựa trên kết quả phân tích, tối ưu hóa mã nguồn, cơ sở dữ liệu, cấu hình hệ thống, hoặc tài nguyên phần cứng để cải thiện hiệu suất.

4. Lợi ích của kiểm thử hiệu suất

  • Đảm bảo chất lượng người dùng rằng hệ thống hoạt động ổn định và không gặp sự cố khi có số lượng người dùng lớn hoặc khi có tải đột ngột
  • Xác định khả năng mở rộng của hệ thống khi tăng tải
  • Giảm thiểu rủi ro giúp phát hiện các vấn đề tiềm ẩn về hiệu suất trước khi đưa hệ thống vào sản xuất
  • Tối ưu hóa tài nguyên như sử dụng CPU, RAM không hiệu quả, từ đó giúp tối ưu hóa hệ thống và tiết kiệm chi phí vận hành

Kết Luận

Kiểm thử hiệu suất là một phần quan trọng trong quá trình phát triển và duy trì ứng dụng, giúp đảm bảo rằng hệ thống có thể đáp ứng được yêu cầu về hiệu suất khi có số lượng người dùng lớn hoặc tải cao,  từ đó giúp cải thiện và tối ưu hóa hệ thống để mang lại trải nghiệm người dùng tốt nhất. 

Top bài viết trong tháng

Scroll to Top

FORM ỨNG TUYỂN

Click or drag a file to this area to upload.
File đính kèm định dạng .docs/.pdf/ và nhỏ hơn 5MB