Performance Testing - Kiểm thử hiệu năng là gì?
Performance testing là một thuật ngữ khá phổ biến trong lĩnh vực công nghệ thông tin. Có thể nói, đây là một trong những loại kiểm thử khá phức tạp, dễ gây nhầm lẫn trong quá trình đánh giá. Để có cái nhìn tổng quan về Performance testing, hãy cùng Bizfly Cloud tìm hiểu chi tiết về thuật ngữ này trong bài viết dưới đây.
Performance testing là gì?
Performance testing (Kiểm thử hiệu năng) là một loại kiểm thử giúp đảm bảo mức độ đáp ứng, tin cậy, khả năng mở rộng và băng thông của hệ thống dựa trên khối lượng làm việc/truy cập nhất định.
Dưới đây là một số chức năng chính của Performance testing:
- Đánh giá dựa trên các tiêu chí về hiệu suất
- Đánh giá tính sẵn sàng của sản phẩm
- So sánh các đặc tính hiệu suất của đa hệ thống, cấu hình hệ thống
- Xác định nguồn gốc các vấn đề về hiệu suất
- Xác định mức độ băng thông
- Cho phép điều chỉnh hệ thống
Thông thường, Performance testing được sử dụng chủ yếu để xác định lỗi trong hệ thống, thiết lập đường cơ sở để phục vụ cho việc kiểm thử trong tương lai, hỗ trợ điều chỉnh hiệu suất, xác định mức độ phù hợp của mục tiêu và yêu cầu hiệu suất, và thu thập dữ liệu liên quan. Nhờ đó mà các bên có thể dễ dàng đưa ra các quyết định về chất lượng chung của ứng dụng đang được kiểm thử.
Bên cạnh đó, các kết quả kiểm thử hiệu suất và phân tích còn cho phép ước tính cấu hình phần cứng để có thể hỗ trợ các ứng dụng khi sản phẩm được tung ra thị trường.
>> Có thể bạn quan tâm: 8 kỹ thuật kiểm thử phần mềm quan trọng
Các loại Performance testing
Load test: kiểm thử khả năng của ứng dụng để thực hiện theo tải người dùng 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 phần mềm được phát hành trong môi trường thực tế.
Stress test: Liên quan đến việc thử nghiệm một ứng dụng theo khối lượng công việc quá lớn để xem cách nó xử lý lưu lượng truy cập cao hoặc cách mà nó xử lý dữ liệu. Mục tiêu là để xác định được điểm giới hạn của một ứng dụng.
Capacity test: Mục tiêu để xác định có bao nhiêu user hoặc bao nhiêu giao dịch hoặc số lượt truy cập trên một đơn vị thời gian có thể đáp ứng các SLA (Service Level Agreement- là một thỏa thuận hay hợp đồng được thiết lập giữa khách hàng và nhà cung cấp dịch vụ) hiệu năng của hệ thống
Endurance test: Mục tiêu để đả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.
Spike test: Mục tiêu để kiểm tra phản ứng của phần mềm đối với các thay đổi lớn đột ngột trong tải do người dùng tạo.
Volume test: Mục tiêu là để kiểm tra hiệu suất của ứng dụng phần mềm theo khối lượng cơ sở dữ liệu khác nhau.
Scalability test: Mục tiêu của thử nghiệm nhằm đến khả năng mở rộng của ứng dụng, để xác định hiệu quả của ứng dụng phần mềm khi "mở rộng" để hỗ trợ tăng tải người dùng, hỗ trợ cho việc lập kế hoạch bổ sung dung lượng cho hệ thống.
Reliability test: Là một loại kiểm thử để xác minh rằng phần mềm có khả năng thực hiện một hoạt động không có lỗi trong một khoảng thời gian nhất định trong một môi trường được chỉ định. Nó cũng chính là việc 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: Performance Test, Load Test và Stress Test khác nhau như thế nào?
Những vấn đề chung về hiệu năng của một hệ thống
Hầu hết các vấn đề về hiệu năng đều xoay quanh tốc độ, thời gian đáp ứng, thời gian tải và khả năng mở rộng kém. Tốc độ thường là một trong những thuộc tính quan trọng nhất của ứng dụng. Ứng dụng chạy chậm sẽ mất thời gian, giảm đi sự hài lòng của người dùng đối với hệ thống, có thể làm mất đi những 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à quan tâm cũng như đem lại sự thỏa mãn, hài lòng của người dùng.
Dưới đây là danh sách một số vấn đề về hiệu năng chung, qua đây ta cũng nhận thấy tốc độ là một yếu tố phổ biến nhất:
Thời gian tải quá dài: Thời gian tải thường là thời gian ban đầu của một ứng dụng để khởi chạy. Điều này thường nên được giữ ở mức tối thiểu. Mặc dù một số ứng dụng không thể thực hiện tải dưới một phút, nhưng thời gian tải sẽ đượ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 cần thiết khi người dùng nhập dữ liệu vào ứng dụng cho đến khi ứng dụng đưa ra phản hồi cho đầu vào đó. Nói chung điều này sẽ rất nhanh. Một lần nữa nếu người dùng phải chờ đợ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 thì nó không thể xử lý số lượng người dùng như mong đợi hoặc khi nó không đáp ứng đủ phạm vi người dùng khi đó kiểm tra tải phải được thực hiện để chắc chắn ứng dụng có thể xử lý số lượng người dùng dự kiến.
Tắc nghẹn cổ chai: là những vật cản trong hệ thống làm suy giảm hiệu năng toàn bộ hệ thống. Sự tắc nghẽn cổ chai là khi các lỗi mã hóa hoặc các vấn đề phần cứng gây ra sự sụt giảm thông lượng theo tải trọng nhất định. Ngắt cổ chai thường do một phần mã bị lỗi gây ra. Chìa khóa để khắc phục vấn đề là thực hiện tắc nghẽn cổ chai test để tìm phần mã gây ra sự chậm lại và tìm giải pháp khắc phục. Một số tắc nghẽn hiệu suất phổ biến là: CPU, bộ nhớ, mạng, hệ điều hành, ổ cứng
Quy trình test hiệu năng
Phương pháp được áp dụng để kiểm tra hiệu năng có thể khác nhau nhưng mục tiêu của những quá trình kiểm thử hiệu năng vẫn giữ nguyên. Nó có thể giúp chứng minh rằng hệ thống đáp ứng một số tiêu chí hiệu năng được xác định trước. Hoặc nó có thể giúp so sánh hiệu năng của hai hay nhiều hệ thống phần mềm. Hoặc nó cũng có thể giúp xác định các thành phần của hệ thống nào đang làm suy giảm hiệu năng của nó.
Quy trình kiểm thử hiệu năng cơ bản:
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ị sẵn sàng môi trường thử nghiệm vật lý, môi trường sản xuất và công cụ kiểm tra sẵn có. Nắm 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ử trước khi bắt đầu. Nó sẽ giúp tạo ra bộ Testcase kiểm thử hiệu năng hiệu quả hơn đồng thời nó cũng sẽ giúp xác định các khó khăn mà người thử nghiệm có thể gặp phải trong quá trình kiểm thử hiệu năng.
2. Xác định các tiêu chí chấp nhận hiệu năng chấp nhận được của hệ thống
Bao gồm các 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. Nó cũng cần thiết để xác định các tiêu chí thành công của dự án. Tester cần xác định được các tiêu chí và mục tiêu hiệu năng tối thiểu cần đạt của hệ thống bởi vì thông thường các thông số của dự án sẽ không bao gồm nhiều hoặc không có những tiêu chí hiệu năng đủ lớn. Việc sử dụng một ứng dụng tương tự để so sánh là một cách hay để thiết lập 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ách sử dụng có khả năng khác nhau giữa những người dùng cuối và xác định các tình huống chính để kiểm tra tất cả các trường hợp sử dụng có thể. Nó là cần thiết để mô phỏng một loạt các người dùng cuối, kế hoạch dữ liệu thử nghiệm hiệu suất và phác thảo những số liệu sẽ được thu thập.
4. Cài đặt môi trường kiểm thử
Cài đặt môi trường, công cụ, tài nguyên cần thiết trước khi thực hiện test
5. Triển khai test design
Tạo testcases kiểm thử hiệu năng theo test design
6. Thực hiện test
Thực thi và theo dõi kết quả thực thi.
7. Phân tích, điều chỉnh và kiểm tra lại
Hợp nhất, phân tích và chia sẻ kết quả kiểm tra. Sau đó, tinh chỉnh và kiểm tra lại để xem có cải thiện hay giảm hiệu suất hay không. Vì các cải tiến thường tăng lên nhỏ hơn với mỗi lần kiểm tra lại, dừng lại khi bị tắc nghẽn do CPU gây ra. Sau đó, bạn có thể có tùy chọn xem xét tăng tốc độ xử lý của CPU hay không.
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 dựa trên nhiều yếu tố như: chi phí, phương thức hỗ trợ, trình duyệt, ngôn ngữ phát triển phần mềm, phần cứng,...
Dưới đây là một số công cụ phổ biển phục vụ cho việc kiểm thử hiệu năng:
- Jmeter: Là phần mềm mã nguôn mở sử dụng 100% ngôn ngữ Java, được thiết kế để kiểm thử tải (load testing) web and app của máy chủ.
Link download trên windows: http://jmeter.apache.org/download_jmeter.cgi
Link download trên ubutu: http://jmeter.apache.org/download_jmeter.cgi
- LoadRunner: là công cụ kiểm thử hiệu năng cho phép tìm ra những lỗi về khả năng thực thi bằng việc phát hiện nguyên nhân, chỗ làm cho phần mềm chạy chậm hoặc không đúng yêu cầu.
Đây là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và đưa ra giải pháp cải tiến. Ứng dụng LoadRunner sẽ giúp giảm thời gian viết test script đến 80%, đó là nhờ nó cung cấp chức năng tự động phát sinh script mô tả lại các tình huống muốn kiểm tra.
Link download: 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 cho phép thiết lập đường cơ sở thời gian phản hồi theo số lượng người dùng tải cụ thể, xác định điểm tắc nghẽn hiệu suất khi số lượng người dùng đồng thời tăng lên, xác định được giới hạn trên của các 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 test để thấy được cách xử lý dữ liệu và điểm giới hạn hiệu năng của hệ thống.
Link download: https://www.loadview-testing.com/
- LoadStorm: là công cụ có khả năng chịu tải rất tốt, có thể kiểm tra hiệu năng của app thông qua lượng traffic và user. Điểm đặc biệt ở công cụ này là nó có thể thiết lập hàng trăm nghìn, thậm chí hàng triệu user để khai thác lỗ hổng trong ứng dụng. Mặt khác, tester có thể dễ dàng điều chỉnh kịch bản test khi sử dụng công cụ này. Sau khi tiến hành pentest, bạn sẽ nhìn thấy một bản báo cáo chi tiết.
Link download: https://pro.loadstorm.com/
Sử dụng LoadRunner để kiểm thử hiệu năng
1. Thành phần của LoadRunner
LoadRunner chứa các thành phần sau đây:
- Virtual User Generator: Tự động tạo ra VuGen script để lưu lại các thao tác người dùng tương tác lên phần mềm. VuGen script này còn được xem là hoạt động của một người ả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 tra tải. Thành phần này có chức năng tạo ra những tình huống (scenario) kiểm tra.
- Load Generator: Cho phép giả lập hàng ngàn người dùng, hoạt động của từng người sẽ được thực hiện theo VuGen script. Kết quả thực hiện sẽ được thông báo cho Controller.
- Analysis: Cung cấp việc xem, phân tích và so sánh các kết quả kiểm tra 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ữ dùng trong LoadRunner
- Scenario: Là 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 hiệu suất yêu cầu.
- Vuser: Trong Scenario, LoadRunner thay thế người sử dụng bằng người dùng ảo hay còn gọi là 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 và thậm chí hàng ngàn Vuser.
- Vuser Script: Các hành động mà Vuser thực thi trong Scenario được mô tả trong Vuser Script.
- Transactions: Chúng ta định nghĩa một transactions để đo lường hiệu quả hoạt động của Server . Một Transaction đại diện cho người sử dụng dưới vai trò End-User thực hiện theo quy trình nghiệp vụ mà chúng ta muốn đo lường.
3. Các bước Load Test
B1: Plan Load Test
Thiết kế test case với các bước thực hiện rõ ràng, và đề ra các thông số cần đo lường cụ thể.
B2: Create Vuser Scripts
Dùng công cụ LoadRunner chúng ta có thể lưu lại các thao tác người dùng tương tác với hệ thống dưới dạng script.
B3: Define Scenario
Thiết kế scenario, nhằm giả lập môi trường mà phần mềm hoạt động với hiệu năng giống trong thực tế.
B4: Run Scenario
Chạy, quản lý và giám sát việc thực hiện performance test.
B5: Analyzing the Results
Phân tích kết quả dựa trên thống kê mà công cụ LoadRunner cung cấp. Nếu kết quả thực tế chưa đáp ứng được yêu cầu thì phần mềm được kiểm tra cần được điều chỉnh.
4. Ví dụ
Tạo một người dùng ảo ghi lại các sự kiện, hoạt động bởi người dùng thật trên trang web: http://facebook.com.vn
- Ghi lại sự kiện đăng nhập của một người dùng vào facebook
- Khi Vuser Script dừng chạy, chúng ta có thể xem tổng quan việc chạy lại trong Replay Summary.
Thời gian chạy: 11/08/2017 10:34:34 CH
Thời gian kết thúc: 11/08/2017 10:35:01 CH
- Kết quả chi tiết:
Bizfly Cloud hy vọng bài viết sẽ giúp các bạn hiểu hơn về kiểm thử hiệu năng và có thể lựa chọn được công cụ kiểm thử hiển năng phù hợp với hệ thống.
Tài liệu tham khảo: https://www.guru99.com/performance-testing.html
Theo viblo.asia
>> Có thể bạn quan tâm: Các hình thức kiểm thử Website
Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.
Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.
DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud