NGHIÊN CỨU GIẢI PHÁP KẾT HỢP JMETER VÀ PHANTOMJS TRONG VIỆC KIỂM THỬ TỰ ĐỘNG CÁC ỨNG DỤNG WEB
Hiện nay khi mà các ứng dụng web được sử dụng ngày càng nhiều và dần thay thế các ứng dụng desktop trong việc phục vụ các nhu cầu xử lí đa dạng của người sử dụng thông qua mạng, việc đảm bảo ứng dụng vẫn hoạt động tốt trong môi trường đa người dùng truy cập là một bài toán khó và cần nhiều nghiên cứu để giải quyết. Bên cạnh những yếu tố ảnh hưởng đến chất lượng web như giao diện, khả năng tương thích, chức năng của ứng dụng và bảo mật thì yếu tố hiệu năng là một trong những vấn đề quan trọng để đánh giá hệ thống và khả năng mở rộng của web.
JMeter là một ứng dụng mã nguồn mở được viết hoàn toàn bằng Java, chuyên được sử dụng cho việc kiểm thử hiệu năng và tải. Nó thích hợp cho việc kiểm thử các chương trình phía server. Tuy nhiên nó không thể xử lí được các mã Javascript hoặc các ứng dụng applets trong một trang HTML. Điều này làm cho việc kiểm thử thiếu tính trực quan, khó khăn trong việc xây dựng kịch bản kiểm thử, và quan trọng nhất là nó không thể đo lường được thời gian một trang web được tải lên và hiển thị xong một cách hoàn toàn.Vậy có cách nào khắc phục được điều này? WebDriver là một trình mở rộng (plugin) giúp thực thi các mã javascript và đo đạc thời gian thực thi. Tuy nhiên nó cũng tồn tại những hạn chế nhất định và gây khó khăn cho việc kiểm thử như thời gian thực thi, tài nguyên hệ thống… PhantomJS đã mở ra một giải pháp hiệu quả để giải quyết các vấn đề mà WebDriver gặp phải. Cùng với việc sử dụng mã JavaScript, nó cho phép việc kiểm thử có thể thực thi trên nhiều môi trường khác nhau, cho phép tạo kịch bản kiểm thử và thực thi trực tiếp các mã script trên trình duyệt web một cách nhanh chóng và hoàn toàn tự động.
Mục tiêu của đề tài là nghiên cứu sử dụng các ứng dụng mã nguồn mở JMeter, PhantomJS, giải pháp kết hợp các mã nguồn mở này vào việc kiểm thử tự động hiệu năng, tải, thời gian thực thi các mã script của ứng dụng web.
- Tìm hiểu kĩ thuật kiểm thử hiệu năng ứng dụng web.
- Nghiên cứu công cụ JMeter, PhantomJS và các API của nó.
- Nghiên cứu, phân tích và cài đặt giải pháp tích hợp JMeter, PhantomJS.
- Xây dựng giải thuật và ứng dụng kiểm thử tự động các ứng dụng web.
- Triển khai thử nghiệm và đánh giá kết quả.
Các vấn đề liên quan đến kiểm thử hiệu năng, tải, kiểm thử tự động.
Công cụ mã nguồn mở JMeter, PhantomJS, mục đích, các tính năng, thành phần, và các API mã nguồn mở của JMeter, PhantomJS.
Giải pháp kết hợp JMeter, PhantomJS trong việc phát triển hệ thống kiểm thử tự động hiệu năng, tải của ứng dụng web.
Thử nghiệm giải pháp với một kịch bản kiểm thử cụ thể cho một ứng dụng web.
Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài.
Nghiên cứu lý thuyết kiểm thử phần mềm nói chung và kỹ thuật kiểm thử hiệu năng, tải, kiểm thử tự động nói riêng.
Nghiên cứu các công cụ JMeter, PhantomJS và các API của chúng.
Tìm hiểu những hạn chế của JMeter trong kiểm thử hiệu năng.
Nghiên cứu giải pháp tích hợp JMeter, PhantomJS cho bài toán kiểm thử tự động hiệu năng, tải, của ứng dụng web.
Nghiên cứu và khai thác công cụ phần mềm JMeter, PhantomJS.
Nghiên cứu các API của JMeter, PhantomJS trong ứng dụng kiểm thử.
Thử nghiệm cách thức đo lường hiệu năng website với WebDriver plugin của JMeter, rút ra những mặt hạn chế.
Nghiên cứu, phân tích và cài đặt giải pháp tích hợp JMeter, PhantomJS.
Kiểm tra, thử nghiệm, nhận xét và đánh giá kết quả.
Với những lí do đã nêu ở trên, đề tài sẽ hướng đến việc nghiên cứu giải pháp tích hợp JMeter và PhantomJS để xây dựng được một hệ thống kiểm thử tự động hiệu năng, tải một cách hoàn chỉnh và nhanh chóng. Từ đó giải quyết được bài toán chi phí, khó khăn khi kiểm thử hiệu năng, tải tự động trên các ứng dụng web một cách hiệu quả.
Nắm vững và vận dụng tốt kỹ thuật kiểm thử hiệu năng, tải trong kiểm thử ứng dụng web.
Đề xuất được giải pháp kiểm thử hiệu năng, tải, đo đạc thời gian hiển thị ứng dụng web một cách tự động và hiệu quả, tiết kiệm chi phí.
Kết quả có thể làm tài liệu tham khảo cho các kiểm thử viên, các đơn vị phát triển phần mềm, hoặc các học viên – sinh viên trong việc nghiên cứu kiểm thử phần mềm.

Đề tài mang ý nghĩa thực tiễn rất lớn trong thời kì ứng dụng mạng ngày càng phổ biến và đóng vai trò không thể thiếu trong đời sống hằng ngày. Nó giúp cho các nhà phát triển phần mềm biết được khả năng của ứng dụng, điểu chỉnh một cách hợp lí cũng như kịp thời đưa ra những phương án giải quyết phù hợp khi các vấn đề liên quan đến hiệu năng, tải của ứng dụng phần mềm xảy ra. Giúp đảm bảo tính tin cậy của ứng dụng và tránh những rủi ro đáng tiếc trong quá trình sử dụng nó.
Luận văn được trình bày bao gồm các phần chính như sau:
CHƯƠNG 1. TỔNG QUAN KIỂM THỬ ỨNG DỤNG WEB
CHƯƠNG 2. KIỂM THỬ HIỆU NĂNG CỦA ỨNG DỤNG WEB
CHƯƠNG 3. KIỂM THỬ HIỆU NĂNG VỚI JMETER VÀ ĐỀ XUẤT GIẢI PHÁP CẢI TIẾN
CHƯƠNG 4. CÀI đẶT VÀ THỬ NGHIỆM
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
TỔNG QUAN KIỂM THỬ ỨNG DỤNG WEB
GIỚI THIỆU KIỂM THỬ ỨNG DỤNG WEB
Kiểm thử ứng dụng web
Mục đích của kiểm thử ứng dụng web
Kiểm thử các ứng dụng web để đảm bảo rằng nó chính xác về chức năng, đáng tin cậy, khả năng mở rộng và thực hiện tốt với tải trọng khác nhau của người dùng. Nó bao gồm việc kiểm tra tất cả các thành phần phía máy khách hàng và các thành phần phía máy chủ của ứng dụng web.
Đối với các ứng dụng web cần phải được kiểm thử về hiệu suất và khả năng mở rộng. Các tiêu chuẩn cho các trang web thử nghiệm là: kịp thời, kết cấu chất lượng, nội dung chính xác và nhất quán, đáp ứng thời gian yêu cầu, độ trễ và hiệu suất.
Các yêu cầu về chất lượng của một ứng dụng web
Yêu cầu về chức năng.
Yêu cầu về độ tin cậy.
Yêu cầu về khả năng sử dụng.
Yêu cầu về hiệu quả.
CÁC THÀNH PHẦN CỦA ỨNG DỤNG WEB
Mô hình ứng dụng web
Ứng dụng web là loại ứng dụng internet cho phép các khách hàng (Client) sử dụng trình duyệt web (Internet Explorer, Nescape Navigator, Mozilla, Opera, Safari,…) để truy cập và xem thông tin được cung cấp bởi trình chủ web (Web Server).
Mô hình tương tác Client-Server trong một ứng dụng web
Phía Client: Trong phần Client, người dùng sử dụng trình duyệt web để gởi yêu cầu (Request) đến Server bằng cách gõ địa chỉ của website cần đến vào thanh địa chỉ của trình duyệt. Kết quả nhận được sau đó sẽ được hiểu thị trên cửa sổ trình duyệt.
Phía Server: Về phía Server, một trình chủ Web (Web server – IIS, Tomcat, …) khởi chạy một ứng dụng web tương ứng để xử lí yêu cầu của người sử dụng, kết quả là ứng dụng web sinh ra một trang HTML trả lại cho trình duyệt, sau đó trình duyệt sẽ hiển thị kết quả cho người dùng.
Sự khác biệt giữa ứng dụng trên trình chủ và trình khách
Thứ nhất, các ứng dụng trên trình chủ là các chương trình không có giao diện để người dùng cuối của hệ thống tương tác.
Thứ hai, các ứng dụng trên trình chủ là thực thi liên tục, nghĩa là khi ứng dụng trên trình chủ được khởi động, nó sẽ luôn thường trực chờ đợi để cung cấp dịch vụ cho các ứng dụng phía trình khách nếu có trình khách yêu cầu dịch vụ. Ngược lại để sử dụng ứng dụng phía trình khách, người dùng phải tự khởi động ứng dụng trên trình khách và tương tác với nó qua giao diện.
CÁC LOẠI KIỂM THỬ ỨNG DỤNG WEB
Kiểm thử chức năng
Kiểm thử khả năng sử dụng
Kiểm thử giao diện
Kiểm thử khả năng tương thích
Kiểm thử hiệu năng
Kiểm thử hiệu năng bao gồm:
Kiểm thử tải (load test): Kiểm tra xem khi có nhiều người dùng cùng truy cập hoặc cùng yêu cầu một trang thì sao. Trang web phải nắm bắt được nhiều yêu cầu đồng thời của người dùng, dữ liệu đầu vào lớn từ các người dùng, kết nối đồng bộ với cơ sở dữ liệu, tải lớn trên các trang đặc biệt…
Kiểm thử chịu tải (stress test): Thông thường kiểm thử chịu tải có nghĩa là đẩy hệ thống vượt ra ngoài giới hạn của nó. Kiểm thử chịu tải một trang web là làm gián đoạn trang web đó bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thống phản ứng lại với từng mức tải cụ thể đó như thế nào.
Kiểm thử hiệu năng web: các chức năng của trang web trên các hệ điều hành, các nền tảng phần cứng khác nhau phải được kiểm tra để tìm ra các lỗi phần mềm, thất thoát bộ nhớ…
Kiểm thử bảo mật
KẾT LUẬN
Thực hiện kiểm thử các ứng dụng web trước khi đưa vào hoạt động là công đoạn quan trọng trong việc phát triển web, bất kì các ứng dụng web nào cũng phải được thử nghiệm hiệu suất và khả năng mở rộng.
Để đảm bảo ứng dụng web chạy ổn định trong các môi trường hệ thống, số người dùng khác nhau, ở những mức tải công việc khác nhau thì việc đánh giá hiệu năng của ứng dụng web là một công đoạn rất quan trọng quyết định đến khả năng thành công của trang web.
KIỂM THỬ HIỆU NĂNG CỦA ỨNG DỤNG WEB
KIỂM THỬ HIỆU NĂNG ỨNG DỤNG WEB
Định nghĩa kiểm thử hiệu năng
Mục đích của kiểm thử hiệu năng
Kiểm thử hiệu năng (performance testing) nhằm đánh giá các tính chất về tốc độ, khả năng ổn định và khả năng chịu đựng của ứng dụng dưới một sức tải xác định trước. Từ đó có thể giải quyết được nhiều tủi ro liên quan đến chi phí phát triển, chi phí cơ hội, tính liên tục hoặc danh tiếng của doanh nghiệp khi phát hành ứng dụng đó.
Các loại kiểm thử hiệu năng
Các yếu tố ảnh hưởng đến kiểm thử hiệu năng
Kiểm thử hiệu năng liên quan đến đánh giá ba thành phần chính:
- Sức tải công việc (Workload).
- Môi trường của hệ thống và nguồn tài nguyên có sẵn.
- Thời gian đáp ứng của hệ thống.
QUY TRÌNH KIỂM THỬ HIỆU NĂNG ỨNG DỤNG WEB
F:\DỮ LIỆU COP CỦA CHỊ YẾN\DAI HOC DA NANG\KHOA HOC MAY TINH\NGO QUANG HUY


