Kiểm tra năng suất
Kiểm thử hiệu suất là một quy trình kiểm thử phần mềm được sử dụng để kiểm tra tốc độ, thời gian phản hồi, độ ổn định, độ tin cậy, khả năng mở rộng và sử dụng tài nguyên của một ứng dụng phần mềm trong khối lượng công việc cụ thể. Mục đích chính của kiểm thử hiệu suất là xác định và loại bỏ các nút thắt hiệu suất trong ứng dụng phần mềm. Nó là một tập hợp con của kỹ thuật hiệu suất và còn được gọi là "Thử nghiệm hoàn hảo".
Trọng tâm của Kiểm tra hiệu suất là kiểm tra một chương trình phần mềm
- Tốc độ - Xác định xem ứng dụng có phản hồi nhanh chóng hay không
- Khả năng mở rộng - Xác định tải người dùng tối đa mà ứng dụng phần mềm có thể xử lý.
- Tính ổn định - Xác định xem ứng dụng có ổn định trong các tải khác nhau hay không
Trong hướng dẫn này, bạn sẽ học-
- Kiểm tra hiệu suất là gì?
- Tại sao phải kiểm tra hiệu suất?
- Các loại kiểm tra hiệu suất
- Các vấn đề về hiệu suất phổ biến
- Quy trình kiểm tra hiệu suất
- Các chỉ số kiểm tra hiệu suất: Các thông số được theo dõi
- Các trường hợp kiểm tra hiệu suất mẫu
- Công cụ kiểm tra hiệu suất
- Câu hỏi thường gặp
Tại sao phải kiểm tra hiệu suất?
Các tính năng và chức năng được hỗ trợ bởi một hệ thống phần mềm không phải là mối quan tâm duy nhất. Hiệu suất của một ứng dụng phần mềm 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 là rất quan trọng. Mục tiêu của Kiểm tra hiệu suất không phải là tìm ra lỗi mà là loại bỏ các nút thắt về hiệu suất.
Kiểm tra hiệu suất được thực hiện để cung cấp cho các bên liên quan thông tin về ứng dụng của họ liên quan đến tốc độ, độ ổn định và khả năng mở rộng. Quan trọng hơn, Kiểm tra hiệu suất phát hiện ra những gì cần được cải thiện trước khi sản phẩm ra thị trường. Nếu không có Kiểm tra hiệu suất, phần mềm có thể gặp phải các vấn đề như: chạy chậm trong khi nhiều người dùng sử dụng nó đồng thời, tính không nhất quán giữa các hệ điều hành khác nhau và khả năng sử dụng kém.
Kiểm tra hiệu suất sẽ xác định liệu phần mềm của họ có đáp ứng các yêu cầu về tốc độ, khả năng mở rộng và độ ổn định trong khối lượng công việc dự kiến hay không. Các ứng dụng được gửi đến thị trường với chỉ số hiệu suất kém do không tồn tại hoặc kiểm tra hiệu suất kém có khả năng bị mang tiếng xấu và không đạt được mục tiêu doanh số mong đợi.
Ngoài ra, các ứng dụng quan trọng như chương trình phóng vào không gian hoặc thiết bị y tế cứu sống cần được kiểm tra hiệu suất để đảm bảo rằng chúng chạy trong thời gian dài mà không bị sai lệch.
Theo Dunn & Bradstreet, 59% công ty trong danh sách Fortune 500 trải qua thời gian ngừng hoạt động ước tính 1,6 giờ mỗi tuần. Xem xét công ty Fortune 500 trung bình với tối thiểu 10.000 nhân viên đang trả 56 đô la mỗi giờ, phần lao động của chi phí thời gian ngừng hoạt động cho một tổ chức như vậy sẽ là 896.000 đô la hàng tuần, tương đương hơn 46 triệu đô la mỗi năm.
Chỉ 5 phút ngừng hoạt động của Google.com (19 tháng 8 - 13) được ước tính sẽ khiến gã khổng lồ tìm kiếm mất tới 545.000 đô la.
Người ta ước tính rằng các công ty đã mất doanh số bán hàng trị giá $ 1100 mỗi giây do sự cố gần đây của Amazon Web Service Outage.
Do đó, kiểm tra hiệu suất là rất quan trọng.
Các loại kiểm tra hiệu suất
- Kiểm tra tải - kiểm tra khả năng của ứng dụng để hoạt động dưới các tải dự kiến của người dùng. Mục tiêu là xác định các nút thắt về hiệu suất trước khi ứng dụng phần mềm hoạt động.
- Kiểm tra căng thẳng - liên quan đến việc kiểm tra một ứng dụng dưới khối lượng công việc khắc nghiệt để xem nó xử lý lưu lượng truy cập cao hoặc xử lý dữ liệu như thế nào. Mục tiêu là xác định điểm phá vỡ của một ứng dụng.
- Kiểm tra độ bền - được thực hiện để đả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 tra tăng đột biến - kiểm tra phản ứng của phần mềm đối với mức tải đột ngột lớn do người dùng tạo ra.
- Kiểm tra khối lượng - Dưới Kiểm tra khối lượng lớn không. của. Dữ liệu được điền vào cơ sở dữ liệu và hành vi của hệ thống phần mềm tổng thể được giám sát. Mục tiêu là để kiểm tra hiệu suất của ứng dụng phần mềm trong các khối lượng cơ sở dữ liệu khác nhau.
- Kiểm thử khả năng mở rộng - Mục tiêu của kiểm tra khả năng mở rộng là xác định hiệu quả của ứng dụng phần mềm trong việc "mở rộng quy mô" để hỗ trợ tăng tải người dùng. Nó giúp lập kế hoạch bổ sung năng lực cho hệ thống phần mềm của bạn.
Các vấn đề về hiệu suất phổ biến
Hầu hết các vấn đề về hiệu suất đều xoay quanh 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 độ thường là một trong những thuộc tính quan trọng nhất của một ứng dụng. Một ứng dụng chạy chậm sẽ mất đi những người dùng tiềm năng. Kiểm tra hiệu suất được thực hiện để đảm bảo một ứng dụng chạy đủ nhanh để thu hút sự chú ý và quan tâm của người dùng. Hãy xem danh sách các vấn đề về hiệu suất phổ biến sau đây và lưu ý tốc độ là một yếu tố phổ biến trong nhiều vấn đề đó:
- Thời gian tải lâu - Thời gian tải thường là thời gian ban đầu để ứng dụng khởi động. Điều này thường được giữ ở mức tối thiểu. Trong khi một số ứng dụng không thể tải trong vòng dưới một phút, thời gian tải nên được giữ dưới vài giây nếu có thể.
- Thời gian phản hồi kém - Thời gian phản hồi là thời gian tính từ khi người dùng nhập dữ liệu vào ứng dụng cho đến khi ứng dụng xuất ra phản hồi cho đầu vào đó. Nói chung, điều này sẽ rất nhanh chóng. Một lần nữa, 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 khi nó không thể xử lý số lượng người dùng dự kiến hoặc khi nó không đáp ứng đủ nhiều phạm vi người dùng. Kiểm tra tải nên được thực hiện để chắc chắn rằng ứng dụng có thể xử lý số lượng người dùng dự kiến.
- Nghẹt cổ chai - Tắc nghẽn là những vật cản trong hệ thống làm giảm hiệu suất tổng thể của hệ thống. Nghẹt cổ chai là khi lỗi mã hóa hoặc sự cố phần cứng gây ra giảm thông lượng dưới một số tải nhất định. Tắc nghẽn cổ chai thường do một phần mã bị lỗi. Chìa khóa để khắc phục sự cố tắc nghẽn là tìm phần mã gây ra sự chậm lại và cố gắng khắc phục nó ở đó. Nghẹt cổ chai thường được khắc phục bằng cách sửa các quy trình đang chạy kém hoặc thêm Phần cứng bổ sung. Một số tắc nghẽn hiệu suất phổ biến là
- Sử dụng CPU
- Sử dụng bộ nhớ
- Sử dụng mạng
- Giới hạn hệ điều hành
- Sử dụng đĩa
Quy trình kiểm tra hiệu suất
Phương pháp được áp dụng để kiểm tra hiệu suất có thể rất khác nhau nhưng mục tiêu của các bài kiểm tra hiệu suất vẫn giống nhau. Nó có thể giúp chứng minh rằng hệ thống phần mềm của bạn đáp ứng một số tiêu chí hiệu suất được xác định trước. Hoặc nó có thể giúp so sánh hiệu suất của hai hệ thống phần mềm. Nó cũng có thể giúp xác định các phần của hệ thống phần mềm của bạn làm giảm hiệu suất của nó.
Dưới đây là quy trình chung về cách thực hiện kiểm tra hiệu suất
- Xác định môi trường thử nghiệm của bạn - Biết môi trường thử nghiệm vật lý, môi trường sản xuất của bạn và những công cụ thử nghiệm nào có sẵn. Hiểu chi tiết về cấu hình phần cứng, phần mềm và mạng được sử dụng trong quá trình thử nghiệm trước khi bạn bắt đầu quá trình thử nghiệm. Nó sẽ giúp người kiểm tra tạo ra các bài kiểm tra hiệu quả hơn. Nó cũng sẽ giúp xác định những thách thức có thể xảy ra mà người kiểm tra có thể gặp phải trong quá trình kiểm tra hiệu suất.
- Xác định các tiêu chí chấp nhận hiệu suất - Điều này bao gồm các mục tiêu và ràng buộc đối với thông lượng, thời gian phản hồi và phân bổ nguồn lực. Cũng cần xác định các tiêu chí thành công của dự án ngoài các mục tiêu và ràng buộc này. Người kiểm tra nên được trao quyền để đặt ra các tiêu chí và mục tiêu về hiệu suất bởi vì thông thường các thông số kỹ thuật của dự án sẽ không bao gồm nhiều loại chuẩn hiệu suất. Đôi khi có thể không có gì cả. Khi có thể, tìm một ứng dụng tương tự để so sánh là một cách tốt để đặt mục tiêu hiệu suất.
- Lập kế hoạch & thiết kế kiểm tra hiệu suất - Xác định mức độ sử dụng có thể 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 cho tất cả các trường hợp sử dụng có thể xảy ra. Cần phải mô phỏng nhiều loại người dùng cuối, lập kế hoạch dữ liệu kiểm tra hiệu suất và phác thảo những số liệu sẽ được thu thập.
- Cấu hình môi trường thử nghiệm - Chuẩn bị môi trường thử nghiệm trước khi thực hiện. Ngoài ra, hãy sắp xếp các công cụ và các nguồn lực khác.
- Thực hiện thiết kế thử nghiệm - Tạo các thử nghiệm hiệu suất theo thiết kế thử nghiệm của bạn.
- Chạy các bài kiểm tra - Thực hiện và giám sát các bài kiểm tra.
- Phân tích, điều chỉnh và kiểm tra lại - Củng cố, 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 nhỏ hơn với mỗi lần kiểm tra lại, hãy dừng lại khi CPU bị tắc nghẽn. Sau đó, bạn có thể có tùy chọn xem xét tăng sức mạnh CPU.
Các chỉ số kiểm tra hiệu suất: Các thông số được theo dõi
Các thông số cơ bản được giám sát trong quá trình kiểm tra hiệu suất bao gồm:
- Mức sử dụng bộ xử lý - lượng thời gian bộ xử lý dành để thực hiện các luồng không hoạt động.
- Sử dụng bộ nhớ - lượng bộ nhớ vật lý có sẵn cho các quá trình trên máy tính.
- Disk time - khoảng thời gian đĩa đang bận thực hiện một yêu cầu đọc hoặc ghi.
- Băng thông - hiển thị các bit trên giây được sử dụng bởi một giao diện mạng.
- Các byte riêng tư - số byte mà một quy trình đã cấp phát không thể được chia sẻ giữa các quy trình khác. Chúng được sử dụng để đo mức độ rò rỉ và sử dụng bộ nhớ.
- Bộ nhớ cam kết - số lượng bộ nhớ ảo được sử dụng.
- Số trang / giây trong bộ nhớ - số trang được ghi vào hoặc đọc từ đĩa để giải quyết lỗi trang cứng. Lỗi trang cứng là khi mã không thuộc bộ làm việc hiện tại được gọi từ nơi khác và được truy xuất từ đĩa.
- Lỗi trang / giây - tốc độ tổng thể mà bộ xử lý xử lý các trang lỗi. Điều này lại xảy ra khi một quy trình yêu cầu mã từ bên ngoài tập hợp làm việc của nó.
- CPU ngắt mỗi giây - là giá trị trung bình. số lượng ngắt phần cứng mà bộ xử lý đang nhận và xử lý mỗi giây.
- Độ dài hàng đợi đĩa - là giá trị trung bình. Không. yêu cầu đọc và ghi được xếp hàng đợi cho đĩa đã chọn trong khoảng thời gian lấy mẫu.
- Độ dài hàng đợi đầu ra của mạng - độ dài của hàng đợi gói đầu ra trong các gói. Bất cứ điều gì nhiều hơn hai có nghĩa là sự chậm trễ và tắc nghẽn cần phải được dừng lại.
- Tổng số byte mạng mỗi giây - tỷ lệ byte được gửi và nhận trên giao diện bao gồm các ký tự đóng khung.
- Thời gian phản hồi - thời gian từ khi người dùng nhập yêu cầu cho đến khi nhận được ký tự đầu tiên của phản hồi.
- Thông lượng - đánh giá một máy tính hoặc mạng nhận được yêu cầu mỗi giây.
- Số lượng kết nối gộp - số lượng yêu cầu của người dùng được đáp ứng bởi các kết nối được gộp chung. Càng nhiều yêu cầu được đáp ứng bởi các kết nối trong nhóm, hiệu suất sẽ càng tốt hơn.
- Số phiên hoạt động tối đa - số phiên tối đa có thể hoạt động cùng một lúc.
- Tỷ lệ lần truy cập - Điều này liên quan đến số lượng câu lệnh SQL được xử lý bởi dữ liệu được lưu trong bộ nhớ cache thay vì các hoạt động I / O tốn kém. Đây là một nơi tốt để bắt đầu giải quyết các vấn đề tắc nghẽn.
- Lượt truy cập mỗi giây - không. số lần truy cập trên máy chủ web trong mỗi giây kiểm tra tải.
- Phân đoạn khôi phục - lượng dữ liệu có thể khôi phục bất kỳ lúc nào.
- Khóa cơ sở dữ liệu - việc khóa các bảng và cơ sở dữ liệu cần được theo dõi và điều chỉnh cẩn thận.
- Các lần chờ hàng đầu - được theo dõi để xác định thời gian chờ có thể được cắt giảm khi xử lý dữ liệu được truy xuất nhanh như thế nào từ bộ nhớ
- Số luồng - Tình trạng ứng dụng có thể được đo bằng số không. trong tổng số các chủ đề đang chạy và hiện đang hoạt động.
- Thu gom rác - Nó liên quan đến việc trả lại bộ nhớ không sử dụng trở lại hệ thống. Việc thu gom rác cần được giám sát để có hiệu quả.
Các trường hợp kiểm tra hiệu suất mẫu
- Thời gian phản hồi của Verify không quá 4 giây khi có 1000 người dùng truy cập website đồng thời.
- Xác minh thời gian phản hồi của Ứng dụng Đang tải nằm trong phạm vi chấp nhận được khi kết nối mạng chậm
- Kiểm tra số lượng người dùng tối đa mà ứng dụng có thể xử lý trước khi gặp sự cố.
- Kiểm tra thời gian thực thi cơ sở dữ liệu khi 500 bản ghi được đọc / ghi đồng thời.
- Kiểm tra việc sử dụng CPU và bộ nhớ của ứng dụng và máy chủ cơ sở dữ liệu trong điều kiện tải cao điểm
- Xác minh thời gian phản hồi của ứng dụng trong các điều kiện tải thấp, bình thường, trung bình và nặng.
Trong quá trình thực hiện kiểm tra hiệu suất thực tế, các thuật ngữ mơ hồ như phạm vi chấp nhận được, tải nặng, v.v. được thay thế bằng các con số cụ thể. Các kỹ sư hiệu suất đặt những con số này theo yêu cầu kinh doanh và bối cảnh kỹ thuật của ứng dụng.
Công cụ kiểm tra hiệu suất
Có rất nhiều công cụ kiểm tra hiệu suất có sẵn trên thị trường. Công cụ bạn chọn để kiểm tra sẽ phụ thuộc vào nhiều yếu tố như loại giao thức được hỗ trợ, chi phí giấy phép, yêu cầu phần cứng, hỗ trợ nền tảng, v.v. Dưới đây là danh sách các công cụ kiểm tra được sử dụng phổ biến.
- LoadNinja - đang cách mạng hóa cách chúng tôi tải thử nghiệm. Công cụ kiểm tra tải dựa trên đám mây này cho phép các nhóm ghi lại và phát lại ngay lập tức các bài kiểm tra tải toàn diện, không có mối tương quan động phức tạp & chạy các bài kiểm tra tải này trong các trình duyệt thực ở quy mô lớn. Các nhóm có thể tăng phạm vi kiểm tra. & cắt giảm thời gian kiểm tra tải hơn 60%.
- NeoLoad - là nền tảng kiểm tra hiệu suất được thiết kế cho DevOps tích hợp liền mạch vào đường dẫn Phân phối liên tục hiện có của bạn. Với NeoLoad, các nhóm kiểm tra nhanh hơn 10 lần so với các công cụ truyền thống để đáp ứng mức độ yêu cầu mới trong toàn bộ vòng đời phát triển phần mềm Agile - từ kiểm tra tải thành phần đến toàn bộ hệ thống.
- HP LoadRunner - là công cụ kiểm tra hiệu suất phổ biến nhất trên thị trường hiện nay. Công cụ này có khả năng mô phỏng hàng trăm nghìn người dùng, đặt các ứng dụng dưới tải trong đời thực để xác định hành vi của họ dưới tải dự kiến. Loadrunner có tính năng tạo người dùng ảo mô phỏng hành động của người dùng trực tiếp.
- Jmeter - một trong những công cụ hàng đầu được sử dụng để kiểm tra tải của máy chủ web và ứng dụng.
Câu hỏi thường gặp
Chúng ta nên Kiểm tra Hiệu suất Ứng dụng nào?
Kiểm tra Hiệu suất luôn chỉ được thực hiện cho các hệ thống dựa trên máy khách-máy chủ. Điều này có nghĩa là, bất kỳ ứng dụng nào không phải là kiến trúc dựa trên máy khách-máy chủ, không được yêu cầu Kiểm tra hiệu suất.
Ví dụ: Microsoft Calculator không dựa trên máy khách-máy chủ cũng không chạy nhiều người dùng; do đó nó không phải là một ứng cử viên cho Kiểm tra hiệu suất.
Sự khác biệt giữa Kiểm tra Hiệu suất & Kỹ thuật Hiệu suất là gì
Điều quan trọng là phải hiểu sự khác biệt giữa Kiểm tra hiệu suất và Kỹ thuật hiệu suất. Một sự hiểu biết được chia sẻ dưới đây:
Kiểm thử hiệu suất là một kỷ luật liên quan đến việc kiểm tra và báo cáo hiệu suất hiện tại của một ứng dụng phần mềm dưới nhiều tham số khác nhau.
Kỹ thuật hiệu suất là quá trình phần mềm được kiểm tra và điều chỉnh với mục đích đạt được hiệu suất cần thiết. Quá trình này nhằm mục đích tối ưu hóa đặc điểm hiệu suất ứng dụng quan trọng nhất, tức là trải nghiệm người dùng.
Trong lịch sử, kiểm tra và điều chỉnh là hai lĩnh vực riêng biệt và thường cạnh tranh. Tuy nhiên, trong vài năm gần đây, một số nhóm người thử nghiệm và nhà phát triển đã hợp tác độc lập để tạo ra các nhóm điều chỉnh. Bởi vì các nhóm này đã đạt được thành công đáng kể, khái niệm về kết hợp kiểm tra hiệu suất với điều chỉnh hiệu suất đã bắt đầu phổ biến và bây giờ chúng tôi gọi nó là kỹ thuật hiệu suất.
Phần kết luận
Trong Kỹ thuật phần mềm, kiểm tra Hiệu suất là cần thiết trước khi tiếp thị bất kỳ sản phẩm phần mềm nào. Nó đảm bảo sự hài lòng của khách hàng và bảo vệ khoản đầu tư của nhà đầu tư trước sự thất bại của sản phẩm. Chi phí kiểm tra hiệu suất thường cao hơn bù đắp cho việc cải thiện sự hài lòng, lòng trung thành và khả năng giữ chân của khách hàng.