Trong bài viết này, chúng ta sẽ thảo luận về những điều cốt lõi về thông lượng trong kiểm thử hiệu suất.
Trước khi bắt đầu với các chi tiết, chúng ta hãy xem xét một số yếu tố cần thiết của kiểm thử hiệu suất.
Kiểm thử hiệu suất rất quan trọng vì:
Bạn có thể bắt đầu kiểm tra hiệu suất càng sớm càng tốt trong các giai đoạn phát triển ứng dụng phần mềm của mình. Bằng cách này, bạn có thể tối ưu hóa máy chủ web của mình và ngăn chặn chi phí kinh doanh ở các giai đoạn sau.
Việc phát hiện ra các vấn đề về hiệu suất sau khi triển khai ứng dụng đồng nghĩa với rất nhiều giờ làm việc để khắc phục các vấn đề. Vì vậy, nó có thể rất tốn kém.
Ngay khi các trang web cơ bản của ứng dụng hoạt động, nhóm đảm bảo chất lượng phải tiến hành các bài kiểm tra tải ban đầu. Từ thời điểm đó trở đi, họ nên thực hiện kiểm tra hiệu suất thường xuyên cho mọi bản dựng.
Có các công cụ và tiêu chí khác nhau để kiểm tra hiệu suất của các ứng dụng. Ở đây chúng ta sẽ nói về một biện pháp quan trọng, tức là thông lượng.
Mỗi ứng dụng phần mềm hoặc trang web có rất nhiều người dùng thực hiện các yêu cầu khác nhau. Người kiểm tra cần đảm bảo rằng ứng dụng đáp ứng dung lượng yêu cầu trước khi đi vào hoạt động.
Có một số vấn đề cơ bản về kiểm thử hiệu suất cần được đo lường trong quá trình này. Thông lượng là một trong số đó . Hãy cùng tìm hiểu xem thông lượng trong kiểm thử hiệu năng là gì.
Trước khi bắt đầu thử nghiệm, chúng ta cần đặt mục tiêu thông lượng hiệu suất thực tế để có thể nhận được kết quả chính xác và đáng tin cậy hơn.
Đây là một số yếu tố quan trọng để xác định thông lượng thực tế:
Ở đây, chúng tôi sẽ giải thích khái niệm thông lượng với sự trợ giúp của một ví dụ thực tế. Hãy tưởng tượng có một gian hàng thức ăn nhanh tên là “Bánh mì kẹp thịt ngon”. Họ phục vụ bánh mì kẹp thịt và khoai tây chiên cho khách hàng.
Giả sử “Bánh mì kẹp thịt ngon” có ba công nhân trong gian hàng và mỗi công nhân luôn mất 5 phút để phục vụ đồ ăn cho một khách hàng.
Vì vậy, nếu họ có ba khách hàng xếp hàng để ba công nhân phục vụ, điều đó có nghĩa là “Yummy Burgers” có thể phục vụ đồ ăn cho ba khách hàng trong 5 phút.
Do đó, nếu chúng ta cần lập báo cáo hiệu suất của “Bánh mì kẹp thịt ngon”, nó sẽ cho thấy rằng thông lượng của nó là ba khách hàng mỗi năm phút.
Tình thế tiến thoái lưỡng nan của Yummy Burgers là, bất kể có bao nhiêu khách hàng đang đợi đồ ăn ở đó, số lượng tối đa họ có thể xử lý trong một khung thời gian cụ thể sẽ luôn giống nhau, tức là ba. Đây là thông lượng tối đa .
Khi nhiều khách hàng xếp hàng lấy thức ăn, họ phải đợi đến lượt của mình, tạo ra một hàng đợi.
Khái niệm tương tự áp dụng cho việc thử nghiệm một ứng dụng web.
Nếu một ứng dụng web nhận được 100 yêu cầu mỗi giây, nhưng nó chỉ có thể xử lý 70 yêu cầu mỗi giây, 30 yêu cầu còn lại phải đợi trong hàng đợi.
Trong thử nghiệm hiệu suất, chúng tôi biểu thị thông lượng là "Giao dịch mỗi giây" hoặc TPS .
Việc sử dụng Apache JMete r khá phổ biến để kiểm tra hiệu năng của một ứng dụng phần mềm. JMeter rất hữu ích để xác định số lượng người dùng đồng thời tối đa mà ứng dụng có thể xử lý và cũng cung cấp phân tích đồ họa để kiểm tra hiệu suất.
JMeter cung cấp nhiều cách để ghi lại giá trị của thông lượng. Đưa ra đây là một số trình nghe JMeter mà bạn có thể sử dụng cho mục đích này:
JMeter cũng cung cấp một thành phần bộ đếm thời gian, ' Bộ đếm thời gian thông lượng không đổi' , mà bạn có thể sử dụng để đặt giá trị của Giao dịch mỗi giây (TPS) để kiểm tra tải của ứng dụng.
Bây giờ, chúng tôi sẽ hiển thị việc sử dụng thông lượng trong kiểm tra hiệu suất bằng JMeter. Giả sử chúng tôi sẽ tiến hành kiểm tra mẫu với 100 luồng đồng thời và theo dõi giá trị của thông lượng.
Giả sử chúng tôi đã cài đặt bản phát hành JMeter mới nhất trên hệ thống của mình và chúng tôi đã thực hiện tất cả các cấu hình cần thiết khác. Bây giờ, chúng ta phải xây dựng một kế hoạch thử nghiệm.
Trong thử nghiệm này, chúng tôi sẽ xác định năm phần tử ThreadGroup. Mỗi phần tử này sẽ có thời gian tăng tốc khác nhau, tức là 0, 15, 25, 35 và 45. Thời gian tăng tốc là khoảng thời gian để bắt đầu mỗi luồng. Chúng tôi sẽ định cấu hình 100 người dùng trong các phần tử ThreadGroup này.
Nếu chúng tôi muốn định cấu hình số lượng người dùng lớn hơn, thì sẽ cần nhiều thời gian tăng tốc hơn.
Các nhóm chủ đề này sẽ có một trình lấy mẫu HTTP sẽ tạo các yêu cầu trên trang chủ của một trang web mẫu (Giả sử www.samplesite.com).
Trong Trường hợp sử dụng 1, chúng ta có một phần tử ThreadGroup được định cấu hình với 100 luồng và thời gian tăng tốc của nó là 0.
Nó sẽ có trường “Số lượng chủ đề” được đặt là 100. Điều này có nghĩa là 100 người dùng sẽ gửi yêu cầu cùng một lúc. Tương tự, chúng ta cũng có thể định cấu hình 4 luồng còn lại và đặt thời gian tăng tốc của chúng là 15, 25, 35 và 45. Ngoài ra, hãy đặt tên cho bộ lấy mẫu cho từng nhóm luồng.
Như đã đề cập trước đây, các trình lấy mẫu HTTP này sẽ trỏ đến trang chủ của trang web mẫu.
Cần chạy các nhóm luồng này theo một trình tự thích hợp. Với mục đích này, hãy chọn “Kế hoạch kiểm tra” từ bảng điều khiển và kiểm tra trường “Chạy liên tiếp các nhóm chủ đề”.
“Báo cáo tổng hợp” là một trình lắng nghe được sử dụng để phân tích và quan sát kết quả kiểm tra. Để sử dụng bộ nghe này, nhấp chuột phải vào “Kế hoạch kiểm tra” và chọn:
Thêm → Người nghe → Báo cáo tổng hợp
Sau đó bấm vào biểu tượng bắt đầu để chạy thử nghiệm.
Bây giờ, hãy xem cách hiểu kết quả thông lượng từ Báo cáo tổng hợp.
Nhóm luồng đầu tiên có thời gian tăng tốc 0 hiển thị tất cả các luồng đặt tải ngay lập tức trên máy chủ bằng cách bắt đầu cùng một lúc. Kịch bản này có thông lượng khá cao, nhưng nó không thực tế. Vì vậy, điều này sẽ không hiển thị đầu ra thực tế.
Các nhóm luồng thứ hai và thứ ba có thời gian tăng tốc trong phạm vi thực tế, vì vậy chúng có nhiều khả năng hiển thị thông lượng hiệu suất phù hợp và thời gian tải yêu cầu.
Các nhóm chủ đề bốn và năm có thời gian tăng tốc cao hơn, điều đó có nghĩa là thông lượng của chúng sẽ giảm.
Do đó, đầu ra đáng tin cậy có thể được xác định từ kết quả của nhóm luồng thứ hai và thứ ba.
Quyết định triển khai một bản phát hành mới hoặc thay đổi phụ thuộc vào khả năng xử lý TPS cụ thể của ứng dụng. Vì vậy, kế hoạch kiểm tra hiệu suất có các mục tiêu thông lượng nhất định. Nhưng chúng ta cần đảm bảo rằng những mục tiêu này là thực tế và thể hiện đúng đặc điểm của quá trình sản xuất.
Kế hoạch kiểm tra là vô ích nếu chúng ta vượt qua nó bằng cách sử dụng các điều kiện không thực tế. Ví dụ: kế hoạch thử nghiệm mà chúng tôi đã mô tả ở trên có giá trị thông lượng cao hơn cho nhóm luồng đầu tiên, nhưng nó không mô tả kịch bản thực tế của môi trường trực tiếp.
Vì vậy, bằng cách sử dụng các phương pháp như vậy, chúng tôi không thể biết chính xác liệu ứng dụng của chúng tôi có xử lý tải thực tế hay không. Do đó, thiết lập các bài kiểm tra phù hợp là rất quan trọng.
Tóm lại, thông lượng là một chỉ báo hiệu suất quan trọng của các ứng dụng web . Tuy nhiên, chỉ phụ thuộc vào số liệu thông lượng là không đủ. Do đó, nó cần được kiểm tra độ trễ và thời gian phản hồi .
Điều thực sự quan trọng là tạo ra thông lượng thực tế để đạt được các mục tiêu thử nghiệm hiệu suất đã đề ra.