intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Báo cáo " Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học "

Chia sẻ: Phạm Huy | Ngày: | Loại File: PDF | Số trang:17

130
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trình bầy khái niệm cơ bản kiểm thử hiệu năng, các hoạt động trong kiểm thử hiện năng, các kiểu kiểm thử hiệu năng, một vài công cụ kiểm thử hiệu năng trên thị trường. Mô tả chi tiết các kỹ thuật trong kiểm thử hiệu năng: phân tích và xác định tải công việc cho ứng dụng, cài đặt môi trường kiểm thử, chọn và xây dựng kịch bản kiểm thử, thực hiện kiểm thử hiệu năng và phân tích đưa ra báo cáo kết quả. Miêu tả cách thực hiện và kết quả thu được khi: phân tích...

Chủ đề:
Lưu

Nội dung Text: Báo cáo " Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học "

  1. Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học Phạm Thị Thương Trường Đại học Quốc gia Hà Nội; Trường Đại học Công nghệ Chuyên ngành: Công nghệ phần mềm; Mã số: 60 48 10 Cán bộ hướng dẫn khoa học: TS. Trương Anh Hoàng Năm bảo vệ: 2012 Abstract. Trình bầy khái niệm cơ bản kiểm thử hiệu năng, các hoạt động trong kiểm thử hiện năng, các kiểu kiểm thử hiệu năng, một vài công cụ kiểm thử hiệu năng trên thị trường. Mô tả chi tiết các kỹ thuật trong kiểm thử hiệu năng: phân tích và xác định tải công việc cho ứng dụng, cài đặt môi trường kiểm thử, chọn và xây dựng kịch bản kiểm thử, thực hiện kiểm thử hiệu năng và phân tích đưa ra báo cáo kết quả. Miêu tả cách thực hiện và kết quả thu được khi: phân tích mô hình người sử dụng và mô hình tải, luồng chức năng hay được sử dụng, thời gian nghĩ (think time), chọn kịch bản kiểm thử, ghi và cài đặt kịch bản kiểm thử tải sử dụng phần mềm Jmeter, thực hiện kiểm thử, phân tích và báo cáo kết quả, đưa ra kết luận về hiệu năng và vấn đề ảnh hướng chính đến hiệu năng hệ thống khi triển khai mở rộng. Vận dụng lý thuyết kiểm thử hiệu năng và kinh nghiệm bản thân trong thực tế tôi đã phân tích đưa ra chú ý giúp đội phát triển và kiểm thử viên tham khảo để cải thiện và đảm bảo hệ thống đạt được hiệu năng yêu cầu khi triển khai trên diện rộng. Keywords: Công nghệ thông tin; Kiểm thử phần mềm; Phần mềm; Quản lý trường học Content. MỞ ĐẦU Kiểm thử hiệu năng cho hệ thống rất quan trọng chính vì vậy mà luận văn tập trung nghiên cứu lý thuyết, kỹ thuật và công cụ trong kiểm thử hiệu năng. Đồng thời áp dụng kiểm thử hiệu năng vào hệ thống đang được triển khai thử nghiệm trong thực tế. Từ kết quả kiểm thử và vận dụng lý thuyết luận văn phân tích đưa ra các chú ý khi triển khai hệ thống trên diện rộng. Cấu trúc của luận văn như sau: Chương 1 trình bầy khái niệm cơ bản kiểm thử hiệu năng, các hoạt động trong kiểm thử hiện năng, các kiểu kiểm thử hiệu năng, một vài công cụ kiểm thử hiệu năng trên thị trường. Chương 2 mô tả chi tiết các kỹ thuật trong kiểm thử hiệu năng: phân tích và xác định tải công việc cho ứng dụng, cài đặt môi trường kiểm thử, chọn và xây dựng kịch bản kiểm thử, thực hiện kiểm thử hiệu năng và phân tích đưa ra báo cáo kết quả. Chương 3 là sự nỗ lực của bản thân thực hiện kiểm thử tải cho phần mềm quản lý trường học được xây dựng trên nền web. Luận văn miêu tả cách thực hiện và kết quả thu được khi: phân tích mô hình người sử dụng và mô hình tải, luồng chức năng hay được sử dụng, thời gian nghĩ (think time),
  2. chọn kịch bản kiểm thử, ghi và cài đặt kịch bản kiểm thử tải sử dụng phần mềm Jmeter, thực hiện kiểm thử, phân tích và báo cáo kết quả. Từ kết quả tôi phân tích đưa ra kết luận về hiệu năng và vấn đề ảnh hướng chính đến hiệu năng hệ thống khi triển khai mở rộng. Chương 4 từ kết quả kiểm thử tải ở Chương 3, vận dụng lý thuyết kiểm thử hiệu năng và kinh nghiệm bản thân trong thực tế tôi đã phân tích đưa ra chú ý giúp đội phát triển và kiểm thử viên tham khảo để cải thiện và đảm bảo hệ thống đạt được hiệu năng yêu cầu khi triển khai trên diện rộng. Tóm tắt kết quả đã đạt được, trình bày những hạn chế và hướng nghiên cứu phát triển trong tương lai sẽ được trình bày trong phần kết luận. CHƢƠNG 1 TỔNG QUAN VỀ KIỂM THỬ HIỆU NĂNG 1.1 Giới thiệu Chương 1 và Chương 2 của luận văn sẽ giúp người đọc có cái nhìn từ tổng quan và đến chi tiết kỹ thuật trong các hoạt động kiểm thử hiệu năng. 1.2 Khái niệm kiểm thử hiệu năng Có nhiều định nghĩa về kiểm thử hiệu năng. Theo [5], kiểm thử hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó. Một cách định nghĩa khác của kiểm thử hiệu năng theo [4], kiểm thử hiệu năng là kiểm thử xác định thời gian phản hồi (repsonsiveness), thông lượng (throughput), mức độ tin cậy (reliability) hoặc khả năng mở rộng (scalability) của hệ thống theo khối lượng công việc (workload). 1.3 Tầm quan trọng của kiểm thử hiệu năng Kiểm thử hiệu năng là hoạt động cần thiết cho việc phát triển những giải pháp tối ưu hóa hiệu năng cho phần mềm. Kiểm thử hiệu năng giúp chúng ta tránh được các tình huống không lường trước khi triển khai ứng dụng trong môi trường thực tế. 1.2 Các thuật ngữ trong kiểm thử hiệu năng Theo [5] tôi đã chọn lọc và đưa ra một thuật ngữ hay được sử dụng trong kiểm thử hiệu năng: Thời gian nghĩ (think time): là khoảng thời gian người sử dụng nắm bắt nội dung của trang web hoặc là thời gian người dùng thực hiện một hành động tương tác với hệ thống như nhấp vào một đường dẫn, nút, v.v… Tải ngƣời sử dụng đồng thời (simultaneous user load): là tải nhiều người đồng thời cùng sử dụng ứng dụng, tại cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau. Tải ngƣời sử dụng đồng thời thực hiện một hành động (concurrent user load): là tải nhiều người đồng thời cùng sử dụng ứng dụng và thực hiện cùng một hoạt động tại bất kỳ thời điểm nào. Yêu cầu/mục đích hiệu năng (performance requirements/goals): là định lượng đưa ra tiêu chí cho rằng hiệu năng của hệ thống là tốt. Yêu cầu hiệu năng của một ứng dụng được thể hiện trong thời gian phản hồi, số lượt truy cập trong 1 giây (hits), số giao địch trong 1 giây, v.v…
  3. Tải công việc (workload): là tải người sử dụng hệ thống trong thời gian thực khi người sử dụng đang truy cập hoặc trong khi kiểm thử hiệu năng. Hit: là yêu cầu gửi về máy chủ để truy cập vào một trang web hoặc một tập tin hoặc một ảnh từ máy chủ web. Thời gian phản hồi (response time): là thời gian phục vụ hoặc xử lý để phản hồi lại yêu cầu. Thời gian phản hồi được tính từ khi trình duyệt web gửi yêu cầu tới máy chủ web cho tới khi trình duyện web nhận được những byte phản hồi đầu tiên từ máy chủ. Thông lƣợng (throughput): là tổng dữ liệu (bytes) được chuyền từ máy chủ tới máy khách để phục vụ yêu cầu người dùng. 1.3 Các hoạt động trong kiểm thử hiệu năng Hình 1.1: Các giai đoạn trong kiểm thử hiệu năng [5]. Dựa vào Hình 1.1 ta thấy có 4 giai đoạn chính trong thực hiện kiểm thử hiệu năng và lần lượt thứ tự thực hiện là: lên kế hoạch kiểm thử, tạo kịch bản, thực hiện và phân tích, báo cáo kết quả. Trong mỗi giai đoạn này có các hoạt động khác nhau. 1.4 Tính linh động trong kiểm thử hiệu năng Tính linh động trong kiểm thử hiệu năng rất cao. Scott Barber đã từng so sánh: “kiểm thử hiệu năng như điều tra tội phạm”. Vì nó là hoạt động có thể điều tra theo bất kỳ hướng nào. Rất khó để ước tính được nỗ lực bỏ ra để kiểm thử hiệu năng [5]. Nỗ lực kiểm thử được chia ra như sau: Hình 1.2: Nỗ lực kiểm thử [5]. 1.5 Hiểu lầm về kiểm thử hiệu năng So sánh bản chất thực tế và những quan điểm sai lầm mà mọi người hay nhầm tưởng về kiểm thử hiệu năng sẽ giúp chúng ta có cái nhìn đúng đắn hơn và làm thế nào để một dự án đạt được yêu cầu hiệu năng trước khi đưa ra triển khai trong thực tế.
  4. 1.6 Kiểu kiểm thử hiệu năng Kiểm thử cơ sở (baseline test) Kiểm thử cơ sở là kiểm thử được xây dựng đánh giá hiệu năng ứng dụng với tải một người sử dụng [5, 6]. Kịch bản kiểm thử có thể được tạo ra với thời gian nghĩ (think time) trong thực tế và những cài đặt khác giống sử dụng trong thời gian thực. Kiểm thử chuẩn (benchmark test) Kiểm thử chuẩn là kiểm thử được tiến hành để đo lường hiệu năng của ứng dụng trong một điều kiện tải thấp. Thông thường kiểm thử chuẩn chiếm 15-20% mức tải mục tiêu [5]. Kiểm thử tải (load test) Kiểm thử tải được thực hiện xác định hiệu năng hệ thống với điều kiện tải nhiều người sử dụng đồng hệ thống như trong thực tế. Nó được xây dựng với mục đích tìm ra hiệu năng hệ thống trong điều kiện tải mục tiêu [2, 5, 6]. Kiểm thử áp lực (stress test) Kiểm thử áp lực là kiểm thử được tiến hành bằng cách kiểm thử hệ thống trong điều kiện tải bất hợp lý để xác định điểm dừng (breakpoint) của hệ thống [2, 5]. Kiểm thử Spike (spike test) Kiểm thử này rất giống kiểm thử áp lực (stress test) nhưng hệ thống được đặt trong tải cực cao trong một thời gian gian ngắn [2, 5]. Kiểm thử giúp xác nhận hiệu năng hệ thống trong điều kiện tải cao đột ngột trong giờ giao dịch cao điểm của ứng dụng. Kiểm thử chịu đựng (endurance test) Kiểm thử chịu đựng tập trung vào đánh giá hiệu năng của hệ thống với mức tải sử dụng được định trước trong khoảng thời gian kéo dài. Kiểm thử chịu đựng chạy với 70%- 80% của tải mục tiêu, trong kịch bản có cài đặt thời gian nghĩ giống như trong thực tế. Kiểm thử cô lập nghẽn cổ chai (bottleneck isolation test) Kiểm thử cô lập nghẽn cổ chai là kiểm thử được thực hiện trên hệ thống hoặc một thành phần cụ thể để tìm ra các vấn đề và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống [5]. Kiểm thử khối lƣợng (volume test) Kiểm thử khối lượng là kiểm thử hiệu năng cho hệ thống khi nó phải thao tác với một lượng dữ liệu nhất định. Số lượng này có thể là kích thước bản ghi dữ liệu hoặc nó cũng có thể là kích thước của 1 tập tin. 1.7 Công cụ kiểm thử hiệu năng 1.7.1 Công cụ kiểm thử hiệu năng Có rất nhiều phần mềm kiểm thử hiệu năng trên thị trường. Nó có thể được chia thành hai loại chính: phần mềm mã nguồn mở và phần mềm có bản quyền.
  5. 1.7.2 Tiêu chuẩn để chọn một công cụ kiểm thử hiệu năng Chọn một phần mềm kiểm thủ hiệu năng tốt phù hợp với đặc thù của ứng dụng cần kiểm thử không phải là việc quá khó với kiểm thử viên. Kết luận của kiểm thử viên về hiệu năng của hệ thống mới là công cụ tốt nhất phân tích, đánh giá hiệu năng của hệ thống [5]. CHƢƠNG 2 CÁC KỸ THUẬT TRONG KIỂM THỬ HIỆU NĂNG 2.1 Xác định tải công việc của hệ thống (workload of system) 2.1.1 Định nghĩa Tải công việc (workload) là số lượng yêu cầu, giao dịch người dùng gửi về máy chủ xử lý trong thời gian người sử dụng truy cập hệ thống hoặc trong khi thực hiện kiểm thử hiệu năng. Như G.Kotis từng nói, “tải công việc có thể được xác định như một tập các đầu vào từ những người sử dụng gửi tới hệ thống “ [5]. 2.1.2 Kiểu tải công việc Tải công việc của hệ thống cần được phân tích và thiết kế. Điều đó sẽ giúp chúng ta hiểu được người sử dụng cuối và mô hình sử dụng [5]. Một vài loại tải công việc: tải ổn định (Steady-State Workload), tải bậc thang (Inclined Workload), tải bùng nổ (Bursty Workload) và tải tại thời gian cụ thể (Time Specific Workload). 2.1.3 Phân tích tải công việc của hệ thống Phân tích tải công việc là: xác định tổng tải công việc của hệ thống phải xử lý, loại yêu cầu mà người dùng gửi đến máy chủ, luồng chức năng được sử dụng thường xuyên, chu kỳ sử dụng của người dùng, thời gian người dùng cuối sử dụng mỗi lần vào hệ thống, thời gian giữa các giao dịch, phân loại người sử dụng, số người sử dụng ứng dụng, khi nào máy chủ chịu tải cao nhất [5]. 2.1.4 Mô hình hóa tải công việc (workload) Tuần tự các bước để mô hình hóa tải công việc của ứng dụng: Bước 1: Dựa vào yêu cầu về hiệu năng để xây dựng mô hình tải công việc Bước 2: Phân tích tải công việc và xác định mô hình yêu cầu Bước 3: Xác định phân bố thống kê cơ sở cho mô hình yêu cầu Bước 4: Thu thập số liệu về sự tiêu thụ tài nguyên phần cứng Bước 5: Xây dựng mô hình tải Bảng 2.1: Ví dụ về mô hình tải sau khi xây dựng [5] Giao dịch Tần suất Thời gian CPU (giây) Thời gian I/O (giây) Nhẹ (Light) 10% 6 120 Trung bình (medium) 70% 28 260
  6. Nặng (Heavy) 20% 350 900 2.2 Cài đặt môi trƣờng kiểm thử hiệu năng 2.2.1 Môi trường kiểm thử Nếu môi trường sản phẩm và môi trường kiểm thử có sự khác nhau về phần cứng triển khai ứng dụng thì sẽ mang lại rủi ro cao là hiệu năng sau khi kiểm thử không phải là hiệu năng thực tế của hệ thống trong thực tế. Vì vậy môi trường kiểm thử nên được cài đặt giống với môi trường sản phẩm. 2.2.2 Cô lập môi trường kiểm thử Kiểm thử hiệu năng nên được xây dựng trong môi trường riêng biệt tránh tải không cần thiết để đánh giá chính xác và những vấn đề ảnh hưởng đến hiệu năng. 2.2.3 Tạo tải (Load Generators ) Để tạo tải nhiều người sử dụng hệ thống như trong thực tế chúng ta sử dụng phần mềm kiểm thử hiệu năng. 2.2.4 Tạo dữ liệu kiểm thử (Test data generator) Số lượng bản ghi của hệ thống trong thực tế phải được nghiên cứu đưa ra một con số cụ thể và chính xác. Khi đó chúng ta có thể tạo được số bản ghi dữ liệu giống như trong thực tế để thực hiện kiểm thử. 2.3 Xây dựng kịch bản kiểm thử hiệu năng 2.3.1 Chọn kịch bản kiểm thử hiệu năng Lựa chọn kịch bản trong kiểm thử hiệu năng cần được phân tích và nó chỉ chiếm 20% trong tổng số kịch bản. Đó là những kịch bản mà người dùng sử dụng thường xuyên khi sử dụng hệ thống. Thực hiện kiểm thử hiệu năng cho 80% kịch bản còn lại sẽ làm tốn thời gian, công sức mà không mang lại kết quả mong đợi [5,7]. 2.3.2 Viết kịch bản kiểm thử hiệu năng Kịch bản kiểm thử được tạo ra bằng cách sử dụng phần mềm kiểm thử hiệu năng để ghi lại hành động của người dùng như trong thực tế. Tuy nhiên do hạn chế của phần mềm mà thời gian nghĩ (think time) và một số tham số khác không được ghi lại trong kịch bản. Vì vậy mà mà kiểm thử viên phải tự cài đặt lại thời gian nghĩ và tham số khác để đảm bảo kịch bản chạy đúng như trong thực tế. 2.4 Thực hiện kiểm thử hiệu năng (Performance test execution) 2.4.1 Những chuẩn bị trước khi kiểm thử hiệu năng Bƣớc 1: Hiểu mô hình người sử dụng (workload model) của hệ thống thông. Bƣớc 2: Thiết kế ca kiểm thử cùng với các tham số như chiến lược tăng (ramp up), thời gian kiểm thử, cài đặt thời gian đợi (think time), kịch bản kiểm thử được thực hiện, các điều kiện tải, các loại kiểm thử được tiến hành cùng với chuẩn qua/lỗi Bƣớc 3: Xác định phần mềm kiểm thử hiệu năng và chuẩn bị dữ liệu kiểm thử. Bƣớc 4: Đảm bảo môi trường kiểm thử đã sẵn sàng, không có người sử dụng truy cập ứng dụng trong khi thực hiện kiểm thử và máy chủ được cách ly với bất kỳ sử dụng khác.
  7. 2.4.2 Phương pháp thực hiện kiểm thử hiệu năng Sử dụng phần mềm kiểm thử và kịch bản đã tạo sẵn chúng ta thực hiện kiểm thử hiệu năng cho hệ thống. Trong thời gian thực hiện kiểm thử hiệu năng, đặt máy chủ trong một tải ổn định khoảng 15- 30 phút phụ thuộc vào mô hình sử dụng. Kiểm tra hiệu năng của hệ thống với nhiều tình huống trong các điều kiện tải khác nhau và sau đó đưa ra số liệu hiệu năng về thời gian phản hồi, thông lượng và sử dụng tài nguyên của máy chủ. 2.4.3 Lời khuyên khi thực hiện kiểm thử tải và kiểm thử áp lực Kiểm thử tải (load test) Thực hiện ít nhất 3 vòng kiểm thử tải cần lên kế hoạch trước khi đặt hệ thống trong tải mục tiêu. Kiểm thử tải thấp cho hệ thống chiếm 30 % tải mục tiêu, kiểm thử tải trung bình chiếm 60% trong tải mục tiêu và còn lại là kiểm thử tải cao chiếm 100% tải mục tiêu [5]. Kiểm thử áp lực (stress test) Thông thường khoảng 10% - 20 % tải được cộng thêm vào mức tải tối đa của hệ thống được đạt làm mức tải cho kiểm thử áp lực. Khi thực hiện kiểm thử áp lực chúng ta nên tăng chậm tải cho hệ thống cho đến khi xuất hiện điểm dừng (break point). Kiểm thử này có thể thực hiện một vài lần thu thập hành vi của hệ thống và nâng cao độ tin cậy khi phân tích hành vi này. 2.5 Báo cáo kiểm thử hiệu năng (Performance test reporting) 2.5.1 Báo cáo kiểm thử hiệu năng Thông tin viết trong báo cáo gồm: yêu cầu hiệu năng cần kiểm thử, tổng quan về hệ thống, các kịch bản kiểm thử, mô hình phân bố người sử dụng và kết quả kiểm thử [5]. Thông tin quan trọng nhất trong báo cáo là chi tiết thời gian phản hồi, thông lượng trong các giao dịch, các chỉ số về mức độ sử dụng tài nguyên phần cứng, lỗi ứng dụng hoặc những lỗi phát sinh trong khi kiểm thử, v.v… [5]. 2.5.2 Các thành phần của báo cáo Một cách khái quát báo cáo kiểm thử hiệu năng nên có thông tin sau: 1. Mục đích của kiểm thử hiệu năng (cam kết mức độ dịch vụ cung cấp). 2. Môi trường kiểm thử và cấu hình máy chủ. 3. Kịch bản kiểm thử (theo bản kế hoạch). 4. Tóm tắt kết quả kiểm thử. 5. Trực quan hóa thông tin chi tiết hiệu năng hệ thống. 6. Trực quan hóa vấn đề, nguyên nhân ảnh hưởng đến hiệu năng (nếu có). 7. Kết luận về hiệu năng và giải pháp để cải thiện hiệu năng. 2.5.3 Lời khuyên và ví dụ khi tạo báo cáo Kết quả trình bầy trong báo cáo nên đưa ra các thông tin:  Đưa ra 90% giá trị của thời gian phản hồi không nên dùng giá trị trung bình [5,7].
  8.  Sử dụng bảng so sánh thời gian phản hồi (90% giá trị của thời gian phản hồi) để chúng ta thấy rõ hiệu năng cửa hệ thống ở các mức tải khác nhau [5].  Vẽ biểu đồ để thể hiện sự thay đổi thời gian phản hồi với mức tải khác nhau. Ví dụ 1: Bảng só sanh thời gian phản hồi. Bảng 2.2: So sánh thời gian phản hồi [5] Bảng so sánh thời gian phản hồi (90% giá trị của thời gian phản hồi (sec)) Giao dịch 50 Người 100 người 200 người 300 người Giao dịch 1 1.2 1.9 2.1 21 Giao dịch 2 0.7 1.2 1.8 19 Giao dịch 3 0.9 1.6 2 17 Dựa vào Bảng 2.2 người đọc báo cáo dễ dàng thấy được sự thay đổi thời gian phản hồi từng giao theo số người sử dụng. Ví dụ 2: Biểu đồ sự thay đổi thời gian phản hồi với mức tải khác nhau Hình 2.6: Biểu đồ sự thay đổi thời gian phản hồi [5]. Dựa vào Hình 2.6 người đọc báo cáo dễ dàng thấy được trạng thái hiệu năng của hệ thống tương ướng với số người sử dụng. CHƢƠNG 3 KIỂM THỬ HIỆU NĂNG DỊCH VỤ PHẦN MỀM QUẢN LÝ TRƢỜNG HỌC 3.1 Mục tiêu Trong chương này tôi miêu tả các hoạt động và các kết quả tôi đạt được khi áp dụng lý thuyết để thực hiện kiểm thử hiệu năng cho phần mềm quản lý trường học được xây dựng trên nền web (truongnha.com) đang được triển khai thử nghiệm. Tất cả kết quả kiểm thử được thực hiện trên máy chủ ảo ở trang web http://cntt.dyndns.info:8851. Nội dụng chính trình bầy trong chƣơng: - Giới thiệu trang web quản lý trường học. - Phân tích mô hình người sử dụng và mô hình tải của trang dựa vào các số liệu Google Analytics cung cấp về người sử dụng hệ thống. - Xây dựng kịch bản thực hiện kiểm thử: xây 2 kịch bản kiểm thử chính để thực hiện kiển thử tải.
  9. - Chiến lược thực hiện kiểm thử. - Thực hiện kiểm thử: kiểm thử cơ sở, kiểm thử tải cho trang web với 2 mức tải 50 và 100 người sử dụng đồng thời. Thu thập các số liệu về hiệu năng của trang web trên máy chủ hiện tại: thời gian phản hồi, thông lượng, mức độ sử dụng CPU, I/O và bộ nhớ trên máy chủ. - Phân tích kết quả và báo cáo: đưa ra kết luận về hiệu năng máy chủ với các mức tải thực hiện kiểm thử. Từ kết quả phân tích tôi đưa ra kết luận về vấn đề ảnh hưởng đến việc nâng cao hiệu năng của hệ thống. 3.2 Giới thiệu trang web quản lý trƣờng học Trang web quản lý trường học (truongnha.com) là hệ thống thông tin cho các trường học phổ thông và là cầu nối giữa nhà trường và gia đình. Dịch vụ của trang web phục vụ cho 4 đối tượng: Nhà trường (Hiệu trưởng/Hiệu phó), Giáo viên, Học sinh/Phụ huynh, Sở giáo dục và đào tạo 3.3 Phân tích mô hình ngƣời sử dụng và mô hình tải Trong hệ thống này để phân tích mô hình người sử dụng và mô hình tải tôi sẽ sử dụng các số liệu và biểu đồ mà Google Analytis cung cấp. 3.3.1 Số người truy cập lớn nhất trong 1 tháng/1 tuần /1 ngày/1 giờ - Số người truy cập lớn nhất trong 1 tháng là : 726 người/1 tháng - Số người truy cập lớn nhất trong 1tuần là: 395 người/1 tuần - Số người truy cập lớn nhất trong 1 ngày là 260/1 ngày - Số người truy cập lớn nhất trong 1 giờ là : 46 người/ 1 giờ Phân bố thống kê cơ sở mô hình yêu cầu của người dùng là Self-similar. 3.3.2 Luồng chức năng được sử dụng nhiều nhất Từ biểu đồ luồng sự kiện của người dùng mà Google Analytics thống kê chúng ta có thể phân tích được những luồng chức năng chính được sử dụng nhiều nhất trong hệ thống.  Nhập điểm: Home -> /login/ -> /school/ -> /school/markTable/ -> /logout/  Xuất ra báo cáo: Home -> /login/ -> /school/ -> /school/report/ -> /logout/ 3.3.3 Thời gian trung bình duyệt mỗi trang Theo thống kê của Google Analytics về thời gian trung bình người dùng duyệt một trang: Bảng 3.1: Thời gian nghĩ (think time) trên các trang Thời gian nghĩ trên các trang (think time) Đƣờng dẫn đến trang Thời gian nghĩ (Think time) (giây) /login/ 34 /school/ 39 /school/classes 51
  10. /school/report 37 /school/viewClassDetail/number_id 32 /school/count1/number_id/number_id 90 /school/markTable/number_id1/number_id2 90 3.4 Môi trƣờng kiểm thử Kiểm thử thử nghiệm được thực hiện với mảy chủ ảo ở trang web http://cntt.dyndns.info:8851 với cấu hình máy chủ web và cơ sở dữ liệu trên cùng một máy. 3.5 Kịch bản kiểm thử Bảng 3.3: Miêu tả kịch bản kiểm thử # Tên kịch bản Các bƣớc trong kịch bản Miêu tả 1 Giáo viên nhập Đăng nhập vào hệ thống Đăng nhập thành công điểm cho học Chọn lớp học cần nhập điểm Chọn thành công được một lớp sinh cho một cần nhập điểm môn học (NHẬP Chọn môn cần nhập điểm Chọn thành công môn cần nhập ĐIỂM) điểm Nhập thông tin điểm cho từng Lần lượt nhập các điểm cho từng học sinh học sinh Lưu thông tin điểm đã nhập Lưu thông tin điểm thành công Thoát khỏi hệ thống Thoát khỏi hệ thống thành công 2 Giáo viên/ Hiệu Đăng nhập vào hệ thống Đăng nhập thành công trưởng/Sở giáo Vào chức năng báo cáo Chọn thành công được một lớp dục và đào tạo cần nhập điểm xuất báo cáo Chọn loại báo cáo: thống kê Chọn thành công thống kê điểm (BÁO CÁO) điểm cuối kỳ cuối kỳ Chọn môn cần xuất ra báo cáo Chọn thành công môn cần nhập điểm Xuất ra báo cáo ra file Excel Lần lượt nhập các loại điểm cho từng học sinh Thoát khỏi hệ thống Thoát khỏi hệ thống thành công 3.6 Chiến lƣợc kiểm thử Bảng 3.4: Số lượng người kiểm thử trong kịch bản Kịch bản kiểm thử Ngƣời sử dụng Thời gian tải ổn định NHẬP ĐIỂM/BÁO CÁO 1 NHẬP ĐIỂM/BÁO CÁO 50 30 phút NHẬP ĐIỂM/BÁO CÁO 100 30 phút
  11. 3.7 Tạo và cài đặt kịch bản kiểm thử sử dụng phần mềm Jmeter Sử dụng phần mềm mã nguồn mở Jmeter để ghi lại các luồng chức năng cho 2 kịch bản: NHẬP ĐIỂM, BÁO CÁO trên trình duyệt IE. 3.8 Phân tích kết quả kiểm thử 3.8.1 Thời gian phản hồi Bảng 3.7: So sánh 90% thời gian phản hồi trong các kịch bản kiểm thử Bảng 90% thời gian phản hồi trong từng kịch bản kiểm thử (ms) Tên kịch Trang 1 Người 50 Người 100 bản Người NHẬP Trang chủ (/home) 335 240 274 ĐIỂM Trang đăng nhập (/login_get) 147 168 138 Đăng nhập hoàn thành (/login/post) 529 649 733 Trang thông tin về trường (/school/) 468 293 269 Trang thông tin về trường 281 231 (/school/viewClassDetail/254) 140 Trang vào điểm 195 200 (/school/markTable/41/254) 368 Trang điểm cho một môn học 415 479 (/school/markTable/41/254/3415) 366 Lưu thông tin điểm 75 92 76 (/school/saveMark) Thoát khỏi hệ thống (/logout) 92 134 137 BÁO Trang chủ (/home) 215 229 322 CÁO Trang đăng nhập (/login_get) 352 132 223 Đăng nhập hoàn thành (/login/post) 539 632 832 Trang thông tin về trường (/school/) 258 266 347 Trang chọn loại báo cáo 414 128 231 (/school/report/) Chọn thông tin học kỳ và môn học 195 147 207 (school/count2/2/1) Xem thông tin báo cáo 865 704 859 (/school/count2/2/1/14/2/2) Xuất ra báo cáo ra tập tin excel 541 582 667 Thoát khỏi hệ thống 96 128 196
  12. Hình 3.21: So sánh 90% thời gian phản hồi kịch bản kiểm thử NHẬP ĐIỂM. Dựa vào Hình 3.21 chúng ta thấy một cách rất trực quan sự khác nhau thời gian phản hồi với các mức tải khác nhau trong kịch bản NHẬP ĐIỂM. Hình 3.22: So sánh 90% thời gian phản hồi kịch bản kiểm thử BÁO CÁO. Dựa vào Hình 3.22 chúng ta thấy một cách rất trực quan sự khác nhau thời gian phản hồi với các mức tải khác nhau trong kịch bản BÁO CÁO. 3.8.2 Sử dụng CPU trên máy chủ Hình 3.23: So sánh sử dụng CPU trong kịch bản BÁO CÁO & NHẬP ĐIỂM.
  13. Dựa vào Hình 3.23 ta thấy với cùng mức tải 100 người sử dụng đồng thời nhưng mức sử dụng CPU trên máy chủ với kịch bản kiểm thử BÁO CÁO lớn hơn với kịch bản NHẬP ĐIỂM. Bảng 3.8: So sánh mức sử dụng CPU với kịch bản NHẬP ĐIỂM & BÁO CÁO So sánh mức sử dụng CPU trên máy chủ Mức sử dụng CPU Kịch bản NHẬP ĐIỂM Kịch bản BÁO CÁO Lớn nhất 100% CPU 100% CPU Trung bình 30% - 60% CPU 40% - 80% CPU Hình 3.24: Sử dụng CPU với tải 50 và 100 người dùng với kịch bản BÁO CÁO. Dựa vào Hình 3.24 so sánh mức sử dụng CPU trên máy chủ với 2 mức tải khác nhau 50 và 100 người dùng đồng thời với cùng kịch bản kiểm thử BÁO CÁO, chúng ta nhận thấy khi số người sử dụng đồng thời trong kịch bản BÁO CÁO tăng lên thì mức sử dụng CPU của hệ thống cũng tăng lên. Bảng 3.9: So sánh mức sử dụng CPU với 2 mức tải 50 & 100 người So sánh mức sử dụng CPU trên máy chủ Mức sử dụng CPU Mức tải 50 người Mức tải 100 người Lớn nhất 95% CPU 100% CPU Trung bình 28% - 60% CPU 40% - 80% CPU Như vậy nếu mức tải tăng 150 – 200 người dùng thì hệ thống gặp rủi ro cao là không phản hồi được người sử dụng hoặc phản hồi rất chậm do mức sử dụng CPU máy chủ liên tục lên đến 100%.
  14. 3.8.3 Sử dụng Disk I/O trên máy chủ Hình 3.25: So sánh số đĩa đọc/ghi với kịch bản NHẬP ĐIỂM & BÁO CÁO. Dựa vào Hình 3.25 trong 2 kịch bản kiểm thử thì trong kịch bản BÁO CÁO hệ thống sử dụng nhiều đĩa để đọc/ghi hơn khi hệ thống được đặt mức tải 100 người sử dụng đồng thời. Bảng 3.10: So sánh số đĩa đọc/ghi với kịch bản NHẬP ĐIỂM & BÁO CÁO So sánh mức sử dụng bộ nhớ trên máy chủ Số đĩa đọc/ghi (Disks I/O) Kịch bản NHẬP ĐIỂM Kịch bản BÁO CÁO Lớn nhất 14 36 Trung bình 4-6 4- 12 3.8.4 Sử dụng bộ nhớ trên máy chủ Hình 3.26: So sánh sử dụng bộ nhớ với kịch bản NHẬP ĐIỂM & BÁO CÁO. Dựa vào Hình 3.26 ta thấy tần suất sử dụng bộ nhớ trên máy chủ với kịch bản BÁO CÁO thường xuyên hơn so với kịch bản NHẬP ĐIỂM. Bảng 3.11: So sánh sử dụng bộ nhớ với kịch bản NHẬP ĐIỂM & BÁO CÁO So sánh mức sử dụng bộ nhớ trên máy chủ Mức sử dụng bộ nhớ (memory) Kịch bản NHẬP ĐIỂM Kịch bản BÁO CÁO Lớn nhất 3000 MB 3000 MB Trung bình 2100 MB - 2500 MB 2200MB – 2500 MB
  15. 3.9 Kết luận hiệu năng hệ thống trên máy chủ thử nghiệm (1) Thời gian phản hồi Với 2 mức tải 50 và 100 người dùng đồng thời thì thời gian phản hồi các yêu cầu trong 2 kịch bản NHẬP ĐIỂM và BÁO CÁO tăng không đáng kể. (2) Sử dụng CPU trên máy chủ - Các luồng chức năng trong kịch bản BÁO CÁO sử dụng nhiều CPU trên máy chủ hơn trong kịch bản NHẬP ĐIỂM. - Với 100 người dùng đồng thời mức sử dụng CPU trên máy chủ với kịch bản BÁO CÁO là cao có những lúc lên 100% CPU, mức sử dụng CPU trung bình khá cao từ 40% CPU đến 80% CPU. Với kết quả phân tích tôi nhận thấy một vấn đề ảnh hƣởng lớn đến hiệu năng hệ thống trên máy chủ thử nghiệm là việc sử dụng CPU trên máy chủ với kịch bản BÁO CÁO. So sánh mức sử dụng CPU với 2 mức tải 50 và 100 người dùng trong kịch bản BÁO CÁO thì chúng ta có thể dự đoán khi tăng mức tải lớn hơn 150- 200 người dùng đồng thời thì hệ thống gặp rủi ro cao là không phản hồi hoặc phản hồi rất chậm lại yêu cầu người dùng do mức sử dụng CPU trên máy chủ thường xuyên cao và có những lúc lên đến 100% CPU. CHƢƠNG 4 TRIỂN KHAI DỊCH VỤ QUẢN LÝ TRƢỜNG HỌC TRÊN DIỆN RỘNG 4.1 Vấn đề ảnh hƣởng hiệu năng của hệ thống Mức sử dụng CPU trên máy chủ với kịch bản kiểm thử BÁO CÁO là một trong các vấn đề sẽ ảnh hưởng lớn đến hiệu năng của hệ thống khi triển khai mở rộng. 4.2 Triển khai hệ thống trên diện rộng Muốn triển khai thành công trên diện rộng chúng ta phải tính toán số người sử dụng đồng thời hệ thống, số bản ghi dữ liệu, v.v… Những số liệu tính toán và ước lượng này giúp chúng biết được khi triển khai trên diện rộng hệ thống sẽ phải phục vụ bao nhiêu người sử dụng đồng thời, số bản ghi dữ liệu lưu trữ trên máy chủ dữ liệu, v.v... Dựa vào số liệu này chúng ta đưa ra được yêu cầu hiệu năng mà hệ thống cần đạt được khi triển khai trên diện rộng. 4.3 Chú ý triển khai hệ thống trên diện rộng Khi triển khai hệ thống quản lý trường học trên diện rộng, nhà cung cấp phải tính toán đưa ra yêu cầu hiệu năng của hệ thống phải đáp ứng để phục vụ được nhiều người dùng trong thực tế. Khi đó đội phát triển phải đưa ra giải pháp và kiểm thử thực hiện kiểm thử để đảm bảo hệ thống đã đạt hiệu năng mong đợi. Với kết quả kiểm thử tải ở Chương 3, chúng ta thấy vấn đề ảnh hƣởng đến hiệu năng của hệ thống là mức sử dụng CPU trên máy chủ trong kịch bản kiểm thử BÁO CÁO. Để cải thiện hiệu năng của hệ thống lên thì đội phát triển nên xem xét lại thuật toán hoặc giải pháp công nghệ khác để giảm việc sử dụng CPU trên máy chủ khi thực hiện chức năng xuất báo cáo ra tập tin Excel.
  16. Số bản ghi dữ liệu lớn sẽ tiềm ẩn một số vấn đề về hiệu năng của hệ thống. Để tăng độ tin cậy về hiệu năng hệ thống khi triển khai trên diện rộng thì kiểm thử viên có thể thực hiện kiểm thử khối lượng (volumn test) với số bản ghi dữ liệu khi triển khai hệ thống trên diện rộng. KẾT LUẬN Luận văn đã trình bầy các kiến thức cơ bản về kiểm thử hiệu năng bao gồm khái niệm, các giai đoạn và hoạt động, công cụ và các kiểu kiểm thử hiệu năng. Luận văn cũng mô tả chi tiết các kỹ thuật thực hiện kiểm thử hiệu năng. Ngoài ra luận văn còn đưa ra một vài lời khuyên để thực hiện kiểm thử hiệu năng một cách hiệu quả. Toàn bộ kiến thức về kiểm thử hiệu năng tôi đã tham khảo chính [5]. Tiếp theo luận văn áp dụng lý thuyết để thực hiện kiểm thử tải cho phần mềm quản lý trường học được xây dựng trên nền web. Trong phần áp dụng này luận văn trình bầy các kết quả phân tích mô hình tải, mô hình người sử dụng, tìm các luồng chức năng hay được sử dụng, tính toán thời gian nghĩ (think time), cách sử dụng phần mềm Jmeter để cài đặt kịch bản kiểm thử, thực hiện và thu thập các kết quả kiểm thử. Từ kết quả thu được tôi đã phân tích đưa ra kết luận về tình trạng hiệu năng hệ thống và mức sử dụng CPU cao trên máy chủ là nguyên chính ảnh hưởng đến hiệu năng khi muốn triển khai mở rộng hệ thống. Toàn bộ kết quả đạt được trong phần áp dụng thực nghiệm này là quá trình bản thân tôi vận dụng lý thuyết, tìm tòi, nghiên cứu, học hỏi từ đồng nghiệp, bạn bè và một vài dự án trong thực tế. Dựa vào lý thuyết kiểm thử hiệu năng, kết quả kiểm thử trong phần áp dụng thực nghiêm và kinh nghiệm bản thân trong thực tế tôi phân tích đưa ra chú ý hay lời khuyên giúp đội phát triển giải quyết vấn đề ảnh hưởng đến hiệu năng và kiểm thử viên có kế hoạch hoặc chiến lược kiểm thử hiệu quả để đảm bảo hệ thống thành công khi triển khai trên diện rộng. Nhóm phát triển và kiểm thử viên luôn phải ý thức việc xây dựng một hệ thống đáp ứng yêu cầu về hiệu năng sẽ là yếu tố quan trọng quyết định sự thành công dự án trong thực tế. Hƣớng phát triển Nhược điểm của phương pháp kiểm thử hiệu năng ở đây là người thực hiện chỉ đo được từ một máy, không mô phỏng đúng thức tế khi các yêu cầu được gửi đến từ nhiều nơi, có thể trên khắp thế giới. Hơn nữa các bước cài đặt, vận hành vẫn không đơn giản. Vì vậy hướng nghiên cứu tiếp theo của luận văn là tìm hiểu sử dụng dịch vụ kiểm thử hiệu năng dựa trên điện toán đám mây (cloud computing) để kiểm thử hiệu năng và so sánh tính hiệu quả với việc sử dụng phần mềm kiểm thử hiệu năng. Từ đó tìm ra cách để thực hiện kiểm thử hiệu năng hiệu quả hơn cho các hệ thống. References. Tiếng Anh
  17. [1] Emily H. Halili (2008), Apache JMeter, Ltd, Packt Publishing. [2] J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman, Improving.NET Application Performance and Scalability, Microsoft Corporation. [3] Stacy Joines, Ruth Willenborg, Ken Hygh(2002), Performance Analysis for Java™ Web Sites, Addison Wesley. [4] J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, Dennis Rea (2007), Performance Testing Guidance for Web Applications, Microsoft Corporation. [5] Ramya Ramalinga Moorthy (2000), Software Performance Testing Handbook - A Comprehensive guide for beginners. [6] Ian Molyneaux (2009), The Art of Application Performance Testing, O'Reilly Media, Inc. [7] IBM (2008), Using Rational Performance Tester Version 7, IBM corporation. [8] https://code.google.com/p/jmeter-plugins/.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2