Performance Testing – Kiểm thử hiệu năng là gì?

Định nghĩa kiểm thử hiệu năng

Kiểm thử hiệu năng, hay còn gọi là performance testing, là một loại phân mềm kiểm thử được sử dụng để đảm bảo ứng dụng hoạt động hiệu quả trong các công việc dự kiến.

1. Định nghĩa kiểm thử hiệu năng

Định nghĩa kiểm thử hiệu năng là một công cụ kiểm thử phần mềm để đảm bảo ứng dụng hoạt động hiệu quả trong các công việc dự kiến của nó. Không chỉ quan tâm đến tính năng và chức năng của ứng dụng, hiệu năng của ứng dụng cũng được coi là một yếu tố quan trọng như thời gian phản hồi, độ tin cậy, sử dụng tài nguyên và khả năng mở rộng.

Trọng tâm của kiểm thử hiệu năng là:

  • Thời gian phản hồi: Đo thời gian phản hồi của ứng dụng để xác định xem nó hoạt động nhanh hay chậm.
  • Khả năng mở rộng: Đo tải người dùng tối đa mà ứng dụng có thể xử lý.
  • Độ tin cậy: Đo xem ứng dụng có ổn định dưới các tải khác nhau hay không.

Mục tiêu của kiểm thử hiệu năng không chỉ là để tìm lỗi, mà còn để tìm ra giải pháp tối ưu cho hiệu năng của phần mềm. Các vấn đề không lường trước có thể được tránh nhờ kiểm thử hiệu năng trước khi triển khai ứng dụng trong môi trường thực tế.

Hình ảnh về kiểm thử hiệu năng

>> Bài viết liên quan: 8 kỹ thuật quan trọng trong kiểm thử phần mềm

2. Các loại kiểm thử hiệu năng

Kiểm thử tải: kiểm thử khả năng của ứng dụng để xử lý tải người dùng theo dự đoán. Mục tiêu là xác định mức độ tắc nghẽn hiệu suất trước khi ứng dụng được triển khai trong môi trường thực tế.

Kiểm thử căng cứng: liên quan đến việc thử nghiệm một ứng dụng với khối lượng công việc quá lớn để xem cách nó xử lý tải cao hoặc xử lý dữ liệu. Mục tiêu là xác định điểm giới hạn của ứng dụng.

Kiểm thử khả năng: Mục tiêu là xác định số người dùng, số giao dịch hoặc số lần truy cập trong một đơn vị thời gian mà hệ thống có thể đáp ứng theo hiệu năng đã định.

Kiểm thử khả năng chịu đựng: Mục tiêu là đảm bảo phần mềm có thể xử lý tải dự kiến trong một khoảng thời gian dài.

Kiểm thử đỉnh: Mục tiêu là kiểm tra phản ứng của phần mềm đối với sự thay đổi lớn trong tải người dùng.

Kiểm thử khối lượng: Mục tiêu là kiểm tra hiệu suất của ứng dụng với các khối lượng dữ liệu khác nhau.

Kiểm thử khả năng mở rộng: Mục tiêu là kiểm tra khả năng mở rộng của ứng dụng để xác định hiệu suất của nó khi mở rộng để đáp ứng tải người dùng cao hơn, hỗ trợ cho việc mở rộng dung lượng hệ thống.

Kiểm thử độ tin cậy: Là loại kiểm thử để xác minh rằng phần mềm có khả năng hoạt động mà không có lỗi trong một khoảng thời gian nhất định trong một môi trường đã định. Đây cũng là kiểm thử độ tin cậy của hệ thống. Ví dụ: Xác suất mà một máy tính trong một cửa hàng hoạt động và chạy trong tám giờ mà không xảy ra lỗi là 99% => yếu tố này được gọi là độ tin cậy.

>> Tìm hiểu thêm: Khác biệt giữa Performance Test, Load Test và Stress Test

3. Các vấn đề chung về hiệu năng của hệ thống

Hầu hết các vấn đề về hiệu năng liên quan đến tốc độ, thời gian phản hồi, thời gian tải và khả năng mở rộng kém. Tốc độ là một trong những yếu tố quan trọng nhất của ứng dụng. Ứng dụng chạy chậm sẽ tốn thời gian, giảm sự hài lòng của người dùng và có thể làm mất đi người dùng tiềm năng. Kiểm thử hiệu năng được thực hiện để đảm bảo ứng dụng chạy đủ nhanh để thu hút sự chú ý và đáp ứng yêu cầu của người dùng.

Dưới đây là một số vấn đề chung về hiệu năng, trong đó tốc độ được coi là yếu tố phổ biến nhất:

Thời gian tải quá lâu: Thời gian tải là thời gian khởi động ứng dụng. Thời gian tải nên được giữ ở mức tối thiểu. Mặc dù có một số ứng dụng không thể tải trong một phút, nhưng thời gian tải nên được giữ trong vài giây nếu là tốt nhất.

Thời gian phản hồi chậm: Thời gian phản hồi là thời gian từ lúc người dùng nhập dữ liệu vào ứng dụng cho đến khi ứng dụng hoàn thành xử lý và trả kết quả. Thời gian phản hồi nên rất nhanh. Nếu người dùng phải đợi quá lâu, họ sẽ mất hứng thú.

Khả năng mở rộng kém: Một sản phẩm phần mềm có khả năng mở rộng kém sẽ không thể xử lý số lượng người dùng như mong đợi hoặc không đáp ứng được phạm vi người dùng dự kiến. Kiểm thử tải cần được thực hiện để đảm bảo ứng dụng có thể xử lý số lượng người dùng dự kiến.

Tắc nghẽn: Là các yếu tố gây giảm hiệu năng toàn bộ hệ thống. Tắc nghẽn có thể là lỗi mã hóa hoặc vấn đề phần cứng gây giảm thông lượng theo tải trọng. Việc khắc phục tắc nghẽn yêu cầu kiểm tra tắc nghẽn để xác định mã gây ra lỗi và tìm giải pháp. Một số tắc nghẽn phổ biến bao gồm: CPU, bộ nhớ, mạng, hệ điều hành, ổ cứng.

4. Quy trình kiểm thử hiệu năng

Dù có nhiều phương pháp kiểm thử hiệu năng khác nhau, nhưng mục tiêu của quy trình kiểm thử hiệu năng luôn giữ nguyên. Quy trình kiểm thử hiệu năng có thể được sử dụng để chứng minh rằng hệ thống đáp ứng các tiêu chí hiệu năng đã định trước. Nó cũng có thể được sử dụng để so sánh hiệu năng của hai hoặc nhiều hệ thống phần mềm, và xác định các thành phần nào đang ảnh hưởng đến hiệu năng của hệ thống.

Quy trình kiểm thử hiệu năng cơ bản:

1. Xác định môi trường kiểm thử

Chuẩn bị môi trường kiểm thử, môi trường sản xuất và công cụ kiểm thử trước khi bắt đầu. Hiểu rõ về cấu hình phần cứng, phần mềm và mạng được sử dụng trong quá trình kiểm thử. Điều này giúp tạo ra các bộ test case hiệu quả hơn và xác định khó khăn tester có thể gặp phải trong quá trình kiểm thử hiệu năng.

2. Xác định tiêu chí hiệu năng chấp nhận được của hệ thống

Đặt mục tiêu và ràng buộc cho thông lượng, thời gian phản hồi và phân bổ nguồn lực. Xác định các tiêu chí thành công của dự án. Tester cần xác định tiêu chí hiệu năng tối thiểu mà hệ thống phần mềm cần đạt được vì thông thường các thông số của dự án không bao gồm nhiều hoặc không có tiêu chí hiệu năng đủ lớn. Sử dụng một ứng dụng tương tự để so sánh là cách tốt để đặt tiêu chí hiệu năng.

3. Lập kế hoạch và thiết kế kiểm thử hiệu năng

Xác định các tình huống sử dụng có thể khác nhau của người dùng cuối và xác định các tình huống quan trọng cần kiểm tra. Mô phỏng một loạt các người dùng cuối, lập kế hoạch dữ liệu thử nghiệm hiệu năng và phác thảo dữ liệu cần thu thập.

4. Cài đặt môi trường kiểm thử

Cài đặt môi trường, công cụ và tài nguyên cần thiết trước khi thực hiện kiểm thử.

5. Triển khai thiết kế kiểm thử

Tạo test case kiểm thử hiệu năng theo thiết kế đã xác định.

6. Thực hiện kiểm thử

Thực hiện và theo dõi kết quả kiểm thử.

7. Phân tích, điều chỉnh và kiểm tra lại

Phân tích, tổng hợp và chia sẻ kết quả kiểm thử. Sau đó, điều chỉnh và kiểm tra lại để xem có cải thiện hoặc giảm hiệu suất hay không. Vì mỗi lần kiểm tra lại, sự cải tiến thường nhỏ hơn, dừng lại khi gặp cản trở do CPU. Sau đó, bạn có thể cân nhắc tăng tốc độ xử lý của CPU.

5. Công cụ kiểm thử hiệu năng

Việc lựa chọn công cụ kiểm thử hiệu năng phụ thuộc vào nhiều yếu tố như chi phí, hỗ trợ, trình duyệt, ngôn ngữ lập trình, phần cứng,…

Dưới đây là một số công cụ phổ biến hỗ trợ kiểm thử hiệu năng:

JMeter: Là một công cụ mã nguồn mở sử dụng ngôn ngữ Java, được sử dụng để kiểm thử tải và ứng dụng web của máy chủ.

Link tải cho Windows: http://jmeter.apache.org/download_jmeter.cgi

Link tải cho Ubuntu: http://jmeter.apache.org/download_jmeter.cgi

LoadRunner: Là công cụ kiểm thử hiệu năng cho phép phát hiện nguyên nhân và điểm làm cho phần mềm hoạt động chậm hoặc không đáp ứng được yêu cầu. Đây là công cụ mạnh mẽ với giải pháp kiểm tra tải, phát hiện và giải pháp cải tiến. Ứng dụng LoadRunner giúp giảm thời gian viết test script đến 80% nhờ tự động phát sinh script mô tả tình huống kiểm tra.

Link tải: https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview?jumpid=va_uwxy6ce9tr

Load View-Testing: Là công cụ kiểm thử hiệu năng giúp xác định khả năng của ứng dụng theo số lượng người dùng cụ thể, xác định điểm giới hạn hiệu suất khi số lượng người dùng đồng thời tăng lên và xác định giới hạn của hệ thống hiện tại để lập kế hoạch cho hiệu năng trong tương lai, tăng hiệu năng lên mức cao trên môi trường kiểm thử để xem cách xử lý dữ liệu và giới hạn hiệu năng của hệ thống.

Link tải: https://www.loadview-testing.com/

LoadStorm: Là công cụ kiểm thử hiệu năng có khả năng chịu tải tốt, có thể kiểm tra hiệu năng của ứng dụng thông qua lượng traffic và số người dùng. Điểm đặc biệt của công cụ này là có thể thiết lập hàng trăm nghìn, thậm chí hàng triệu người dùng để khai thác lỗ hổng trong ứng dụng. Bên cạnh đó, người kiểm thử dễ dàng điều chỉnh kịch bản kiểm thử khi sử dụng công cụ này. Sau khi hoàn tất kiểm thử, bạn sẽ nhận được báo cáo chi tiết.

Link tải: https://pro.loadstorm.com/

6. Sử dụng LoadRunner để kiểm thử hiệu năng

1. Các thành phần của LoadRunner

LoadRunner bao gồm các thành phần sau:

  • Virtual User Generator: Tự động tạo ra script VuGen để ghi lại các hành động tương tác của người dùng với phần mềm. Script VuGen này được hiểu là hoạt động của một người dùng ảo mà LoadRunner giả lập.
  • Controller: Tổ chức, điều chỉnh, quản lý và giám sát hoạt động kiểm thử hiệu năng. Thành phần này có chức năng tạo ra các kịch bản kiểm thử.
  • Load Generator: Cho phép giả lập hàng ngàn người dùng, thực hiện các hành động được mô tả trong script VuGen. Kết quả của việc thực hiện được báo cáo cho Controller.
  • Analysis: Cung cấp khả năng xem xét, phân tích và so sánh các kết quả kiểm thử hiệu năng phần mềm.
  • Launcher: Nơi tập trung tất cả các thành phần của LoadRunner cho người dùng.

2. Thuật ngữ sử dụng trong LoadRunner

  • Scenario: Một file định nghĩa các sự kiện xảy ra trong mỗi lần kiểm tra dựa trên yêu cầu hiệu năng.
  • Vuser: Trong Scenario, LoadRunner thay thế người sử dụng bằng người dùng ảo hay Vuser. Vuser mô phỏng hành động của con người làm việc với ứng dụng của chúng ta. Một Scenario có thể chứa hàng chục, hàng trăm, thậm chí hàng nghìn Vuser.
  • Vuser Script: Mô tả hành động mà Vuser thực hiện trong Scenario.
  • Transactions: Được sử dụng để đo hiệu suất của Server. Mỗi Transaction đại diện cho hành động mà người dùng thực hiện trong quy trình nghiệp vụ chúng ta muốn đo lường.

3. Quy trình kiểm thử hiệu năng

Bước 1: Lập kế hoạch kiểm thử hiệu năng

Thiết kế test case với các bước thực hiện rõ ràng và đặc tả các thông số cần đo lường.

Bước 2: Tạo Vuser Scripts

Sử dụng công cụ LoadRunner để ghi lại các thao tác tương tác của người sử dụng với hệ thống dưới dạng script.

Bước 3: Xác định Scenario

Thiết kế Scenario để mô phỏng môi trường hoạt động của phần mềm trong điều kiện hiệu năng giống thực tế.

Bước 4: Chạy Scenario

Chạy, quản lý và giám sát việc thực hiện kiểm thử hiệu năng.

Bước 5: Phân tích kết quả

Phân tích kết quả dựa trên thống kê mà LoadRunner cung cấp. Nếu kết quả không đạt yêu cầu, phần mềm cần được điều chỉnh.

4. Ví dụ

Ví dụ ta có thể tạo một người dùng ảo để ghi lại các sự kiện hoạt động của một người dùng thực trên trang web: http://facebook.com.vn

  1. Ghi lại sự kiện đăng nhập của một người dùng vào Facebook
  1. Sau khi kịch bản Vuser dừng chạy, ta có thể xem tổng kết trong Replay Summary.

Thời gian chạy: 11/08/2017 10:34:34 AM

Thời gian kết thúc: 11/08/2017 10:35:01 AM

  1. Kết quả chi tiết:

Bizfly Cloud hy vọng bài viết giúp bạn hiểu hơn về kiểm thử hiệu năng và lựa chọn công cụ kiểm thử hiệu năng phù hợp cho hệ thống của bạn.

Tài liệu tham khảo: https://www.guru99.com/performance-testing.html

Theo viblo.asia

>> Bài viết liên quan: Các hình thức kiểm thử Website

Related Posts