ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG THỊ LUY KIỂM THỬ HIỆU NĂNG VÀ ỨNG DỤNG ĐẢM BẢO CHẤT LƢỢNG CHO CÁC ỨNG DỤNG WEB LUẬN VĂN THẠC SĨ Hà Nội – 2015 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG THỊ LUY KIỂM THỬ HIỆU NĂNG VÀ ỨNG DỤNG ĐẢM BẢO CHẤT LƢỢNG CHO CÁC ỨNG DỤNG WEB Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã Số: 60480103 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. PHẠM NGỌC HÙNG Hà Nội – 2015 TIEU LUAN MOI download : skknchat@gmail.com 1 Mục lục LỜI CẢM ƠN. 3 LỜI CAM ĐOAN. 4 DANH MỤC HÌNH VẼ, BẢNG BIỂU.
5 Chƣơng 1: Giới thiệu. 6 Chƣơng 2: Tổng quan về kiểm thử hiệu năng .1 Định nghĩa kiểm thử hiệu năng .2 Phân loại kiểm thử hiệu năng. 14 Chƣơng 3: Phƣơng pháp kiểm thử hiệu năng và công cụ .1 Kiểm thử hiệu năng trong vòng đời phát triển phần mềm .2 Các dạng yêu cầu kiểm thử hiệu năng trong thực tế .3 Quy trình thực hiện kiểm thử hiệu năng .1 Lập kế hoạch và kiểm soát kiểm thử .2 Phân tích và thiết kế kiểm thử.3 Triển khai (Implementation) và thực thi (Execution) kiểm thử 26 3.4 Đánh giá các kết quả đầu ra và báo cáo .5 Các hoạt động kết thúc kiểm thử .4 Một số công cụ kiểm thử hiệu năng. 28 Chƣơng 4: Ứng dụng kiểm thử hiệu năng vào dự án của đơn vị .1 Giới thiệu về dự án.2 Kế hoạch tổng thể của dự án .3 Lập kế hoạch kiểm thử hiệu năng .4 Thiết kế kiểm thử hiệu năng .1 Thiết kế môi trƣờng .2 Thiết kế các kịch bản kiểm thử .5 Triển khai và thực thi kiểm thử hiệu năng .1 Cài đặt môi trƣờng, công cụ.2 Tạo các kịch bản kiểm thử bằng JMeter .3 Chạy các kịch bản .6 Đánh giá kết quả đầu ra và báo cáo.
51 TIEU LUAN MOI download : skknchat@gmail.com 2 KẾT LUẬN. 53 TÀI LIỆU THAM KHẢO. 55 TIEU LUAN MOI download : skknchat@gmail.com 3 LỜI CẢM ƠN Trƣớc tiên tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo, Tiến sĩ Phạm Ngọc Hùng – ngƣời đã hƣớng dẫn, khuyến khích và tạo điều kiện tốt nhất cho tôi thực hiện đề tài này. Bằng niềm đam mê và kinh nghiệm tuyệt vời về kiểm thử, thầy luôn là ngƣời đồng hành và truyền cảm hứng cho tôi trong suốt quá trình thực hiện nghiên cứu này.
Tôi xin gửi lời cảm ơn chân thành tới các thầy, cô giáo trong khoa Công nghệ Thông tin, Trƣờng Đại học Công nghệ, Đại học Quốc Gia Hà Nội đã tận tình đào tạo, trang bị cho tôi những kiến thức vô cùng quý giá trong suốt quá trình học tập, nghiên cứu tại trƣờng. Đồng thời tôi xin cảm ơn tất cả những ngƣời thân yêu trong gia đình tôi cùng toàn thể bạn bè những ngƣời đã luôn giúp đỡ, động viên tôi những khi tôi gặp khó khăn, bế tắc trong nghiên cứu. Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại Công ty Trách Nhiệm Hữu Hạn Phần Mềm FPT, đặc biệt các anh chị em trong đội kiểm thử, đã giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chƣơng trình thạc sĩ tại Đại học Công nghệ, Đại học Quốc Gia Hà Nội. TIEU LUAN MOI download : skknchat@gmail.com 4 LỜI CAM ĐOAN Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Kiểm thử hiệu năng và ứng dụng đảm bảo chất lƣợng cho các ứng dụng Web” là công trình nghiên cứu của riêng tôi, không sao chép lại của ngƣời khác.
Trong toàn bộ nội dung của luận văn, những điều đã đƣợc trình bày hoặc là của chính cá nhân tôi hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này. Hà Nội, ngày 09 tháng 05 năm 2015 Hoàng Thị Luy TIEU LUAN MOI download : skknchat@gmail.com 5 DANH MỤC HÌNH VẼ, BẢNG BIỂU Hình 3.
Kiểm thử hiệu năng nằm trong các mức độ kiểm thử của hệ thống. Kiểm thử hiệu năng trong mô hình thác nƣớc. Kiểm thử hiệu năng trong mô hình chữ V. Kiểm thử hiệu năng trong mô hình Agile – Scrum.
Tài liệu đầu vào và đầu ra của giai đoạn lập kế hoạch. Tài liệu đầu vào và đầu ra của giai đoạn lập phân tích và thiết kế kiểm thử. Tài liệu đầu vào và đầu ra của giai đoạn triển khai kiểm thử .9 So sánh một số công cụ tính phí phổ biến .10 So sánh một số công cụ mã nguồn mở phổ biến. Tỉ lệ phân bổ thời gian giữa các công đoạn.
Tỉ lệ phân bổ thời gian giữa các công đoạn (tính theo ngày làm việc). Chi tiết công việc trong từng giai đoạn. Các thành viên tham gia vào dự án. Kế hoạch thời gian kiểm thử hiệu năng (Đơn vị tính: Ngày làm việc).
Tƣơng tác giữa Maven, Jenkins và JMeter. Các kịch bản kiểm thử. Maven sau khi cài đặt. JMeter sau khi cài đặt.
Jenkins sau khi cài đặt. Cấu trúc thƣ mục dự án. Các kịch bản kiểm thử. Dữ liệu kiểm thử.
Kết quả chạy với 10 ngƣời dùng đồng thời. Kết quả chạy với 80 ngƣời dùng đồng thời. Kết quả chạy với 100 ngƣời dùng đồng thời. Kết quả chạy với 100 ngƣời dùng đồng thời.
51 TIEU LUAN MOI download : skknchat@gmail.com 6 Chƣơng 1: Giới thiệu Kiểm thử hiệu năng (Performance test) là một phần rất quan trọng trong việc đảm bảo chất lƣợng phần mềm. Đặc biệt đối với các ứng dụng Web, kiểm thử hiệu năng ảnh hƣởng trực tiếp đến ngƣời sử dụng hệ thống cũng nhƣ các bên liên quan. Chẳng hạn nhƣ, khách hàng truy cập một trang Web bán hàng trực tuyến của một công ty. Sau một vài phút hoặc lâu hơn nữa, hệ thống mới tải xong ảnh sản phẩm mà họ cần tìm.
Việc này chắc hẳn sẽ ảnh hƣởng đến thái độ của khách hàng đối với công ty đó. Họ cảm thấy khó chịu, mất thời gian. Những lần sau, họ sẽ đắn đo hoặc có thể không bao giờ quay trở lại trang này nữa. Điều này đồng nghĩa với việc công ty mất quan hệ khách hàng, mất doanh thu.
Ở mức độ nghiêm trọng hơn, khách hàng có thể mất tiền, thậm chí rất nhiều tiền do lỗi hiệu năng của hệ thống. Dƣới đây, có thể kể ra một số thảm họa về hiệu năng của ứng dụng Web đã từng xảy ra và mức độ thiệt hại mà nó gây ra. Trang Web của Nectar1 Ngay khi ra mắt năm 2002, chƣơng trình thẻ tri ân khách hàng của Nectar đã rất nỗ lực quảng cáo trên truyền hình và tiếp thị trực tiếp qua thƣ điện tử tới trên mƣời triệu hộ gia đình, hƣớng mọi ngƣời tới dịch vụ mới ra mắt của họ. Mặc dù, đã có phƣơng tiện đăng kí qua đƣờng điện thoại và thƣ điện tử trực tiếp, Nectar vẫn cố gắng tiết kiệm chi phí bằng cách cung cấp một phần thƣởng khuyến khích mọi ngƣời đăng kí trực tuyến qua trang Web.
Trong khi Nectar đã chuẩn bị cho sự kiện này bằng cách tăng dung lƣợng máy chủ lên gấp sáu lần, thì tại thời điểm đỉnh điểm với mƣời nghìn lƣợt khách truy cập trong vòng một giờ đã đủ để trang Web bị chết trong vòng ba ngày. Nectar đã dẫn ra độ phức tạp của quá trình đăng kí (bảo mật và mã hóa) nhƣ là một nút thắt cổ chai [1]. Trang Web Bản đồ tội phạm của cảnh sát Anh2 Trong một động thái nhằm tăng tính minh bạch trong thống kê tội phạm, Chính phủ Anh đƣa ra một trang Web trong tháng hai năm 2011, cho phép các thành viên 1 Đƣờng dẫn truy cập: http://www.com/ 2 Đƣờng dẫn truy cập: http://www.uk TIEU LUAN MOI download : skknchat@gmail.com 7 của công chúng có quyền truy cập vào thông tin về tỉ lệ tội phạm ở khu vực của họ thông qua các điểm đánh dấu trên bản đồ tƣơng tác. Điều này đã nhận đƣợc những tin tức chính thống, với những câu hỏi đƣợc đặt ra về độ chính xác và sự tác động của các báo cáo, ví dụ, ảnh hƣởng đến tỉ lệ bảo hiểm hoặc giá nhà.
Các bản đồ tội phạm đã nhận đƣợc sự quan tâm rất lớn của công chúng. Nó nhận đƣợc mƣời tám triệu hit một giờ trong ngày đầu tiên (Hit: là đơn vị dùng để đo lƣợng truy cập của trang Web, mỗi tập tin gửi đến máy chủ đƣợc tính là 1 hit. Ví dụ, một trang Web có 20 hình ảnh mà ngƣời dùng có thể chọn để xem mỗi cái một lần, đƣợc tính là 20 hit). Điều này làm nó sập xuống trong vòng vài giờ theo kiểu rất công khai.
Dƣờng nhƣ có lý khi một trang Web bị sập dƣới mƣời tám triệu hit một giờ. Rõ ràng là trang Web đơn giản là không thiết kế để có thể hoạt động đƣợc ở bất kì quy mô nào, mặc dù nó đã dùng máy chủ Amazon EC2 để tăng thêm dung lƣợng. Nhƣ vậy bạn vẫn cần xây dựng một trang Web mà dung lƣợng của nó không cần đến 1000 lần máy chủ [2]. Trang Web bán vé Thế vận hội London năm 20123 Có quá nhiều bài viết về sự kiện này.
Tháng tƣ năm 2011, sau lƣợt bán vé đầu tiên kết thúc, 6.6 triệu vé đã đƣợc bán trực tuyến. Vấn đề là vé không đƣợc bán ra lần lƣợt, không phải là ngƣời đến trƣớc đƣợc phục vụ trƣớc, mà nhiều ngƣời đợi đến phút cuối mới quyết định đặt mua. Trang Web đã chậm nhƣ rùa bò vì quá tải. Họ đã phải chặn các cửa sổ để có thể tồn tại thêm vài giờ.
Vài tháng sau, trang bán vé của Thế vận hội đƣợc mở trở lại, cho phép ngƣời ta mua và bán vé chính thức với nhau. Nhƣng nó vẫn không thể đối phó với nhu cầu, vẫn chậm. Nhiều vấn đề xảy ra trong tháng mƣời hai và tháng một, với càng nhiều sự gián đoạn của trang Web bán vé, dẫn đến nhiều sự kiện đã bị bán giảm giá [3]. Thông qua các ví dụ trên, ta có thể thấy tầm quan trọng về hiệu năng của các ứng dụng Web, cũng nhƣ mức độ thiệt hại mà nó gây ra nếu nhƣ hệ thống không đƣợc kiểm thử đầy đủ trƣớc khi đƣa vào vận hành.
Việc cân bằng giữa công nghệ, thời gian và tiền bạc để đạt đƣợc hiệu suất cao nhất của hệ thống cũng là một chủ 3 Đƣờng dẫn truy cập: http://www.com TIEU LUAN MOI download : skknchat@gmail.