12/08/2018, 11:45

Tìm hiểu về kiểm thử Hiệu năng và công cụ kiểm thử LoadRunner

Kiểm thử hiệu năng 1. Giới thiệu về kiểm tra tự động hiệu năng phần mềm Một câu hỏi được đặt ra đó là: ** Tại sao bạn nên thực hiện kiểm tra tự động hiệu năng phần mềm?** Kiểm tra tự động hiệu năng phần mềm nhằm giảm bớt những rủi ro của việc ứng dựng, nâng cấp và phát triển phần mềm. Kiểm ...

Kiểm thử hiệu năng

1. Giới thiệu về kiểm tra tự động hiệu năng phần mềm

Một câu hỏi được đặt ra đó là: ** Tại sao bạn nên thực hiện kiểm tra tự động hiệu năng phần mềm?**

  • Kiểm tra tự động hiệu năng phần mềm nhằm giảm bớt những rủi ro của việc ứng dựng, nâng cấp và phát triển phần mềm. Kiểm thử hiệu năng được thực hiện để xác định hệ thống hoặc hệ thống con thực hiện một khối lượng công việc cụ thể nhanh thế nào. Nó cũng có thể dùng để xác nhận và xác minh những thuộc tính chất lượng khác của hệ thống như là khả năng mở rộng, độ tin cậy và sử dụng tài nguyên. Load testing là khái niệm chủ yếu của việc kiểm thử mà có thể tiếp tục hoạt động ở một mức tải cụ thể, cho dù đó là một lượng lớn dữ liệu hoặc lượng lớn người sử dụng.

  • Một hệ thống kiểm tra tự động tốt trả lời được cho các câu hỏi như:

    • Liệu ứng dụng có đáp ứng đủ cho người dùng 1 cách nhanh chóng?
    • Liệu việc xử lý của ứng dụng có đáp ứng được yêu cầu người dùng, khả năng chịu tải và hơn thế nữa?
    • Liệu ứng dụng có xử lý được số lượng giao dịch theo yêu cầu kinh doanh?
    • Liệu ứng dụng có ổn định như mong muốn của người dùng về khả năng chịu tải không?
    • Chúng ta có chắc rằng người dùng sẽ có kinh nghiệm trong việc khi nào thì đưa vào sử dụng thực tế?
  • Bằng việc trả lời các câu hỏi này, kiểm tra tự động hiệu năng phần mềm làm rõ ràng những rủi ro của việc triển khai phần mềm, ngăn ngừa hệ thống downtime và sẵn sàng trước các vấn đề gặp phải.

2. Kiểm thử tải

  • Kiểm thử tải là cách kiểm thử đặt yêu cầu trên một hệ thống hay thiết bị và đo lường sự trả lời của nó, được thực thi dưới các điều kiện tải cao điểm và bình thường.

  • Các yếu tố được kiểm thử bởi kiểm thử tải

    • Thời gian đáp ứng
    • Tỷ lệ lỗi
    • Lưu lượng dữ liệu
    • Số yêu cầu trên 1 giây
    • Số người dùng đồng thời
    • Tài nguyên máy
  • Các yếu tố ảnh hưởng đến kiểm thử tải

    • Việc lập kế hoạch: Kế hoạch được vạch ra rõ ràng sẽ cho ta một kết quả khả quan, ngược lại nếu phức tạp sẽ cho ta kết quả của nó có xu hướng rối rắm.
    • Mục tiêu được đặt ra: ta sẽ có câu trả lời rõ ràng.
    • Kỹ năng của nhân viên
    • Môi trường thử nghiệm kiểm thử tải
    • Cơ sở dữ liệu: Trong môi trường kiểm thử, cơ sở dữ liệu phải được nạp sẵn hoặc là một bản sao của dữ liệu hiện hành hoặc là dữ liệu giả mà nó có kích thước và nội dung như dữ liệu hiện hành
    • Công cụ kiểm thử tải: Phải có các tính năng quan trọng như: tham số hóa dữ liệu, nắm bắt các dữ liệu động, theo dõi cơ sở hạ tầng và hỗ trợ nhiều giao thức cho các ứng dụng
  • Quy trình thực hiện kiểm thử tải: Thông thường khi thực hiện kiểm thử tải ta có hai hướng:

    • Thực hiện kiểm thử tải cho một hệ thống dựa trên các giới hạn hệ thống đã đưa ra trước
    • Thực hiện kiểm thử tải để xác định các giới hạn cho một hệ thống để đưa ra các giới hạn cho một hệ thống, để đưa ra các giới hạn cho việc triển khai duy trì và phát triển hệ thống.
  • Thực hiện kiểm thử tải theo các bước sau:

    • Xác định tiêu chí thực hiện kiểm thử tải: thời gian đáp ứng, lưu lượng dữ liệu, tài nguyên hệ thống,...
    • Xác định kịch bản chính: mục tiêu thực hiện riêng biệt, cái được coi nguy cơ lỗi cao, những chức năng thường được sử dụng phổ biến
    • Tạo mô hình lưu lượng công việc: Khối lượng công việc mà hệ thống phải xử lý trong khoảng thời gian nhất định
    • Xác định cấp độ đích tải: Áp dụng cho khối lượng công việc đã được xác định trong bước trước, mục đích để đảm bảo rằng sự thử nghiệm có thể được sử dụng để đoán trước hay so sánh một loạt các điều kiện
    • Xác định chuẩn đo: Đưa ra các số liệu dựa trên kết quả phân tích tại các thời điểm thích hợp như tại các thời điểm giúp ta xác định nút thắt cổ chai cho hệ thống
    • Thiết kế các thử nghiệm riêng: Việc này giúp ta thu thập thông tin cần thiết để hiểu, đánh giá và điều chỉnh các ứng dụng, nó phụ thuộc vào công cụ được lựa chọn, kịch bản tải, các thước đo chính và bảng phân tích lưu lượng công việc. Trong khi thiết kế các thử nghiệm riêng ta cần thực hiện cấu hình môi trường kiểm thử tải, kịch bản tải sao cho gần nhất có thể so với môi trường thực thi của hệ thống.
    • Chạy thử nghiệm: Trước khi chạy thử nghiệm ta cần kiểm tra lại các điều kiện khởi đầu của các kịch bản kiểm thử tải, môi trường tải của hệ thống, ta thường bắt đầu thử nghiệm so với số lượng nhỏ người dùng và sau đó từng bước tăng dần tải trọng, ghi lại hành vi cho đến khi đạt đến ngưỡng trong mục tiêu hiệu suất ta đặt ra, ngay cả khi tải trọng đó vượt quá tải trọng mục tiêu đặt ra trong thiết kế thử nghiệm
    • Phân tích kết quả: Sau khi thực hiện kiểm thử ta nắm bắt dữ liệu từ kết quả và thực hiện so sánh nó với dữ liệu mong muốn đặt ra trong các trường hợp kiểm thử. Ta tiến hành phân tích đánh giá dữ liệu thu được với dữ liệu của kết quả mong muốn, đưa ra các dự đoán về các nút thắt cổ chai, các giá trị ngưỡng tiềm tàng. Thu thập năm bắt số liệu bổ sung cho phần thử nghiệm tiếp theo nếu có.
  • Một số công cụ kiểm thử: OpenSTA, Visual Studio Load Test, Jmeter, Apploader, LoadRunner,...

Công cụ kiểm thử LoadRunner

Trong bài này tôi sẽ trình bày những gì tôi biết về công cụ LoadRunner một công cụ kiểm thử tự động thực hiện việc kiểm tra hiệu năng của phần mềm. Nó cho phép chúng ta 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.

3. Những 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.

4. 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.

5. Phương pháp load test

Load Test thường bao gồm 5 giai đoạn: Lập kế hoạch, tạo script, định nghĩa Scenario, thực thi Scenario và phân tích kết quả. - 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ể - 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 - 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ế - Run Screnario: Chạy, quản lý và giám sát việc thực hiện performance test - Analyze 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.

6. Download và cài đặt công cụ LoadRunner trên window

  • Để download và cài đặt LoadRunner, đầu tiên các bạn phải tạo tài khoản và download phần mềm theo địa chỉ: http://www8.hp.com/us/en/software-solutions/loadrunner-load-testing/index.html?jumpid=va_uwxy6ce9tr
  • Sau khi download, chúng ta có thể tiến hành cài bằng cách giải nến và chạy file "HPLR_1250_Community_Edition.exe". Nhấn Install để cài đặt

Selection_248.png

  • Thường sau khi giải nén xong thư mục chứa file cài đặt LoadRunner nằm ở C:TempHpLoadRunner 12.50 community EditionDVD. Ta sẽ vào folder và chạy tiếp file Setup.exe. Click LoadRunner Full Setup

Selection_256.pngSelection_250.png

  • Khi install, Loadrunner sẽ quét và list ra những gói nào cần phải cài đặt trên máy và sẽ tự động cài trước khi cài loadrunner. Click OK để loadrunner tự động cài đặt các gói, thư viện còn thiếu Selection_251.png

  • Sau khi cài các gói cần thiết sẽ thực hiện cài đặt Loadrunner. Click Next để tiếp tục

  • Ta bỏ chọn ở phần “Specify a certificate that will be used by the LoadRunner Agent” -> Next Selection_253.png

  • Finish

  • Sau khi hoàn tất, Loadrunner sẽ thông báo check License và cài thêm HP Network Virtualization

  • Sau khi cài đặt, ta sẽ có bộ sản phẩm của LoadRunner bao gồm: Analysis, Controller và Virtual User Generator

Tôi sẽ hướng dẫn các bạn sử dụng LoadRunner một cách cụ thể ở bài viết sau.

0