

Một ứng dụng có thể hoạt động ổn định khi chỉ có vài người dùng nhưng bắt đầu phản hồi chậm, phát sinh lỗi hoặc quá tải khi lưu lượng tăng cao. Đây là lý do kiểm thử chức năng thôi chưa đủ để đánh giá một hệ thống trước khi đưa vào vận hành thực tế.
Performance Testing giúp kiểm tra hệ thống phản hồi nhanh đến đâu, chịu được bao nhiêu tải và có duy trì trạng thái ổn định khi nhu cầu sử dụng tăng hay không. Vậy Performance Testing là gì, hoạt động như thế nào và cần theo dõi những chỉ số nào? Cùng tìm hiểu chi tiết dưới đây.
Performance Testing (kiểm thử hiệu năng) là phương pháp kiểm thử nhằm đánh giá khả năng hoạt động của hệ thống hoặc ứng dụng dưới những mức tải khác nhau.
Performance Testing thường tập trung vào bốn khía cạnh chính gồm:
Performance Testing không chỉ kiểm tra một ứng dụng có hoạt động được hay không mà còn trả lời những câu hỏi như:
Qua đó, đội ngũ phát triển có thể xác định các performance bottleneck (điểm nghẽn hiệu năng) trước khi chúng ảnh hưởng đến người dùng thực tế.

Performance Testing thường hoạt động bằng cách mô phỏng những workload tương tự môi trường thực tế, sau đó đo lường cách hệ thống phản ứng khi tải thay đổi.
Ví dụ, với một website thương mại điện tử, công cụ Performance Testing có thể tạo hàng nghìn người dùng ảo cùng thực hiện các hành động như:
Truy cập website → tìm kiếm sản phẩm → xem chi tiết → thêm vào giỏ hàng → thanh toán.
Trong quá trình kiểm thử, hệ thống monitoring sẽ ghi lại các chỉ số như response time, throughput, error rate, CPU, RAM và mức sử dụng tài nguyên.
Performance Testing thường gồm 6 bước chính.
Trước tiên cần xác định hệ thống được kỳ vọng đạt mức hiệu năng nào.
Một số tiêu chí có thể đặt ra như:
Các tiêu chí này đóng vai trò benchmark để so sánh với kết quả kiểm thử sau đó.
Đội ngũ kiểm thử xác định những hành vi người dùng hoặc workload cần mô phỏng.
Kịch bản nên phản ánh cách hệ thống được sử dụng trong thực tế thay vì chỉ gửi một loại request lặp đi lặp lại.
Ví dụ với một nền tảng eLearning:
Sau đó xác định số lượng virtual user, dữ liệu kiểm thử và thời gian chạy.
Môi trường kiểm thử nên gần giống môi trường production về:
IBM cũng khuyến nghị tích hợp các công cụ monitoring để thu thập performance metrics trong quá trình kiểm thử.
Nếu môi trường test khác quá nhiều so với production, kết quả đo được có thể không phản ánh chính xác khả năng vận hành thực tế.
Công cụ Performance Testing sẽ tạo các virtual user hoặc request dựa trên workload đã thiết kế.
Trong quá trình này, đội ngũ vận hành cần theo dõi liên tục:
Khi tải tăng, các chỉ số này cho biết thành phần nào bắt đầu trở thành bottleneck.
Kết quả kiểm thử được so sánh với performance benchmark đã thiết lập ban đầu.
Ví dụ:
Chỉ số | Mục tiêu | Kết quả |
| Response time | < 2 giây | 3,8 giây |
| Throughput | > 2.000 req/s | 1.650 req/s |
| Error rate | < 1% | 2,4% |
| CPU | < 80% | 95% |
Trong trường hợp này, CPU đạt 95% đồng thời response time và error rate tăng cao. Đây có thể là dấu hiệu cần kiểm tra sâu hơn tài nguyên máy chủ, ứng dụng hoặc những truy vấn tiêu tốn nhiều CPU.
Sau khi xác định được điểm nghẽn, đội ngũ kỹ thuật có thể thực hiện các biện pháp như:
Sau đó Performance Testing cần được chạy lại để xác nhận thay đổi có thực sự cải thiện hiệu năng hay không. IBM mô tả đây là một chu trình tối ưu → kiểm thử → đánh giá → tiếp tục tối ưu cho tới khi hệ thống đạt benchmark mong muốn.
Performance Testing giúp doanh nghiệp không phải chờ đến khi hệ thống gặp sự cố thực tế mới phát hiện vấn đề.
Một hệ thống bao gồm nhiều thành phần như application server, Database, storage, network và các dịch vụ bên ngoài.
Chỉ cần một thành phần đạt giới hạn cũng có thể kéo hiệu năng toàn hệ thống đi xuống.
Performance Testing giúp xác định vấn đề nằm ở đâu, chẳng hạn:
Nhờ đó, doanh nghiệp có thể tối ưu đúng thành phần thay vì tăng tài nguyên một cách thiếu cơ sở.

Một website hoạt động tốt với 100 người dùng không đồng nghĩa nó sẽ hoạt động tốt với 10.000 người dùng.
Performance Testing giúp xác định hệ thống có thể phục vụ bao nhiêu người dùng hoặc request trước khi hiệu năng bắt đầu suy giảm.
Thông tin này đặc biệt quan trọng đối với:
Traffic có thể tăng đột biến trong các sự kiện như:
Kiểm thử trước giúp doanh nghiệp xác định liệu hạ tầng hiện tại có đủ khả năng xử lý lưu lượng dự kiến hay cần mở rộng tài nguyên.
Response time càng cao, người dùng càng phải chờ lâu để website hoặc ứng dụng phản hồi.
Performance Testing giúp phát hiện những tác vụ chậm và hỗ trợ đội ngũ kỹ thuật tối ưu chúng trước khi triển khai rộng rãi.
Đây cũng là lý do performance không chỉ là vấn đề kỹ thuật mà còn liên quan trực tiếp đến trải nghiệm khách hàng.
Performance Testing còn cung cấp dữ liệu cho capacity planning.
Ví dụ, doanh nghiệp có thể xác định:
4 vCPU xử lý được khoảng 1.000 request/giây, nhưng hệ thống dự kiến cần xử lý 5.000 request/giây vào mùa cao điểm.
Từ kết quả đó, đội ngũ hạ tầng có thể lên kế hoạch bổ sung tài nguyên hoặc thiết kế cơ chế autoscaling phù hợp.
Performance Testing gồm nhiều phương pháp khác nhau, mỗi loại tập trung vào một tình huống vận hành cụ thể.
Load Testing kiểm tra hệ thống dưới mức tải dự kiến trong điều kiện bình thường.
Ví dụ, website thường có khoảng 5.000 người dùng đồng thời thì có thể mô phỏng mức tải tương đương để đánh giá Response Time, Throughput, Error Rate và mức sử dụng tài nguyên.
Mục tiêu là xác nhận hệ thống vẫn hoạt động ổn định với workload thông thường.
Stress Testing đẩy hệ thống vượt mức tải bình thường để xác định giới hạn chịu đựng.
Bài kiểm thử có thể tăng dần từ 5.000 lên 10.000, 20.000 hoặc 50.000 người dùng đồng thời để xác định Breaking Point, mức độ suy giảm hiệu năng và khả năng phục hồi sau quá tải.
Spike Testing kiểm tra khả năng xử lý khi traffic tăng hoặc giảm đột ngột trong thời gian ngắn.
Ví dụ, lượng người dùng tăng từ 2.000 lên 20.000 chỉ trong vài phút. Phương pháp này phù hợp với website bán vé, Flash Sale hoặc nền tảng có traffic biến động mạnh.
Scalability Testing đánh giá khả năng duy trì hiệu năng khi số lượng người dùng, workload hoặc dữ liệu tăng.
Loại kiểm thử này đặc biệt quan trọng với hệ thống Cloud sử dụng Auto Scaling, Load Balancing, Kubernetes hoặc các mô hình Horizontal và Vertical Scaling.
Volume Testing tập trung vào khả năng xử lý khối lượng dữ liệu lớn.
Ví dụ, Database tăng từ 10 GB lên vài TB có thể làm truy vấn chậm hơn, giảm hiệu quả Index hoặc tạo áp lực lên Storage. Volume Testing giúp đánh giá những thay đổi này trước khi hệ thống mở rộng thực tế.
Endurance Testing, còn gọi là Soak Testing, duy trì một mức tải trong thời gian dài để phát hiện các vấn đề tích lũy.
Các lỗi thường được phát hiện gồm Memory Leak, CPU tăng dần, Connection không được giải phóng hoặc hiệu năng suy giảm theo thời gian.

Performance Testing cần đánh giá đồng thời tốc độ phản hồi, khả năng xử lý và mức sử dụng tài nguyên của hệ thống.
Response Time là thời gian từ khi hệ thống nhận Request đến khi trả về phản hồi.
Ngoài giá trị trung bình, đội ngũ kỹ thuật thường theo dõi P50, P90, P95 hoặc P99 để đánh giá chính xác hơn trải nghiệm của phần lớn người dùng.
Throughput thể hiện lượng Request, Transaction hoặc dữ liệu hệ thống có thể xử lý trong một khoảng thời gian.
Đơn vị thường gặp là RPS, TPS, MB/s hoặc GB/s.
Error Rate là tỷ lệ Request hoặc Transaction thất bại trên tổng số yêu cầu.
Nếu Error Rate tăng nhanh khi tải tăng, hệ thống có thể đang tiến gần đến giới hạn xử lý.
Concurrent Users là số người dùng đang tương tác với hệ thống cùng thời điểm.
Chỉ số này nên được xây dựng dựa trên lưu lượng thực tế thay vì chỉ dựa vào tổng lượt truy cập trong ngày.
CPU và RAM giúp xác định hệ thống có đang thiếu tài nguyên xử lý hay không.
CPU duy trì ở mức quá cao có thể làm Response Time tăng, trong khi RAM tăng liên tục và không được giải phóng có thể là dấu hiệu của Memory Leak.
Disk Latency, IOPS và Read/Write Throughput cần được theo dõi với Database hoặc ứng dụng xử lý nhiều dữ liệu.
Storage đạt giới hạn có thể khiến ứng dụng phản hồi chậm ngay cả khi CPU và RAM vẫn còn dư.
Với hệ thống Cloud hoặc ứng dụng phân tán, Network Throughput, Latency, Bandwidth Utilization và Packet Loss cũng ảnh hưởng trực tiếp đến hiệu năng.
Độ trễ giữa các Server hoặc Data Center càng lớn thì tổng Response Time của ứng dụng càng có thể tăng.
Performance Testing và Load Testing thường được sử dụng cùng nhau nhưng không hoàn toàn giống nhau.
Performance Testing là khái niệm tổng thể, còn Load Testing là một loại Performance Testing.
| Tiêu chí | Performance Testing | Load Testing |
| Mục tiêu | Đánh giá tổng thể hiệu năng hệ thống | Đánh giá hệ thống dưới tải dự kiến |
| Phạm vi | Rộng | Hẹp hơn |
| Kiểm tra | Tốc độ, ổn định, mở rộng, chịu tải | Chủ yếu khả năng xử lý workload |
| Bao gồm | Load, Stress, Spike, Volume, Endurance... | Một loại kiểm thử cụ thể |
| Kết quả | Phát hiện bottleneck và giới hạn hiệu năng | Xác định hệ thống có đáp ứng tải thông thường hay không |
Có thể hiểu đơn giản:
Performance Testing trả lời câu hỏi “Hệ thống hoạt động hiệu quả đến đâu?”, còn Load Testing tập trung vào “Hệ thống hoạt động thế nào khi chịu một mức tải cụ thể?”.
Performance Testing là bước quan trọng để đánh giá tốc độ, độ ổn định, khả năng chịu tải và khả năng mở rộng của ứng dụng trước khi hệ thống phải đối mặt với workload thực tế. Thông qua các phương pháp như Load Testing, Stress Testing, Spike Testing hay Endurance Testing, đội ngũ kỹ thuật có thể phát hiện sớm những điểm nghẽn về ứng dụng, Database, CPU, RAM, storage hoặc network.
