Triển khai và thực thi kiểm thử hiệu năng

Một phần của tài liệu 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 ths công nghệ thông tin (Trang 49)

4.5.1 Cài đặt môi trƣờng, công cụ

Sau khi cài đặt, Maven đƣợc kiểm tra nhƣ hình 4.8, hình 4.9 và 4.10 lần lƣợt thể hiện giao diện rất thân thiện của JMeter và Jenkins.

Sau đó tiến hành thiết lập các giá trị để tích hợp bộ ba công cụ này.

Cấu trúc của dự án kiểm thử hiệu năng tích hợp 3 công cụ trên đƣợc mô tả nhƣ hình 4.11. Ở hình 4.11, thƣ mục dự án kiểm thử hiệu năng đƣợc xây dựng theo hƣớng dữ liệu. Các dữ liệu kiểm thử của các kịch bản đƣợc đặt trong thƣ mục Config, các báo cáo đƣợc để chung thƣ mục Report. Điều này giúp cho các kiểm thử viên dễ dàng quản lý dữ liệu đầu vào cũng nhƣ đầu ra.

Hình 4.8. Maven sau khi cài đặt

Hình 4.10. Jenkins sau khi cài đặt

Hình 4.11. Cấu trúc thƣ mục dự án

4.5.2 Tạo các kịch bản kiểm thử bằng JMeter

Các kịch bản kiểm thử đƣợc tạo dễ dàng thông qua giao diện của JMeter nhƣ hình 4.12. Ở hình 4.12, các kịch bản kiểm thử dƣới dạng ngôn ngữ tự nhiên ở bảng 4.7 đƣợc chuyển dƣới dạng ngôn ngữ kịch bản của JMeter. Theo hình này, các kịch bản đƣợc gửi lên máy chủ thể hiện trong phần Recording Controller, bao gồm 16/: thể hiện ngƣời dùng vào trang chủ, 17 /search.html: thể hiện ngƣời dùng tìm kiếm thông tin các chuyến du lịch, 18 /tours/45/10/du-lich-hoa-binh.html: thể hiện ngƣời dùng đang xem chi tiết chuyến du lịch, 19 /lien-he.html: thể hiện ngƣời dùng đang vào trang liên hệ để nhập thông tin đăng kí chuyến du lịch, 20 /: ngƣời dùng gửi các

thông tin liên hệ lên máy chủ, 21 /lien-he.html: thể hiện ngƣời dùng trở lại trang liên hệ sau khi hoàn tất thông tin đăng kí, 22 /: thể hiện ngƣời dùng trở lại trang chủ, kết thúc quá trình đặt chuyến du lịch. Các kịch bản sẽ đƣợc lƣu dƣới dạng tập tin jmx: LienVietTravel.jmx. Các dữ liệu kiểm thử sẽ đƣợc lƣu trữ tập trung trong một thƣ mục Config.

Hình 4.13 thể hiện các dữ liệu kiểm thử của kịch bản tìm kiếm chuyến du lịch và nhập thông tin liên hệ. Các dữ liệu dùng để chạy các kịch bản gồm thông tin tìm kiếm các chuyến du lịch và thông tin đăng kí chuyến du lịch đƣợc lƣu trong hai tập tin có tên lienhe_data.csv và search_data.csv. Việc này giúp cho các kiểm thử viên có thể quản lý (thêm/sửa/xóa) dễ dàng dữ liệu trong quá trình chạy các kịch bản kiểm thử.

Hình 4.13. Dữ liệu kiểm thử

4.5.3 Chạy các kịch bản

Kết quả chạy với 10 ngƣời dùng chạy đồng thời nhƣ trong hình 4.14. Theo hình này, cột Label thể hiện các yêu cầu lần lƣợt đƣợc gửi lên máy chủ. Giá trị trong cột Error % lớn hơn 0.00% ở các yêu cầu 17 /search.html, 18 /tours/45/10/du-lich-hoa- binh.html, 19 /lien-he.html, các yêu cầu còn lại là 0.00%.

Hình 4.14. Kết quả chạy với 10 ngƣời dùng đồng thời

Chạy với 80 ngƣời dùng đồng thời, kết quả hiển thị nhƣ hình 4.15, tƣơng tự nhƣ với 10 ngƣời dùng. Tuy nhiên, giá trị ở cột Error % với 3 yêu cầu bị lỗi tăng lên so với khi chạy với 10 ngƣời dùng ở hình 4.14.

Hình 4.15. Kết quả chạy với 80 ngƣời dùng đồng thời

Tƣơng tự khi chạy với 20, 40, 50, 60 kết quả cho thấy tỉ lệ lỗi luôn lớn hơn 0% tập trung ở phần tìm kiếm, xem chi tiết tour và liên hệ.

Chạy với 100 ngƣời dùng đồng thời, kết quả hiển thị nhƣ hình 4.16. Ở hình 4.16, với 100 ngƣời dùng đồng thời, ta thấy xuất hiện lỗi ở hầu hết các yêu cầu gửi lên máy chủ. Cột Error % chỉ hiển thị giá trị 0.00% ở yêu cầu 16 / (yêu cầu khi ngƣời dùng vào trang chủ) và 21 /lien-he.html (trở lại trang liên hệ khi kết thúc đăng ký), các giá trị còn lại đều lớn hơn 0.00%.

Hình 4.16. Kết quả chạy với 100 ngƣời dùng đồng thời

Chạy kịch bản 100 ngƣời dùng đồng thời trong khoảng thời gian 5 giây, các kết quả nhƣ hình 4.17. Đồ thị này thể hiện thời gian phản hồi trung bình của các yêu cầu gửi lên máy chủ trong kịch bản. Từ đây, ta thấy rằng với 100 ngƣời dùng đồng thời thực hiện các yêu cầu, hệ thống đáp ứng đƣợc tất cả các yêu cầu trong vòng 20 giây, với thời gian phản hồi lớn nhất chƣa đến 4800 mili giây.

Hình 4.17. Kết quả chạy với 100 ngƣời dùng đồng thời

4.6 Đánh giá kết quả đầu ra và báo cáo

Kiểm thử hiệu năng đi kèm với các hoạt động tối ƣu hóa hệ thống. Mục đích của việc phân tích đánh giá là để tìm ra phần chức năng cần phải cải thiện hiệu suất. Phân tích và đánh giá các kết quả kiểm thử thu đƣợc có lẽ là bài toán khó nhất trong kiểm thử hiệu năng.

Các kết quả kiểm thử thu đƣợc bên trên cho thấy khi lƣợng ngƣời dùng đồng thời nhỏ hơn 80 mà không có độ trễ về mặt thời gian, thì lỗi xuất hiện ở 3 yêu cầu: tìm kiếm, liên hệ và xem chi tiết tour. Với 100 ngƣời dùng chạy đồng thời, chỉ có yêu cầu khi vào trang chủ không bị lỗi, các yêu cầu gửi đi từ các trang khác đều xuất hiện lỗi.

Với kịch bản 100 ngƣời dùng với độ trễ 5 giây, ta thấy rằng thời gian phản hồi luôn cao nhất là 4800 mili giây, nhỏ hơn 5 giây, nên kết quả này đƣợc gọi là đạt

KẾT LUẬN

Trong bối cảnh phát triển phần mềm mà phần cứng ngày càng tăng nhanh về dung lƣợng và giá thành giảm, chúng ta cần kiểm thử hiệu năng để đảm bảo sử dụng tối đa hạ tầng công nghệ thông tin của đơn vị. Bên cạnh đó, với mô hình phát triển phần mềm nhanh theo phƣơng pháp Agile – Scrum, chúng ta cần có cách thức tiếp cận và triển khai kiểm thử hiệu năng phù hợp.

Trong luận văn, tôi đã xây dựng đƣợc một bài toán kiểm thử hiệu năng điển hình cho phƣơng pháp phát triển phần mềm Agile – Scrum. Từ việc tìm hiểu, phân tích yêu cầu về hiệu năng của dự án đến các bƣớc lập kế hoạch, thiết kế, thực thi, đánh giá báo cáo và các hoạt động kết thúc kiểm thử. Dựa theo quy trình kiểm thử đƣợc công nhận rộng rãi và sử dụng hiệu quả ISTQB hiện nay, quy trình thực hiện kiểm thử hiệu năng trình bày trong luận văn giúp cho các kiểm thử viên hoặc những ai yêu thích kiểm thử hiệu năng đều dễ dàng tiếp cận. Bài toán kiểm thử vốn khó về hiệu năng trở nên đơn giản hơn. Đặc biệt, luận văn gợi ý sử dụng công cụ mã nguồn mở để thực hiện kiểm thử hiệu năng. Trong đó bộ ba Apache JMeter, Apacche Maven và Jenkins CI là sự kết hợp hoàn hảo đối với một dự án Scrum. Với nhƣợc điểm phải cấu hình rất nhiều để sử dụng đƣợc phần mềm mã nguồn mở, luận văn cũng xây dựng một giao diện giúp ngƣời dùng nhanh chóng thực hiện đƣợc dự án kiểm thử hiệu năng và giảm những rắc rối về mặt cấu hình cho ba công cụ này.

Luận văn đã cung cấp một cái nhìn tổng quan về kiểm thử hiệu năng nói chung và trong các ứng dụng Web nói riêng. Các bƣớc triển khai một bài toán kiểm thử hiệu năng trong luận văn áp dụng cho dự án phát triển theo Agile –Scrum, nhƣng cũng hoàn toàn sử dụng đƣợc cho các dự án khác. Tùy vào mô hình phát triển phần mềm dự án lựa chọn mà ta có thể tùy chỉnh cho phù hợp. Luận văn cũng đang áp dụng xây dựng kiểm thử hiệu năng tích hợp liên tục cho các ứng dụng Web theo mô hình khách – chủ. Tuy nhiên, nó hoàn toàn có thể áp dụng cho các trang Web sử dụng trên điện toán đám mây (Cloud). Với việc sử dụng JMeter, Maven, Jenkins, các công cụ mã nguồn mở có khả năng mở rộng lớn. Trong tƣơng lai, hoàn

toàn ta có thể phát triển thêm các phần tiện ích (plug in) vào trong công cụ, nhằm phục vụ công việc kiểm thử của chúng ta tốt hơn.

TÀI LIỆU THAM KHẢO

Tiếng Anh

[1] Mark Sweney (2002), “New Media: Spotlight on Nectar – Nectar‟s crash reveals danger of creating too much demand”, Brand Republic Group.

http://www.brandrepublic.com/article/160113/new-media-spotlight-nectar--- nectars-crash-reveals-danger-creating-demand

[2] Steven Morris and Helen Carter (2011), “Crime map website a victim of its own success”, The Guardian.

http://www.theguardian.com/uk/2011/feb/01/crime-map-website-crashes

[3] Kelly McWilliams (2012), “London Olympics resale site taken offline after crash”, TicketNews

http://www.ticketnews.com/news/London-Olympics-resale-site-taken-offline- after-crash010912586

[4] IEEE 610.12(1990), Standard Glossary of Software Engineering Terminology, p.55.

[5] J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, Dennis Rea (2007), “Performance Testing Guidance for Web Applications”, Microsoft Corporation.

[6] Lars Yde, M.Sc.(Spring 2008), “Software Testing Concepts and Tools”, at “Selected Topics in Software Development”, DIKU spring semester 2008

[7] Ian Molyneaux (January 2009), “The Art of Application Performance Testing”, O’Reilly Media. Inc

[8] Johann du Plessis (2008), “Performance testing methodology”, Micro to Mainframe

[9] Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black,(2007), “Foundation of Software Testing”, Thomson Learning

Một phần của tài liệu 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 ths công nghệ thông tin (Trang 49)

Tải bản đầy đủ (PDF)

(57 trang)