Mục tiêu

Một phần của tài liệu Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học (Trang 37)

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.

Phần áp dụng thử nghiệm thực hiện kiểm thử tải cho trang web này với 2 mức tải để thu thập các thông tin về thời gian phản hồi, thông lượng và mức độ sử dụng CPU, đọc ghi ổ đĩa (Disk I/O), bộ nhớ trên máy chủ. Trong giới hạn của luận văn tôi chỉ chọn ra một số luồng chức năng được sử dụng nhất để thực hiện kiểm thử. Với các luồng chức năng khác ta có thể thực hiện tương tự. Từ kết quả thu được tôi đã phân tích và đưa ra kết luận về tình trạng hiệu năng hệ thống. Đồng thời tôi đã phân tích và nhận thấy mức sử dụng CPU trên máy của hệ thống là lớn là nguyên nhân chính làm cản trở việc nâng cao hiệu năng của hệ thống khi muốn triển khai mở rộng.

Toàn bộ nội dung được trình bầy là quá trình tôi tìm tòi vận dụng lý thuyết kiểm thử hiệu năng đã trình bầy trong Chương 1 và Chương 2 vào một ứng dụng trong thực tế. Để có được kết quả này tôi đã nỗ lực nghiên cứu, học hỏi từ các đồng nghiệp trong cơ quan, từ bạn bè và tham khảo từ việc thực hiện kiểm thử hiệu năng cho các dự án trong thực tế. Mục đích chính của chương này tôi chỉ ra cách bước thực hiện và phân tích kết quả kiểm thử tải cho một hệ thống được xây dựng trên nền web. Cách làm này có thể áp dụng cho các ứng dụng khác trong thực tế.

Khi kiểm thử hiệu năng vào hệ thống trong thực tế một khó khăn mà bản thân tôi và các công ty đều gặp phải là máy tính thực hiện kiểm thử là máy cá nhân không đủ mạnh để có thể thực hiện kiểm thử tải với mức tải lớn lên đến hàng nghìn người dùng. Hơn nữa môi trường kiểm thử thường được cấu hình yếu hơn máy chủ thực tế cũng là một vấn đề cản trở việc thực hiện kiểm thử tải với mức tải lớn. Trong thực tế một số dự án tôi có may mắn biết đến thì đa số kiểm thử viên chỉ kiểm thử tải với mức tải một hoặc vài trăm người dùng đồng thời. Sau đó gửi kịch bản kiểm thử cho khách hàng và hướng dẫn họ cách thực hiện cài đặt để kiểm thử hiệu năng với những mức tải lớn hơn. Vì vậy mà trong phần áp dụng tôi chỉ chọn 2 mức tải để thực hiện kiểm thử để thu thập các kết quả để phân tích.

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.

- 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 và mỗi đối tượng có các chức năng khác nhau.

Nhà trƣờng (Hiệu trƣởng/Hiệu phó)

- Quản lý giáo viên, lớp, môn học, thời khóa biểu, phân phối chương trình. - Quản lý rèn luyện của học sinh, nhắn tín cho phụ huynh.

- In các sổ sách báo cáo theo qui định của Bộ, Sở GD&ĐT.

Giáo viên

- Nhập điểm môn học và rèn luyện, lên kế hoạch giảng dạy, nhắn tin cho phụ huynh.

- In các báo cáo tổng kết học tập.

- Xem thông tin học sinh các lớp, các giáo viên trong trường.

Học sinh/Phụ huynh

- Xem điểm, rèn luyện.

- Xem thời khoá biểu, bài học từng tuần. - Nhận tin nhắn điểm, rèn luyện của học sinh.

Sở giáo dục và đào tạo

- Xem hoạt động của các trường. - Xem các báo cáo của các trường. - Xem các báo cáo tổng hợp.

Trang web được xây dựng với mục đích triển khai trên quy mô lớn. Hiện tại trang mới được triển khai và sử dụng thí điểm ở một số trường ở các tỉnh: Hà nội,

Vĩnh phúc, Hải phòng. Trang web được cài đặt Google Analytics để theo dõi các diễn biến.

3.3 Phân tích mô hình ngƣời sử dụng và mô hình tải

Phân tích mô hình người sử dụng và mô hình tải của hệ thống giúp cho kiểm thử viên hiểu hơn về hệ thống và tạo tải giống như trong thực tế cho máy chủ trong quá trình kiểm thử. Điều này đảm bảo kết quả kiểm thử đánh giá đúng hiệu năng của hệ thống trên máy chủ triển khai.

Với các ứng dụng đã đang được triển khai trong thực tế có thể dựa vào tập tin log (web log) trên máy chủ của hệ thống để phân tích mô hình người sử dụng. Hiện tại trang web quản lý trường học đã được triển khai thử nghiệm và có cài đặt Google Analytics. Có thể sẽ có một số khác nhau giữa các con số thống kê Google Analytics cung cấp và thông tin log trên máy chủ (nếu máy chủ có tập tin log) do Google Analytics thống kê từ phía máy khách còn tập tin log thì thống kê giao dịch trên máy chủ. Tuy nhiên số liệu và biểu đồ mà Google Analytics cung cấp về người sử dụng cũng giúp ta hiểu được mô hình người sử dụng hệ thống. 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.

Như lý thuyết đã trình bầy ở Chương 2 về kỹ thuật mô hình tải cho hệ thống (mục 2.1.4) chúng ta sẽ lần lượt phân tích: tổng số người sử dụng ứng dụng, luồng chức năng hay được sử dụng, số giao dịch trong giờ cao điểm, thời gian một người truy cập hệ thống, xác định phân bố thống kê cơ sở cho mô hình yêu cầu, v.v…cho hệ thống cần kiểm thử. Trong phần áp dụng thử nghiệm này tôi cũng phân tích thông tin này dựa vào thống kê của Google Analytics cho trang web quản lý trường học. (adsbygoogle = window.adsbygoogle || []).push({});

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ờ

Thống kê của Google Analytics về số ngƣời sử dụng trang web theo tháng

Hình 3.1: Biểu đồ về số người sử dụng theo tháng.

Dựa vào Hình 3.1 ta thấy số người truy cập lớn nhất trong 1 tháng là : 1726 người/1 tháng.

Hình 3.2: Biểu đồ về số người sử dụng theo tuần.

Dựa vào Hình 3.2 ta thấy số người truy cập lớn nhất trong 1 tuần là : 395 người/1 tuần.

Thống kê của Google Analytics về số ngƣời sử dụng trang web theo ngày.

Hình 3.3: Biểu đồ về số người sử dụng theo ngày.

Dựa vào Hình 3.3 ta thấy số người truy cập lớn nhất trong 1 ngày là : 260 người/1 ngày

Thống kê của Google Analytics về số ngƣời sử dụng trang web theo giờ.

Hình 3.4: Biểu đồ về số người sử dụng theo giờ.

Dựa vào Hình 3.4 ta thấy số người truy cập lớn nhất trong 1 giờ là : 46 người/1 ngày.

Dựa vào biểu đồ của Google Analytics về số người sử dụng trang web theo tháng, tuần, ngày và giờ chúng ta nhận thấy 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

Phân tích tìm ra luồng chức năng được sử dụng nhiều nhất của hệ thống sẽ là cơ sở để tạo kịch bản kiểm thử hiệu năng. 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.

Thống kê của Google Analytics về luồng chức sử dụng của ngƣời dùng trong một học kỳ (09/2011 -> 12/2011).

Hình 3.5: Biểu đồ luồng chức năng.

Thống kê của Google Analytics về thông tin các trang trong luồng chức năng.

Hình 3.6: Thông tin các trang trong luồng chức năng.

Dựa vào thông tin luồng chức năng mà Google Analytics cung cấp như trong Hình 3.5 và Hình 3.6 chúng ta có thể thống kê được các luồng chức năng được người dùng sử dụng nhiều nhất:

Xem thông tin lớp học:

Home -> /login/ -> /school/ -> /viewClassDetail/ -> /logout/

Điểm danh:

Home -> /login/ -> /school/ -> /viewClassDetail/ -> /school/diemDanh/ -> /logout/

Nhập điểm:

Home -> /login/ -> /school/ -> /school/markTable/ -> /logout/

Xuất ra báo cáo:

Home -> /login/ -> /school/ -> /school/report/ -> /logout/

Thiết lập thông tin lớp học:

Home -> /login/ -> /school/ -> /school/classes -> /logout/ (adsbygoogle = window.adsbygoogle || []).push({});

Tính điểm trung bình cho học sinh:

Home -> /login/ -> /school/ -> /school/count1/ -> Logout Home -> /login/ -> /school/ -> /school/count2/ -> 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:

Hình 3.7: Thông tin thời gian trung bình duyệt trên từng trang.

Từ thống kê của Google Analytics về thời gian trung bình (Avg.Time on page) của mỗi trang như trong Hình 3.7 chúng ta có thể sử dụng thời gian này là thời gian nghĩ (think time) của người dùng trên từng trang. Thời gian nghĩ (think time) sẽ được sủ dụng để cài đặt thời gian nghĩ trong các kịch bản kiểm thử hiệu năng.

Trong giới hạn luận văn chỉ thông kê thời gian nghĩ của một vài trang được sử dụng thường xuyên. Thông tin về thời gian nghĩ này sẽ được cài đặt trong kịch bản kiểm thử để đảm bảo tạo được kịch bản kiểm thử mô phỏng người sử dụng ảo như trong thực tế.

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

/school/report 37

/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 như sau:

Bảng 3.2: Cấu hình máy chủ triển khai trang web và máy chủ dữ liệu

Cấu hình máy chủ Phần cứng (Hardware) Phần mềm (Software) Model Number of CPUs CPU speed (MHZ) Memor y HDD capacity

Chip set Operation System Oracl e AS QEMU Virtual CPU version 0.12.3 6 2.6 Ghz DDRA M 3Gb GenuineIn tel 3.5 Kịch bản kiểm thử

Theo lý thuyết chọn kịch bản cho kiểm thử hiệu năng được trình bầy trong Chương 2 thì chúng ta chỉ nên kiểm thử hiệu năng cho các chức năng được sử dụng nhiều nhất. Số lượng chức năng kiểm thử chỉ chiếm 20% trong tổng số chức năng của hệ thống. Các luồng chức năng được nhiều người sử dụng nhất khi sử dụng trang web quản lý trường học được trình bầy chi tiết trong mục 3.3.2. Trong phần áp dụng thử nghiệm này tôi chọn 2 luồng chức năng chính để thực hiện kiểm thử tải cho trang web quản lý trường học là: NHẬP ĐIỂM, BÁO CÁO.

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 điểm cho học sinh cho một môn học

(NHẬP ĐIỂM)

Đăng nhập vào hệ thống Đăng nhập thành công Chọn lớp học cần nhập điểm Chọn thành công được một

lớp cần nhập điểm

Chọn môn cần nhập điểm Chọn thành công môn cần nhập điểm

Nhập thông tin điểm cho từng học sinh

Lần lượt nhập các điểm cho từng học sinh (adsbygoogle = window.adsbygoogle || []).push({});

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

trưởng/Sở giáo dục và đào tạo xuất báo cáo (BÁO CÁO)

Đăng nhập vào hệ thống Đăng nhập thành công Vào chức năng báo cáo Chọn thành công được một

lớp cần nhập điểm Chọn loại báo cáo: thống kê

điểm cuối kỳ

Chọn thành công thống kê điểm 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ử

Trong giới hạn luận văn này tôi chỉ 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 (truongnha.com). Vì là áp dụng thực nghiệm nên tôi chọn ra 2 kịch bản tiêu biểu và thực hiện kiểm thử hiệu năng của hệ thống trong 2 mức tải là 50 và 100 người sử dụng đồng thời.

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

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. Để sử dụng các chức năng của trang web quản lý trường học người dùng phải có một tài khoản đăng nhập vào hệ thống. Khi người dùng vào trang đăng nhập (http://cntt.dyndns.info:8851/login/) thì máy chủ gửi lại cho máy khách một Cookie. Máy khách sẽ lưu trữ Cookie này và gửi lại máy chủ mỗi khi máy khách gửi một yêu cầu khác tới máy chủ. Giá trị Cookie do máy chủ sinh ra nên ta phải cài đặt tham số Cookie trong mỗi kịch bản để đảm bảo kịch bản chạy đúng.

Ngoài ra để đảm bảo kịch bản kiểm thử của ta mô phỏng người dùng ảo giống như trong thực tế chúng ta phải thực hiện cài đặt thời gian nghĩ (think time) cho từng yêu cầu máy khách gửi đến máy chủ. Thời gian nghĩ cho từng yêu cầu trong 2 kịch bản kiểm thử đã được phân tích và chỉ rõ trong Bảng 3.1.

Phần mềm Jmeter cung cấp một số biểu đồ và thông tin về thời gian phản hồi, thông lượng, lỗi của hệ thống (nếu có), v.v… để chúng ta có thể thấy kết quả kiểm thử một cách trực quan và cụ thể. Do Jmeter là phần mềm mã nguồn mở nên ngoài biểu đồ cơ bản (core) thì có một vài thư viện mở (plugin) cũng được phát triển và tích hợp vào Jmeter để cung cấp cho chúng ta nhiều dạng biểu đồ và thông tin để ta phân tích hiệu năng của hệ thống dưới nhiều góc nhìn khác nhau. Trong phần kiểm thử thực nghiệm này tôi cũng dùng thêm 1 thư viện mở rộng của Jmeter để thực hiện kiểm thử: JMeterPlugins-0.5.1.zip. Gói thư viện mở JMeterPlugins-0.5.1.zip cung cấp ta nhiều biểu đồ và thông tin. Trong phần trình bầy kết quả kiểm thử tôi có trình bầy một vài loại biểu đồ như: biểu đồ thời gian phản hồi, sử dụng CPU, số đĩa đọc/ghi, sử dụng bộ nhớ.

3.8 Kết quả kiểm thủ

Với kịch bản kiểm thử đã được ghi và cài đặt bằng phần mềm mã nguồn mở Jmeter chúng ta thực hiện kiểm thử. Trước khi thực hiện kiểm thử chúng ta có thể cài

Một phần của tài liệu Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học (Trang 37)