Đặc điểm
Selenium là một công cụ mã nguồn mở, cho phép người dùng sử dụng miễn phí mà không cần lo lắng về phí bản quyền hay thời hạn sử dụng.
Các thử nghiệm sau đó có thể được chạy trên các trình duyệt web hiện đại nhất.
Selenium hỗ trợ chạy trên nhiều OS khác nhau, Selenium triển khai trên nền tảng Windows, Linux và Mac.
Nó cho phép recording, editting and debugging tests.
Kiểm thử có thể được exported ở hầu hết các ngôn ngữ ví dụ: HTML, Java, Net, perl, ruby, …
Selenium có sự hỗ trợ của một số nhà cung cấp trình duyệt lớn hỗ trợ.
Selenium hỗ trợ nhiều ngôn ngữ lập trình C#, Java, Python, PHP, Selenium còn có thể kết hợp với một số công cụ kiểm thử khác như Junit, Bromien, Nunit…
Cài đặt và sử dụng Selenium Webdriver
Download và cài đặt Java Development Kit (JDK)
Hình 1.1 Download java development kit (JDK) tại trang oracle.com
Download và cài đặt Neatbean IDE
Hình 1.2 Download neatbean IDE tại trang netbeans.org
Hình 1.3 Download selenium tại trang seleniumhq.org
Download và cài đặt Selenium Java Client Driver
Hình 1.4 Selenium Java Client Driver
Sau khi đã download các thành phần chúng ta bắt đầu tiến hành cài đặt như sau: + Mở neatbean đã được tải về
To create a new project, navigate to File and select New Project, then name the project "MyTest." Next, right-click on Source Packages, choose New Packages, and name it "Libs" to store the supporting libraries.
Để thêm các thư viện vào dự án, hãy nhấp chuột phải vào thư mục Libraries, chọn "Add JAR/Folder", sau đó tìm đến thư mục vừa tải về, chọn tất cả các tệp jar và thêm vào packages Libs.
+ Tạo một class trong dự án vừa tạo để chạy thử
+ Sau khi chạy kết quả ta sẽ được như hình sau
Một số câu lệnh hay được sử dụng trong Selenium WebDriver:
- driver.getUrl(); : mở một trang web mới trong trình duyệt hiện tại.
- driver.getTitle(); : lấy tiêu đề của trang web hiện tại.
- driver.getCurrentUrl(); : lấy Url của trang hiện tại đã được tải lên trình duyệt.
- driver.getPageSource(); : lấy source của trang được tải cuối cùng.
- driver.close(); : đóng cửa sổ hiện tại của trình duyệt.
- driver.quit(); : thoát khỏi trình duyệt và tất cả các cửa sổ đã mở.
- driver.navigate().refresh(); : làm mới trình duyệt.
- driver.findElement(By.id(“”)); : Tìm item được set id.
- pageLoadTimeout(); : set thời gian load Timeout cho điều khiển javascript.
Một số câu lệnh điều hướng trình duyệt sử dụng
- implicitlyWait(); : để chờ các cảnh báo.
Thư Viện Hỗ Trợ - Apache POI
Apache POI giúp bạn làm việc với các định dạng của Microsoft thông qua các lớp với tiếp đầu ngữ như HSSF, XSSF, HPSF, v.v Bằng cách xem tiếp đầu ngữ của một lớp, bạn có thể xác định loại định dạng mà lớp đó hỗ trợ.
Apache POI cung cấp cho bạn các interface Workbook, Sheet, Row,Cell và các class thể hiện (implementation) tương ứng là HSSFWorkbook,HSSFSheet, HSSFRow, HSSFCell
GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG
Yêu cầu đề tài
Kiểm thử tự động với công cụ selenium webdriver với phần mềm quản lí nhà hàng
Lý do chọn đề tài
Ngày nay, sự phát triển nhanh chóng của công nghệ thông tin đã dẫn đến sự gia tăng về số lượng và chất lượng của hệ thống mạng và phần mềm Tuy nhiên, điều này cũng gây ra nhiều vấn đề liên quan đến lỗi hỏng hóc phần mềm, ảnh hưởng nghiêm trọng đến xã hội và kinh tế Những lỗi này có thể xuất phát từ việc phần mềm không được kiểm duyệt kỹ lưỡng hoặc do hành vi phá hoại nhằm đánh cắp thông tin Do đó, việc kiểm thử phần mềm một cách kỹ lưỡng là cần thiết để phát hiện và ngăn chặn các lỗi tiềm ẩn Tuy nhiên, với sự phức tạp ngày càng tăng của phần mềm, việc kiểm thử thủ công trở nên tốn kém về thời gian và công sức, đồng thời chất lượng kiểm thử cũng không cao Theo ước tính, kiểm thử phần mềm đóng góp khoảng 40% tổng chi phí sản xuất phần mềm Vì vậy, cần thiết phải có các hệ thống kiểm thử tự động để thực hiện công việc một cách nhanh chóng và chính xác, đó cũng là lý do tôi chọn đề tài này để nghiên cứu.
- Tìm hiểu về kiểm thử phần mềm
- Tìm hiểu về kiểm thử tự động và công cụ kiểm thử tự động selenium webdriver
- Xây dựng được kịch bản kiểm thử cho một số test case của phần mềm
- Phần mềm kiểm thử : Phần mềm quản lí nhà hàng
- Mô tả: Phần mềm quản lý nhà hàng là phần mềm được xây dựng cho việc quản lý nhà hàng, quán ăn, quán caffe
Phân tích thiết kế hệ thống
Website quản lý nhà hàng được thiết kế để hỗ trợ việc quản lý nhà hàng, chuỗi nhà hàng, quán ăn và quán cà phê Nó đáp ứng nhu cầu của nhà quản lý trong việc kiểm soát hoạt động bán hàng và quản lý từng bộ phận, doanh thu Với giao diện thân thiện, website giúp người dùng dễ dàng thực hiện các nghiệp vụ như quản lý bán hàng và quản lý hóa đơn, từ đó tối ưu hóa quy trình phục vụ của nhà hàng.
Các tác nhân của hệ thống
- Chủ cửa hàng quản lí tất cả các chức năng và quản lí tất cả các tài khoản khác trong hệ thống
- Người quản lí quản lí tất cả các chức năng nhưng không quản lí được tài khoản
- Nhân viên chỉ có thể sử dụng được một số chức năng của hệ thống
Các yêu cầu chức năng của hệ thống
- Xem tổng quan: Cho phép các tác nhân nắm được tổng quan hoạt động của cửa hàng như doanh thu, hóa đơn, bàn
- Quản lí bán hàng: Cho phép người quản lí chi tiết từng bàn như thêm bớt món ăn, thanh toán…
- Quản lí hóa đơn : Cho phép các tác nhân kiểm soát các hóa đơn đã thanh toán như tìm kiếm, xem chi tiết, xóa …
- Quản lí sản phẩm: Cho phép các tác nhân quản lí thông tin về các món ăn
- Quản lí tài khoản: Cho phép tác nhân quản lí các tài khoản của người dùng.
Thống kê là công cụ hữu ích giúp các tác nhân theo dõi tình hình hoạt động của hệ thống Việc thống kê có thể được thực hiện theo tháng, quý, năm hoặc theo yêu cầu cụ thể của từng tác nhân.
Các yêu cầu phi chức năng của hệ thống
- Giao diện thân thiện, dễ sử dụng
- Hiệu năng hoạt động tốt
- Phù hợp với mọi trình duyệt
Biểu đồ use case chính
Hình 2.1 Biểu đồ use case chính của hệ thống
Mô tả chi tiết use case
Mô tả chi tiết use case Đăng Nhập
Mô tả use case Đăng Nhập
Use case này cho phép người dùng đăng nhập vào hệ thống với quyền sử dụng của mình
Luồng sự kiện o Luồn cơ bản
1 Use case này bắt đầu khi người dùng kích vào nút đăng nhập trên giao diện của hệ thống Hệ thống sau khi xác nhận dữ liệu sẽ kiểm tra dữ liệu trong bảng USER từ CSDL và hiển thị chức năng tương ứng với quyền của người dùng. Use case kết thúc. o Luồng rẽ nhánh
1 Nhập không đúng định dạng: Nếu người dùng nhập thông tin sai định dạng yêu cầu hệ thống sẽ thông báo lỗi cho người dùng biết Người dùng có thể nhập lại hoặc thoát khỏi hệ thống
2 Sai tên tài khoản hoặc mật khẩu: Nếu người dùng nhập sai tên tài khoản hoặc mật khẩu hệ thống sẽ thông báo lỗi cho người dùng Người dùng có thể nhập lại hoặc thoát hỏi hệ thống.
3 Không kết nối được với CSDL: Tại bất kỳ thời điểm nào trong quá trình thực hiện use case nếu không kết nối được với CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt
Use case này được dùng để phân quyền người dùng
Người dùng cần có một tài khoản trong hệ thống
Nếu đăng nhập thành công người dùng sẽ truy nhập được vào hệ thống và sử dụng các chức năng với quyền của mình
Mô tả chi tiết use case Xem Tổng Quan
Mô tả use case Xem Tổng Quan
Use case này cho phép người dùng nắm được các thông tin hoạt động của hệ thống trong ngày hôm đó như doanh thu, hóa đơn, các hoạt động …
Luồng sự kiện o Luồng cơ bản
1 Use case này bắt đầu khi người dùng kích vào nút “Tổng Quan” trên giao diện Hệ thống sẽ truy xuất CSDL và hiển thị lên màn hình các thông tin như doanh thu, số hóa đơn, số bàn còn trống, món ăn bán chạy … Use case kết thúc o Luồng rẽ nhánh
1 Không kết nối được với CSDL: Tại bất kỳ thời điểm nào trong quá trình thực hiện use case nếu không kết nối được với CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt
Người dùng phải đăng nhập vào hệ thống
Mô tả chi tiết use case Quản Lí Bán Hàng
Mô tả use case Quản Lí Bán Hàng
Use case này giúp người dùng quản lý thông tin bàn hiệu quả, bao gồm các chức năng mở bàn, thêm món, bớt món, sửa số lượng món, đổi hoặc gộp bàn, và thực hiện thanh toán.
Luồng sự kiện o Luồng cơ bản
1 Use case này bắt đầu khi người dùng kích vào nút Quản Lí Bán Hàng trên giao diện Hệ thống sẽ truy xuất CSDL và hiển thị dữ liệu lên giao diện.
2 Mở bàn : Người dùng muốn đưa một bàn vào trạng thái mở
- Người dùng click vào bàn cần mở
Hệ thống sẽ cập nhật giao diện để hiển thị thông tin chi tiết về bàn, đồng thời thay đổi trạng thái của bàn từ đóng sang mở trong cơ sở dữ liệu.
3 Thêm món ăn: Người dùng muốn thêm món ăn cho một bàn
- Trong giao diện chi tiết của bàn đó người dùng click vào món ăn muốn thêm.
- Hệ thống sẽ truy vấn CSDL lấy thông tin của món ăn đó và hiển thị lên trong mục danh sách order của bàn đó.
4 Bớt món ăn: Người dùng muốn xóa một món ăn khỏi order
- Trong danh sách order của bàn đó người dùng click vào biểu tượng thùng rác.
- Hệ thống sẽ xóa món ăn đó khỏi danh sách order
5 Sửa số lượng món ăn: Người dùng muốn sửa số lượng món ăn trong danh sách order
- Trong danh sách order người dùng nhập số lượng món ăn theo yêu cầu nhưng số lượng tối đa nhỏ hơn hoặc bằng 5.
- Hệ thống sẽ tự động tính tiền lại cập nhật số lượng của order đó
6 Đổi gộp bàn: Người dùng muốn đổi hoặc gộp bàn
- Trong giao diện chi tiết của bàn người dùng click vào bàn muốn chuyển từ danh sách các bàn.
- Hệ thống sẽ chuyển hết dữ liệu từ bàn cũ sang bàn mới đồng thời hiển thị lên giao diện của bàn vừa được chuyển sang.
7 Thanh toán: Người dùng muốn kết thúc phiên làm việc của một bàn
- Trong giao diện chi tiết của bàn đó người dùng click vào nút thanh toán
- Hệ thống yêu cầu xác nhận
Sau khi xác nhận, hệ thống sẽ lưu thông tin của bàn vào bảng HOADON và chuyển trạng thái của bàn từ mở sang đóng.
1 Tại bước 5 trong luồng cơ bản nếu người dùng nhập số lượng món ăn vượt quá 5 hệ thống sẽ reset số lượng món ăn về 5.
2 Không kết nối được với CSDL: Tại bất kỳ thời điểm nào trong quá trình thực hiện use case nếu không kết nối được với CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt
Người dùng cần đăng nhập vào hệ thống
Các thông tin của các bàn sẽ được cập nhật
Mô tả chi tiết use case Quản Lí Hóa Đơn
Mô tả use case Quản Lí Hóa Đơn
Use case này cho phép người dùng quản lí các hóa đơn đã bán ra
Luồng sự kiện o Luồng cơ bản
1 Use case này bắt đầu khi người dùng kích vào nút Quản Lí Hóa Đơn trên giao diện Hệ thống sẽ truy xuất CSDL và hiển thị dữ liệu lên giao diện.
2 Tìm kiếm: Người dùng muốn tìm kiếm một hóa đơn
- Người dùng nhập mã hóa đơn vào ô tìm kiếm
- Hệ thống sẽ truy xuất dữ liệu và hiển thị kết quả tìm kiếm lên giao diện
3 Lọc: Người dùng muốn lọc hóa đơn theo ngày
- Người dùng chọn ngày muốn lọc
- Hệ thống sẽ truy suất dữ liệu và hiển thị lên giao diện những hóa đơn của ngày đó
4 Xem chi tiết: Người dùng muốn xem chi tiết một hóa đơn
- Người dùng kích vào biểu tượng con mắt ở hóa đơn đó
- Hệ thống sẽ truy xuất dữ liệu và hiển thị lên chi tiết nội dung của hóa đơn đó.
5 Xóa: Người dùng muốn xóa bỏ một hóa đơn
- Người dùng kích vào biểu tượng thùng rác của hóa đơn đó
- Hệ thống sẽ xóa dữ liệu của hóa đơn đó khỏi cở sở dữ liệu o Luồng rẽ nhánh
1 Không kết nối được với CSDL: Tại bất kỳ thời điểm nào trong quá trình thực hiện use case nếu không kết nối được với CSDL thì hệ thống sẽ hiển thị thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt
Use case này chỉ dành cho admin và administrator
Người dùng phải đăng nhập được vào hệ thống
Mô tả chi tiết use case Quản Lí Sản Phẩm
Mô tả use case Quản Lí Món Ăn
Use case này cho phép người dùng thêm, xóa, sửa, tìm kiếm thông tin một sản phẩm
Luồng sự kiện o Luồng cơ bản
KIỂM THỬ PHẦN MỀM QUẢN LÍ NHÀ HÀNG
Lập Kế Hoạch Kiểm Thử
Website quản lý nhà hàng là công cụ thiết yếu cho việc quản lý hiệu quả các hoạt động của nhà hàng, chuỗi nhà hàng, quán ăn và quán cà phê Nó đáp ứng nhu cầu của nhà quản lý trong việc kiểm soát doanh thu, quản lý từng bộ phận và quy trình bán hàng Với giao diện thân thiện, website giúp người dùng dễ dàng thực hiện các nghiệp vụ như quản lý bán hàng và hóa đơn, từ đó tối ưu hóa chất lượng phục vụ của nhà hàng.
Tài liệu kế hoạch kiểm thử này đưa ra các mục đích sau:
- Xác định thông tin cơ bản về dự án và các thành phần chức năng được kiểm thử và không được kiểm thử
- Liệt kê những yêu cầu cho việc kiểm thử (Test Requirements)
- Những chiến lược kiểm thử nên được sử dụng
- Ước lượng những yêu cầu về tài nguyên và chi phí cho việc kiểm thử
- Những tài liệu được lập sau khi hoàn thành việc kiểm thử
Kế hoạch kiểm thử này nhằm kiểm tra các chức năng của phần mềm quản lý nhà hàng, được mô tả chi tiết trong tài liệu bài tập lớn của môn kiểm thử phần mềm.
Yêu cầu về tài nguyên
Tên Phần Mềm Phiên Bản Loại
Build) (64-bit) Trình duyệt web
Professional 10 Hệ điều hành xampp 7.3.2 Máy chủ web
Excel 2013 Quản lí dữ liệu
Máy tính cá nhân có cài đặt máy chủ xampp, trình duyệt chrome, Hệ điều hành Microsoft Windows 10 Professional.
STT Task Start Date End Date
1 Lập kế hoạch kiểm thử 17/03/2019 19/03/2019
2 Xem lại tài liệu, tìm hiểu selenium 22/03/2019 01/04/2019
3 Thiết kế các test case 01/04/2019 02/04/2019
4 Viết các test case và thực hiện kiểm thử 03/04/2019 10/04/2019
5 Xem lại các test case 10/04/2019 12/04/2019
7 Ghi nhận đánh giá và báo cáo kiểm thử 18/04/2019
Thực hiện kiểm thử
3.2.1 Chức năng kiểm thử Đăng Nhập (Trần Viết Trưởng)
3.2.1.1 Phân tích chức năng kiểm thử Đăng Nhập
+, Giao diện chức năng Đăng Nhập
Hình 3.1 Giao diện chức năng đăng nhập
+, Mã nguồn chức năng đăng nhập
Hình 3.2 Mã nguồn chức năng đăng nhập
Hình 3.3 Lưu đồ thuật giải chức năng đăng nhập
+,Sơ đồ đồ thị dòng
Hình 3.4 Sơ đồ đồ thị dòng chức năng đăng nhập
+, Độ phức tạp chu trình
- Tất cả các trường không được để trống
- Trường email theo định dạng a@b.c
- Email và password tồn tại database
Áp dụng phương pháp phân tích giá trị biên, phân vùng tương đương Đầu vào Vùng hợp lệ Đánh dấu Vùng không hợp lệ Đánh dấu
Email Đúng định dạng email, tồn tại trong database
Email không đúng định dạng K2
Email không tồn tại trong database K3
Password Tồn tại trong database H2
Password không tồn tại trong database K5
Bảng 3.1 Bảng phân vùng tương dương
1 Email: tranviettruong1998@gmail.com Đăng nhập thành công H1,H2 Password: 123456
2 Email: Email không được để trống H2,K1 Password: 123456
3 Email: tranviettruong1998@gmail.com Mật khẩu không được để trống H1,K4 Password:
4 Email: Email không K1,K4 được để trống Password:
5 Email: tranviettruong Email không hợp lệ K2,K5
6 Email: tranviettruong@gmail.com Email hoặc mật khẩu không chính xác
7 Email: tranviettruong1998@gmail.com Email hoặc mật khẩu không chính xác
8 Email: truong@.com Email không hợp lệ H2,K2
9 Email: truong@gmail.com Email hoặc mật khẩu không chính xác
+, Bảng test case Đăng Nhập
Testcase Email Password Kết quả mong muốn
1 tranviettruong1998@gmail.com 123456 Đăng nhập thành công
2 123456 Email không được để trống
3 tranviettruong1998@gmail.com Mật khẩu không được để trống
4 Email không được để trống
5 tranviettruong 123 Email không hợp lệ
6 tranviettruong@gmail.com 123456 Email hoặc mật khẩu không chính xác
7 tranviettruong1998@gmail.com 123 Email hoặc mật khẩu không chính xác
8 truong@.com 123456 Email không hợp lệ
9 truong@gmail.com 123123 Email hoặc mật khẩu không chính xác
3.2.2.2 Thực hiện chức năng kiểm thử Đăng Nhập
Chi tiết thực kiểm thử em sẽ trình bày ở trong video
Chi tiết test case xin vui lòng xem trong file Data.xlsx
Chi tiết test case xin vui lòng xem trong file Data.xlsx
Tổng test case 9 9 Đã test 9 9
3.2.2 Chức năng kiểm thử Thêm Nhân Viên (Đoàn Quang Nhật)
3.2.2.1 Phân tích chức năng kiểm thử Thêm Nhân Viên
+, Giao diện chức năng thêm nhân viên
Hình 3.5 Giao diện chức năng thêm nhân viên
+, Mã nguồn chức năng thêm nhân viên
Hình 3.6 Mã nguồn chức năng thêm nhân viên
Hình 3.7 Lưu đồ thuật giải chức năng thêm nhân viên
+,Sơ đồ đồ thị dòng
Hình 3.8 Sơ đồ đồ thị dòng chức năng thêm nhân viên
Độ phức tạp chu trình
C = 10 - 7 + 2 = 5 Đường thi hành độc lập
Thiết kế test case a Mô tả điều kiện b Áp dụng phương pháp phân tích giá trị biên và phân vùng tương đương
- Tất cả các trường đều bắt buộc
- Email theo format a@b.c từ 5 đến 40 ký tự
- Tên nhân viên có độ dài từ 10 đến 40 ký tự
- Mật khẩu từ 6 đến 20 kí tự
Áp dụng phương pháp phân tích giá trị biên, phân vùng tương đương
STT Đầu Vào Lớp hợp lệ Đánh dấu Vùng không hợp lệ Đánh dấu
1 Tên nhân viên Không được để trống H1 Để trống K1
Email Hợp lệ( Có chứa @ và không được dùng tiếng việt có dấu)
Email chứa tiếng việt có dấu K2
Email không chứa kí tự @ K3
Trước và sau kí tự
@ không được để trống K5 Để trống K6
5 Mật khẩu Mật khẩu từ 6-20 kí tự, không được để trống H3
Mật khẩu 20 kí tự K7 Để trống K8
Bảng 3.3 Bảng phân vùng tương dương
Tên nhân viên Email Mật khẩu
1 Nguyễn Văn A nguyenvana@gmail.com 123456 Tạo tài khoản thành công H1,H2,H3
.com 123456 Không được để trống K1,H2,H3
3 Nguyễn Văn A nguyễn@gmail.com 123456 Email không hợp lệ K2,H1,H3
4 Nguyễn Văn A nguyenvana 123456 Email không hợp lệ K3,H1,H3
5 Nguyễn Văn A nguy @gmail.com 123456 Email không hợp lệ K4,H1,H3
6 Nguyễn Văn A nguyenvana@ 123456 Email không hợp lệ K5,H1,H3
7 Nguyễn Văn A 123456 Không được để trống K6,H1,H3
8 Nguyễn Văn A nguyenvana@gmail.com 1234 Mật khẩu không hợp lệ K7,H1,H2
9 Nguyễn Văn A nguyenvana@gmail.com Không được để trống K8,H1,H2
+, Bảng test case thêm nhân viên
TC Tên Nhân Viên Email Mật Khẩu Kết quả mong muốn
1 Nguyễn Văn A nguyenvana@gmail.com 123456 Tạo tài khoản thành công
2 nguyenvana@gmail.com 123456 Không được để trống
3 Nguyễn Văn A nguyễn@gmail.com 123456 Email không hợp lệ
4 Nguyễn Văn A nguyenvana 123456 Email không hợp lệ
5 Nguyễn Văn A nguy @gmail.com 123456 Email không hợp lệ
6 Nguyễn Văn A nguyenvana@ 123456 Email không hợp lệ
7 Nguyễn Văn A 123456 Không được để trống
8 Nguyễn Văn A nguyenvana@gmail.com 1234 Mật khẩu không hợp lệ
9 Nguyễn Văn A nguyenvana@gmail.com Không được để trống
3.2.2.2 Thực hiện chức năng kiểm thử thêm nhân viên
Chi tiết thực kiểm thử em sẽ trình bày ở trong video
KIỂM THỬ HIỆU NĂNG VỚI CÔNG CỤ JMETER
Giới thiệu công cụ Jmeter
JMeter là một ứng dụng mã nguồn mở hoàn toàn được phát triển bằng Java, chuyên dùng để kiểm tra tải (load test) và tốc độ thực thi của các ứng dụng web Ban đầu, JMeter chỉ được thiết kế để kiểm tra ứng dụng web, nhưng sau đó đã được mở rộng với nhiều tính năng khác.
Apache JMeter là công cụ lý tưởng để kiểm tra hiệu suất cho các tài nguyên tĩnh và động cũng như ứng dụng Web Nó cho phép mô phỏng số lượng người dùng ảo lớn và gửi nhiều yêu cầu đến máy chủ, nhóm máy chủ hoặc mạng, nhằm đánh giá khả năng chịu tải và phân tích thời gian phản hồi dưới các điều kiện tải khác nhau.
- Là công cụ mã nguồn mở
- Khả năng kiểm thử hiệu suất nhiều ứng dụng, server và protocol khác nhau như Web-HTTP, HTTPS, FTV,TCP …
- Đầy đủ tính năng ghi lại quá trình kiểm thử từ website hoặc chính ứng dụng này, và có khả năng debuging.
- Có thể sử dụng với command-line từ java compatible OS(Linux, Windows, Mac OSX )
- Chỉ chạy trên ứng dụng web
Cài đặt và sử dụng Jmeter
Hình 4.1 Download Jmeter tại trang jmeter.apache.org
Sau khi tải xuống, chúng ta tiến hành giải nén file và truy cập vào thư mục bin Tại đây, hãy nhấp vào file ApacheJmeter để khởi động công cụ Sau khi khởi động, giao diện sẽ hiển thị như sau.
Một số thành phần cơ bản của Jmeter
- Test Plan : Kế hoạch kiểm thử hiệu năng
Thread Group là một nhóm người dùng ảo được sử dụng để mô phỏng các cuộc tấn công vào máy chủ trong quá trình kiểm tra, thực hiện các tác vụ đồng thời hoặc theo một trình tự đã được xác định trước.
Sampler là thành phần quan trọng trong kế hoạch kiểm thử của JMeter, giúp xác định loại yêu cầu cần gửi đến máy chủ cùng với các tham số đã được định nghĩa hoặc không Các yêu cầu này có thể bao gồm HTTP, HTTPS, FTP, TCP, SMTP, SOAP, và nhiều loại khác.
- HTTP Requests Default: Cho phép gửi HTTP / HTTPS request mặc định tới web server
- HTTP Requests: Cho phép gửi HTTP / HTTPS request tới web server
- Logic controller: Cho phép bạn điều chỉnh các yêu cầu xử lý trong một thread
- Listener: Hiển thị kết quả sau khi kiểm thử
- View Result Tree: Hiển thị kết quả kiểm thử dưới dạng cây
- View Result Table: Hiển thị kết quả kiểm thử dưới dạng table
- Aggregate Report: Hiển thị kết quả kiểm thử tổng hợp
Kiểm thử hiệu năng phần mềm quản lý nhà hàng luồng đăng nhập và
- Phần cứng: Ram 8G, HDD 500G, Chip Intel Core i7 2.5 GHz
- Phền mềm: Microsoft Windows 10 Professional, Google chrome, Xampp
Luồng chức năng được kiểm thử
- Đăng nhập: http://localhost:8888/quanlinhahang/login
- Trang chủ: http://localhost:8888/quanlinhahang
Kiểm tra các hiệu năng
- Thời gian phản hồi không quá 3s khi 1000 người truy cập trong 10s.
- Xác định số người dùng tối đa trước khi gặp sự cố
Xác nhận thời gian đáp ứng của phần mềm trong các điều kiện tải khác nhau là rất quan trọng Cụ thể, phần mềm cần được kiểm tra với 100 người truy cập trong 30 giây, 1000 người truy cập trong 30 giây, 5000 người truy cập trong 30 giây và 10000 người truy cập trong 30 giây Điều này giúp đảm bảo hiệu suất và khả năng xử lý của hệ thống dưới các mức tải khác nhau.
+, Tạo 4 nhóm người dùng tương ứng với 100 người, 1000 người, 5000 người,
+, Tạo các http request tới các chức năng được kiểm thử
+, Tạo các listener để theo dõi kết quả kiểm thử
Báo cáo kết quả kiểm thử
Điều kiện tải thấp 100 user
- Thời gian phản hồi trung bình: 15ms
- Tỉ lệ % request có thời gian phản hồi < 18ms: 95%
- Thời gian phản hồi nhỏ nhất: 6ms
- Thời gian phản hồi lớn nhất: 18ms
- Thời gian phản hồi trung bình: 11ms
- Tỉ lệ % request có thời gian phản hồi < 17ms: 95%
- Thời gian phản hồi nhỏ nhất: 5ms
- Thời gian phản hồi lớn nhất: 20ms
Điều kiện tải bình thường 1000 user
- Thời gian phản hồi trung bình: 6ms
- Tỉ lệ % request có thời gian phản hồi < 8ms: 95%
- Thời gian phản hồi nhỏ nhất: 5ms
- Thời gian phản hồi lớn nhất: 19ms
- Thời gian phản hồi trung bình: 5ms
- Tỉ lệ % request có thời gian phản hồi < 15ms: 95%
- Thời gian phản hồi nhỏ nhất: 4ms
- Thời gian phản hồi lớn nhất: 25ms
Điều kiện tải trung bình 5000 user
- Thời gian phản hồi trung bình: 1805ms
- Tỉ lệ % request có thời gian phản hồi < 3188ms: 95%
- Thời gian phản hồi nhỏ nhất: 7ms
- Thời gian phản hồi lớn nhất: 3370ms
- Thời gian phản hồi trung bình: 764ms
- Tỉ lệ % request có thời gian phản hồi < 2549ms: 95%
- Thời gian phản hồi nhỏ nhất: 4ms
- Thời gian phản hồi lớn nhất: 3370ms
Điều kiện tải nặng 10000 user
- Thời gian phản hồi trung bình: 2843ms
- Tỉ lệ % request có thời gian phản hồi < 4166ms: 95%
- Thời gian phản hồi nhỏ nhất: 19ms
- Thời gian phản hồi lớn nhất: 7700ms
- Thời gian phản hồi trung bình: 2650ms
- Tỉ lệ % request có thời gian phản hồi < 3898ms: 95%
- Thời gian phản hồi nhỏ nhất: 7ms
- Thời gian phản hồi lớn nhất: 7802ms