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
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 đặt một vài thông số cho kịch bản như: số người dùng ảo (thread), thời gian đạt hệ thống trong tải ổn định (luôn luôn có x người sử dụng hệ thống), khoảng thời gian x
người truy cập hệ thống (rum-up), v.v…Trong phần thực hiện kiểm thử tải thực nghiệm này tôi cũng lần lượt cài đặt các thông số này trong kịch bản kiểm thử rồi thực hiện kiểm thử tải. Dưới đây tôi chỉ ra các thông số được cài đặt trong kịch bản kiểm thử tải.
Hình 3.8: Cài đặt kịch bản kiểm thử.
Dựa vào Hình 3.8 chúng ta thấy số người dùng ảo được mô phỏng bởi phần mềm Jmeter là 50 người và thời gian đặt hệ thống trong tải ổn định 100 người sử dụng đồng thời là 1800 giây (30 phút).
Trong thực tế tôi thực hiện kiểm thử tải cho trang web với 2 mức tải là 50 và 100 người sử dụng đồng thời nhưng trong giới hạn luận văn khi trình bầy kết quả kiểm thử tôi chỉ trình bầy kết quả kiểm thử với mức tải 100 người sử dụng đồng thời. Trong phần tổng kết báo cáo kết quả tôi có thống kê kết quả kiểm thử với mức tải 50 người sử dụng đồng thời.
3.8.1Kịch bản kiểm thử NHẬP ĐIỂM
Hình 3.9: Kết quả kiểm thử cơ sở với kịch bản NHẬP ĐIỂM.
Dựa vào Hình 3.9 chúng ta thấy không có lỗi xảy ra khi thực hiện kiểm thử cơ sở. Như vậy kịch bản kiểm thử được tạo ra là chạy đúng khi mô phỏng 1 người dùng ảo.
Kết quả kiểm thử tải: với 100 ngƣời sử dụng
(1) Biểu đồ thời gian phản hồi và thông lượng
Dựa vào Hình 3.10 chúng ta thấy thời gian phản hồi trên từng trang khi hệ thống đặt trong tải ổn định 100 người dùng đồng thời với kịch bản NHẬP ĐIỂM
Hình 3.11: Thời gian phản hồi và thông lƣợng với kịch bản NHẬP ĐIỂM.
Dựa vào Hình 3.11 chúng ta sẽ thấy được thời gian phản hồi, thông lượng trung bình, lỗi (nếu có) của của hệ thống trên từng trang trong điều kiện tải 100 người sử dụng đồng thời.
Thu thập số liệu về 90% (line) thời gian phản hồi và thông lượng hệ thống trong điều kiện tải 100 người sử dụng đồng thời dựa theo Hình 3.10 và Hình 3.11.
Bảng 3.5: Kết quả kiểm thử cho 100 người dùng với kịch bản NHẬP ĐIỂM
Kết quả kiểm thử cho 100 ngƣời sử dụng đồng thời NHẬP
ĐIỂM
Trang /Yêu cầu Thời gian
phản hồi (90% line) (Response time) (msec) Thông lượng trung bình (throughput) (/min) Số lỗi Trang chủ(/) 274 34.5 0 (Không
Đăng nhập hoàn thành (/login/post)
733 17.4 có lỗi xảy ra )
Trang thông tin về trường (/school/)
269 17.4
Trang thông tin về lớp
(/school/viewClassDetail/254)
231 17.6
Trang vào điểm
(/school/markTable/41/254)
200 17.6
Trang điểm cho một môn học (/school/markTable/41/254/3415)
479 17.4
Lưu thông tin điểm (/school/saveMark)
76 7.9
Thoát khỏi hệ thống (/logout) 137 17.4
(2) Biểu đồ sử dụng CPU, đọc/ghi ổ đĩa và bộ nhớ trên máy chủ.
Hình 3.12: Sử dụng CPU trên máy chủ với kịch bản NHẬP ĐIỂM.
Dựa vào Hình 3.12 chúng ta thấy mô hình sử dụng CPU của hệ thống được đặt trong tải ổn định 100 người sử dụng đồng thời trong 30 phút. Trong thời gian tải ổn định mức độ sử dụng CPU máy chủ có những lúc lên đến trên 100% CPU. Mức độ sử dụng CPU trung bình trong khoảng từ 30% - 60% CPU.
Hình 3.13: Số đĩa đọc/ghi trên máy chủ với kịch bản NHẬP ĐIỂM.
Dựa vào Hình 3.13 chúng ta thấy mô hình sử dụng đĩa để đọc/ghi của hệ thống với điều kiện tải 100 người sử dụng đồng thời trong kịch bản NHẬP ĐIỂM. Trong thời gian tải ổn định số đĩa (number of disk access/sec) sử dụng lớn nhất là 14 đĩa/giây (disks/sec) cho việc đọc ghi, mức giao động trung bình trong khoảng từ 1 đĩa/giây đến 6 đĩa/giây.
Hình 3.14: Sử dụng bộ nhớ trên máy chủ với kịch bản NHẬP ĐIỂM.
Dựa vào Hình 3.14 chúng ta thấy mô hình sử dụng bộ nhớ của hệ thống trên máy chủ trong điều kiện tải 100 người sử dụng đồng thời. Trong thời gian tải ổn định hệ thống sử dụng tối đa là 3000MB bộ nhớ, mức giao động trung bình trong khoảng là: 2400MB - 3000MB.
3.8.2 Kịch bản kiểm thử Báo cáo
Hình 3.15: Kết quả kiểm thử cơ sở với kịch bản BÁO CÁO.
Dựa vào Hình 3.15 chúng ta thấy kết quả kiểm thử cơ sở là không có lỗi xảy ra. Như vậy đảm bảo kịch bản không có lỗi khi mô phỏng 1 người sử dụng ảo.
Kết quả kiểm thử với 100 ngƣời sử dụng đồng thời
(1) Biểu đồ thời gian phản hồi và thông lượng:
Dựa vào Hình 3.16 chúng ta thấy thời gian phản hồi từng trang trong thời gian tải ổn định 100 người sử dụng đồng thời.
Hình 3.17: Thông lượng và thời gian phản hồi với kịch bản BÁO CÁO.
Dựa vào Hình 3.17 chúng ta sẽ thấy được thời gian phản hồi và thông lượng trung bình của của hệ thống trên từng trang trong điều kiện tải 100 người sử dụng đồng thời.
Thu thập số liệu về thời gian phản hồi và thông lượng hệ thống trong điều kiện tải 100 người sử dụng đồng thời dựa theo Hình 3.16 và Hình 3.17 cho kịch bản BÁO CÁO.
Bảng 3.6: Kết quả kiểm thử cho 100 người dùng với kịch bản BÁO CÁO
Kết quả kiểm thử cho 100 ngƣời dùng đồng thời BÁO
CÁO
Trang /Yêu cầu Thời gian
phàn hồi (90% line) (Response time) (msec) Thông lượng trung bình (throughput) (/min) Số lỗi Trang chủ (/) 322 48.8 0 (Không có lỗi xảy ra )
Trang đăng nhập (/login_get) 223 24.8
Trang thông tin về trường (/school/) 347 25
Trang chọn loại báo cáo(/school/report/)
231 25.5
Chọn thông tin học kỳ và môn học(school/count2/2/1)
207 24.7
Xem thông tin báo cáo (/school/count2/2/1/14/2/2)
859 24.6
Xuất ra báo cáo ra tập tin excel 24.6 24.6
Thoát khỏi hệ thống (/logout/) 196 24.6
(2) Biểu đồ mức sử dụng CPU, đĩa đọc/ghi (disk I/O) và bộ nhớ máy chủ
Hình 3.18: Sử dụng CPU trên máy chủ với kịch bản BÁO CÁO.
Dựa vào Hình 3.18 chúng ta thấy mô hình sử dụng CPU của hệ thống trên máy chủ với điều kiện tải 100 người sử dụng đồng thời trong kịch bản BÁO CÁO. Trong thời gian tải ổn định mức sử dụng CPU lớn nhất là 100% CPU, mức giao động trung bình trong khoảng từ 40% CPU đến 80% CPU.
Hình 3.19: Sử dụng bộ nhớ trên máy chủ với kịch bản BÁO CÁO.
Dựa vào Hình 3.19 chúng ta thấy mô hình sử dụng bộ nhớ của hệ thống trên máy chủ với điều kiện tải 100 người sử dụng đồng thời trong kịch bản BÁO CÁO. Trong thời gian tải ổn định mức sử dụng bộ nhớ lớn nhất là 3100MB, mức giao động trung bình trong khoảng từ 2100 MB đến 2600MB.
Hình 3.20: Số đĩa đọc/ghi với kịch bản BÁO CÁO.
Dựa vào Hình 3.20 chúng ta thấy mô hình sử dụng ổ đĩa đọc/ghi của hệ thống trên máy chủ với điều kiện tải 100 người sử dụng đồng thời trong kịch bản BÁO CÁO. Trong thời gian tải ổn định số đĩa (number of disk access/sec) sử dụng để đọc/ghi lớn nhất là 36 đĩa/giây, mức giao động trung bình trong khoảng từ 4 đĩa/giây đến 12 đĩa/giây.
3.9 Phân tích kết quả kiểm thử
Trong phần áp dụng kiểm thử hiệu năng thử nghiệm này tôi đã hoàn thành việc kiểm thử tải cho hệ thống với 2 mức tải là 50 và 100 người sử dụng đồng thời. Trong trình bầy kết quả kiểm thử ở mục 3.8 tôi không trình bầy kết quả kiểm thử với mức tải 50 người sử dụng đồng thời. Nhưng tôi cũng đã thực hiện kiểm thử mức tải này cho hệ
thống trong thực tế. Trong phần báo cáo này tôi thống kê các kết quả kiểm thử tải cho hệ thống với 2 mức tải là 50 và 100 người sử dụng đồng thời.
3.9.1Thờ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 bản
Trang 1 Người 50 Người 100
Người
NHẬP ĐIỂM
Trang chủ (/home) 335 240 274
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 (/school/viewClassDetail/254)
140 281 231
Trang vào điểm
(/school/markTable/41/254)
368 195 200
Trang điểm cho một môn học (/school/markTable/41/254/3415)
366 415 479
Lưu thông tin điểm (/school/saveMark)
75 92 76
Thoát khỏi hệ thống (/logout) 92 134 137 BÁO
CÁO
Trang chủ (/home) 215 229 322
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 (/school/report/)
Chọn thông tin học kỳ và môn học (school/count2/2/1)
195 147 207
Xem thông tin báo cáo (/school/count2/2/1/14/2/2)
865 704 859
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
Dựa vào Bảng 3.7 chúng ta thấy sự khác nhau thời gian phản hồi ở các mức tải khác nhau trong kịch bản kiểm thử NHẬP ĐIỂM và BÁO CÁO.
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.9.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.
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
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.