Professional Documents
Culture Documents
Lớp : ĐH-KTPM3-K11
Nhóm : 13
Sinh viên thực hiện : Trần Viết Trưởng
Đoàn Quang Nhật
Hà Nội, 2019
Bảng Công Việc
Tên Thành Viên Công Việc
Kiểm thử chức năng đăng nhập, kiểm
Trần Viết Trưởng thử hiệu năng luồng đăng nhập, trang
chủ
Đoàn Quang Nhật Kiểm thử chức năng thêm nhân viên
Lời Nói Đầu
Ngày nay công nghệ thông tin đang phát triển ngày càng nhanh chóng, kéo
theo đó là các hệ thống mạng và phần mềm cũng gia tăng cả về số lượng lẫn quy
mô. Nhưng cũng từ đó đã nảy sinh ra nhiều vấn đề về lỗi hỏng hóc phần mềm
không đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi
này có thể do tự bản thân phần mềm bị hỏng do không được kiểm duyệt kỹ lưỡng
trước khi đưa cho người dùng hoặc cũng có thể do có người cố tình phá hoại…
Những vấn đề nan giải và cấp thiết này càng có xu hướng mở rộng trong những
năm gần đây.
Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật kỹ lưỡng
nhằm ngăn chặn các lỗi hay hỏng hóc còn tiềm tàng bên trong phần mềm mà ta
chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn vì vậy để kiểm thử sẽ tốn
rất nhiều công sức nếu làm thủ công chưa kể đến chất lượng sẽ không được cao và
chưa chắc đã chính xác với yêu cầu. Vì vậy cần có các chương trình kiểm thử tự
động cho phép ta thực hiện một cách nhanh chóng và an toàn. Và đó chính là lý do
em chọn đề tài kiểm thử tự động với công cụ selenium webdriver.
Chúng em xin gửi lời cám ơn chân thành đến thầy TS. Nguyễn Hoàng Tú –
giảng viên bộ môn “Kiểm Thử Phần Mềm”, khoa Công nghệ thông tin, trường Đại
Học Công Nghiệp Hà Nội đã định hướng, hướng dẫn và chỉ bảo tận tình trong quá
trình chúng em học tập và hoàn thành báo cáo này. Chúng em xin chúc thầy và gia
đình luôn luôn mạnh khỏe và tràn đầy niềm vui trong cuộc sống.
Cuối cùng, chúng em xin gửi lời cảm ơn đến người thân, bạn bè đã động
viên, đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứu và hoàn thành
báo cáo này.
Chúng em xin chân thành cảm ơn!
Chương 1. TÌM HIỂU CÔNG CỤ KIỂM THỬ TỰ ĐỘNG SELENIUM
WEBDRIVER...................................................................................................1
1.1 Tóm tắt lịch sử.......................................................................................1
1.2 Đặc điểm...............................................................................................3
1.3 Cài đặt và sử dụng Selenium Webdriver...............................................4
Chương 2. GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG......................9
2.1 Yêu cầu đề tài...........................................................................................9
2.2 Phân tích thiết kế hệ thống.....................................................................10
2.2.1 Đặc tả hệ thống................................................................................10
2.2.2 Thiết kế hệ thống.............................................................................11
Chương 3. KIỂM THỬ PHẦN MỀM QUẢN LÍ NHÀ HÀNG.....................20
3.1 Lập Kế Hoạch Kiểm Thử.......................................................................20
3.2 Thực hiện kiểm thử................................................................................22
3.2.1 Chức năng kiểm thử Đăng Nhập (Trần Viết Trưởng).....................22
3.2.2 Chức năng kiểm thử Thêm Nhân Viên (Đoàn Quang Nhật)........29
Chương 4. KIỂM THỬ HIỆU NĂNG VỚI CÔNG CỤ JMETER.................36
4.1 Giới thiệu công cụ Jmeter......................................................................36
4.2 Cài đặt và sử dụng Jmeter......................................................................37
4.3 Một số thành phần cơ bản của Jmeter....................................................38
4.4 Kiểm thử hiệu năng phần mềm quản lý nhà hàng luồng đăng nhập và
trang chủ (Trần Viết Trưởng).......................................................................38
KẾT LUẬN.....................................................................................................43
Chương 1. TÌM HIỂU CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
SELENIUM WEBDRIVER
1.1 Tóm tắt lịch sử
Selenium là một công cụ kiểm thử phần mềm tự động, được phát triển bởi
ThoughtWorks từ năm 2004 với tên ban đầu là JavaScriptTestRunner. Đến năm
2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập Selenium team, một
phần của Google và phát triển thành Selenium như hiện nay.
Selenium là một tập hợp mạnh mẽ của các công cụ hỗ trợ phát triển nhanh
chóng của các thử nghiệm tự động hóa cho các ứng dụng dựa trên web. Selenium
cung cấp một tập phong phú của các thử nghiệm chức năng đặc biệt hướng đến các
nhu cầu của các thử nghiệm của một ứng dụng web. Các hoạt động này là rất linh
hoạt, cho phép nhiều tùy chọn cho vị trí các thành phần UI và so sánh kết quả thử
nghiệm dự kiến sẽ chống lại hành vi ứng dụng thực tế.
Selenium là một mã nguồn mở và là một công cụ kiểm thử phần mềm tự động
hóa để thử nghiệm các ứng dụng web. Nó có khả năng hoạt động trên nhiều các
trình duyệt và hệ điều hành khác nhau. Selenium không chỉ là một công cụ duy nhất
mà là một bộ các công cụ giúp những người kiểm thử tự động hóa các ứng dụng
dựa trên web hiệu quả hơn.
Selenium gồm có các công cụ: Selenium IDE, Selenium RC, Selenium
WebDriver, Selenium Grid.
Selenium IDE
Selenium-IDE là môi trường phát triển tích hợp cho việc xây dựng trường hợp
thử nghiệm Selenium. Nó hoạt động như một trình duyệt Firefox add-on và cung
cấp một giao diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử cá nhân, bộ
kiểm tra toàn bộ. Selenium-IDE có một tính năng ghi lại, sẽ giữ tài khoản của người
sử dụng khi chúng được thực hiện và lưu trữ chúng như là một kịch bản tái sử dụng
để phát sử dụng. Nó cũng có một menu ngữ cảnh (nhấn chuột phải) tích hợp với
trình duyệt Firefox, cho phép người dùng chọn từ một danh sách xác nhận và xác
minh cho các vị trí đã chọn. Selenium-IDE cũng cung cấp chỉnh sửa đầy đủ các
trường hợp thử nghiệm cho chính xác hơn và kiểm soát.
Mặc dù Selenium-IDE chỉ là một Firefox add-on, các kiểm thử tạo ra trong nó
cũng có thể được chạy cho các trình duyệt khác bằng cách sử dụng Selenium-RC và
chỉ định tên của bộ ứng dụng thử nghiệm trên dòng lệnh.
1
Selenium Webdriver
WebDriver là một khuôn khổ tự động hóa web cho phép bạn thực hiện các kiểm
thử của mình trên các trình duyệt khác nhau. Nó nằm trong bộ kiểm thử tự động
Selenium. WebDriver được sử dụng trong ngữ cảnh sau:
- Kiểm thử đa trình duyệt, bao gồm cải thiện chức năng cho trình duyệt mà
không được hỗ trợ tốt bởi Selenium RC
- Điều khiển nhiều frame, nhiều cửa sổ trình duyệt, nhiều popup và alert.
- Điều hướng trang phức hợp.
- Điều hướng người dùng nâng cao như kéo-thả (drag-and-drop)
- AJAX-based UI elements.
Selenium RC (Remote Control)
Selenium RC là dự án Selenium chính trong một thời gian dài trước khi
Selenium WebDriver (Selenium 3.9) ra đời. Giờ đây Selenium RC hầu như không
được sử dụng vì WebDriver cung cấp nhiều tính tăng mạnh mẽ hơn. Tuy nhiên bạn
vẫn có thể tiếp tục phát triển các script sử dụng RC.
Selenium RC cho phép các nhà phát triển tự động hóa kiểm tra sử dụng một
ngôn ngữ lập trình cho tính linh hoạt tối đa và mở rộng trong việc phát triển logic
thử nghiệm. Ví dụ, nếu trình ứng dụng trả về một tập kết quả của việc kiểm tra, và
nếu chương trình thử nghiệm tự động cần chạy thử nghiệm trên mỗi phần tử trong
tập hợp kết quả, hỗ trợ lặp đi lặp lại các ngôn ngữ lập trình có thể được sử dụng để
chuyển đổi thông qua việc tập hợp kết quả, kêu gọi Selenium lệnh chạy thử nghiệm
trên mỗi mục.
Khả năng sử dụng Selenium RC với một ngôn ngữ lập trình bậc cao để phát
triển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợp
với một dự án xây dựng môi trường tự động.
Selenium RC cho phép chúng ta viết các kiểm thử giao diện của ứng dụng Web
tự động với sự giúp đỡ của các ngôn ngữ lập trình như Java, C#, Perl, Python, PHP
để tạo ra các ca kiểm thử phức tạp hơn như đọc và viết các tập tin, truy vấn cơ sở dữ
liệu và gửi mail kết quả kiểm thử. Khả năng sử dụng Selenium RC với một ngôn
ngữ lập trình bậc cao để phát triển các trường hợp thử nghiệm cũng cho phép thử
nghiệm tự động được tích hợp với một dự án xây dựng môi trường tự động.
Selenium Grid
2
Selenium Grid cho phép người dùng thực thi kiểm thử song song trên nhiều máy
tính khác nhau với nhiều trình duyệt khác nhau.
Selenium Grid cho phép thực thi kiểm thử với chế độ phân tán, sử dụng chung
một code base. Do đó, hard code không cần thiết phải có mặt trên tất cả các máy
được sử dụng để thực thi kiểm thử.
Selenium Grid bao gồm 2 thành phần chính là Hub và Nodes:
- Hub: có thể hiểu là máy chủ server, chứa hard code và là nơi gửi lệnh
điều khiển các máy khác trong mô hình thực thi kiểm thử. Hub chỉ có thể
được set up duy nhất trên một máy tính.
- Nodes: là các Selenium instances được kết nối vào Hub để thực thi các
kịch bản kiểm thử. Có thể có nhiều Nodes trong một mô hình Grid. Các
Nodes có thể được set up trên nhiều máy tính với nhiều trình duyệt khác
nhau.
Selenium WebDriver là sự kế thừa của Selenium RC để gửi các lệnh trực tiếp tới
trình duyệt và xuất ra các kết quả. Selenium WebDriver cho phép chúng ta sử dụng
một trong số các ngôn ngữ lập trình như HTML, Java, .Net, Perl, Ruby… để tạo
kịch bản test (Test Case) kết hợp với sử dụng các điều kiện, vòng lặp… khiến cho
test script trở nên chính xác hơn. Selenium WebDriver được phát triển tốt hơn để hỗ
trợ cho các trang web động (Những trang web mà phần tử trong nó có thể thay đổi
ngay cả khi trang đó không được tải lại) Mục đích của WebDriver là hỗ trợ cho các
vấn đề về kiểm thử web-app hiện nay.
1.2 Đặc điểm
Selenium là một công cụ mã nguồn mở: Vì là mã nguồn mở nên chúng ta có
thể sử dụng mà không phải 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ợ.
3
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…
Hình 1.1 Download java development kit (JDK) tại trang oracle.com
4
Download selenium
5
Download Chrome Driver
6
+ Tạo một class trong dự án vừa tạo để chạy thử
7
Những lệnh cơ bản
Một số câu lệnh hay được sử dụng trong Selenium WebDriver:
- navigate().forward();
- navigate().back();
- implicitlyWait(); : để chờ các cảnh báo.
Thư Viện Hỗ Trợ - Apache POI
Apache POI hỗ trợ bạn làm việc với các định dạng của Microsoft, các
class của nó thường có tiếp đầu ngữ HSSF, XSSF, HPSF, ... Nhìn vào tiếp
đầu ngữ của một class bạn có thể biết được class đó hỗ trợ loại định dạng
nào.
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...
8
Chương 2. GIỚI THIỆU PHẦN MỀM QUẢN LÍ NHÀ HÀNG
2.1 Yêu cầu đề tài
Tên đề 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 công nghệ thông tin đanng ngày càng phát triển nhanh chóng, kéo
theo đó là hệ thống mạng và các phần mềm cũng gia tang cả về số lượng và chất
lượng. Nhưng cũng từ đó đã nảy sinh nhiều vấn đề về lỗi hỏng hóc phần mềm
không đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế… Những lỗi
này có thể do tự bản thân phần mềm bị hỏng do không được kiểm duyệt kỹ lưỡng
trước khi đưa cho người dùng hay cũng có thể do có người cố tình phá hoại nhằm
đánh cắp thông tin. Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật
kỹ lưỡng để ngăn chặn các lỗi hay hỏng hóc còn tiềm tàng bên trong phần mềm mà
ta chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có
thể do một công ty hàng nghìn người phát triển ra vì vậy để kiểm thử được một
phần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công,
chưa kể đến chất lượng kiểm thử sẽ không cao. Theo nhiều tính toán thì công việc
kiểm thử đóng vai trò hết sức quan trọng trong quy trình phát triển phần mềm, nó
đóng góp tới khoảng 40% tổng toàn bộ chi phí sản xuất phần mềm. Vì vậy cần có
các hệ thống kiểm thử tự động cho phép thực hiện công việc một cách nhanh chóng
và chính xác nhất có thể. Và đó là lí do em chọn đề tài này để nghiên cứu, tìm hiểu.
- 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
Bài toán kiểm thử
- 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...
9
2.2 Phân tích thiết kế hệ thống
10
2.2.2 Thiết kế hệ thống
Biểu đồ use case chính
13
- Người dùng click vào bàn cần mở
- Hệ thống sẽ hiển thị lên giao diện thông tin chi tiết của
bàn đó đồng thời thay đổi trạng thái của bàn đó từ đóng
sang mở trong CSDL
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
14
- Sau khi xác nhận hệ thống sẽ lưu lại thông tin của bàn
đó vào bảng HOADON sau đó chuyển trạng thái của
bàn đó từ mở thành đóng.
o Luồng rẽ nhánh
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
Không có
Tiền điều kiện
Người dùng cần đăng nhập vào hệ thống
Hậu điều kiện
Các thông tin của các bàn sẽ được cập nhật
15
- 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
Tiền điều kiện
Người dùng phải đăng nhập được vào hệ thống
Hậu điều kiện
Không có
16
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
1. Use case này bắt đầu khi người dùng kích vào nút Quản Lí
Món Ăn trên giao diện. Hệ thống sẽ truy xuất cơ sở dữ liệu
và hiển thị lên giao diện.
2. Tìm kiếm: Người dùng muốn tìm kiếm một món ăn
- Người dùng nhập nội dung muốn tìm vào ô tìm kiếm
- Hệ thống sẽ truy xuất dữ liệu và hiển thị kết quả lên
giao diện
3. Thêm sản phẩm: Người dùng muốn thêm một món ăn mới
- Người dùng kích vào nút thêm
- Hệ thống hiển thị giao diện để người dùng nhập dữ liệu
- Người dùng nhập dữ liệu muốn thêm
- Hê thống kiểm tra dữ liệu và lưu lại vào CSDL
4. Sửa sản phẩm: Người dùng muốn sửa thông tin một món ăn
- Người dùng chọn món ăn muốn sửa
- Hệ thống hiển thị lên giao diện thông tin món ăn
- Người dùng nhập dữ liệu
- Hệ thống kiếm tra dữ liệu và lưu lại vào CSDL
5. Xóa sản phẩm: Người dùng muốn xóa một món ăn
- Người dùng click vào biểu tượng thùng rác món ăn
muốn xóa
- Hệ thống sẽ xóa dữ liệu của món ăn đó khỏi CSDL
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
17
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
Tiền điều kiện
Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện
Thông tin sản phẩm được cập nhật
18
- Hệ thống sẽ kiểm tra dữ liệu và lưu lại trong cở sở dữ
liệu
4. Xóa tài khoản: Người dùng muốn xóa một tài khoản
- Người dùng click vào biểu tượng thùng rác của tài
khoản muốn xóa.
- Hệ thống sẽ xóa dữ liệu của tài khoản đó khỏi hệ thống
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 administrator
Tiền điều kiện
Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện
Thông tin tài khoản được cập nhật
19
Chương 3. KIỂM THỬ PHẦN MỀM QUẢN LÍ NHÀ HÀNG
3.1 Lập Kế Hoạch Kiểm Thử
Tổng quan
Website quản lý nhà hàng là một website được xây dựng cho việc
quản lý nhà hàng, chuỗi nhà hàng, quán ăn, quán caffe... website giải quyết
được những yêu cầu từ phía nhà quản lý trong việc kiểm soát các hoạt động
bán hàng cho đến việc quản lý từng bộ phận, doanh thu… website giúp
người dùng dễ dàng thao tác với các nghiệp vụ của nhà hàng như quản lí bán
hàng, quản lí hóa đơn qua đó giúp nhà hàng tối ưu hóa trong việc phục vụ
của mình.
Mục đích
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ử
Phạm vi
Kế hoạch kiểm thử này được áp dụng cho việc kiểm thử những chức
năng sau của phần mềm quản lí nhà hàng được đặc tả trong tài liệu bài tập
lớn môn kiểm thử phần mềm.
- Đăng Nhập
- Thêm Món Ăn
- Thêm Tài Khoản
Yêu cầu về tài nguyên
Phần cứng
Phần mềm
20
Tên Phần Mềm Phiên Bản Loại
4 Viết các test case và thực hiện kiểm thử 03/04/2019 10/04/2019
21
7 Ghi nhận đánh giá và báo cáo kiểm thử 18/04/2019
3.2.1 Chức năng kiểm thử Đăng Nhập (Trần Viết Trưởng)
22
+, Mã nguồn chức năng đăng nhập
23
+,Sơ đồ đồ thị dòng
24
Á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 trống K1
Password trống K4
Password:
Password:
26
3 tranviettruong1998@gmail.com Mật khẩu không
được để trống
27
Chi tiết
Test case Kết quả
Test case 1 pass
Test case 2 fail
Test case 3 pass
Test case 4 fail
Test case 5 pass
Test case 6 pass
Test case 7 pass
Test case 8 pass
Test case 9 pass
Chi tiết test case xin vui lòng xem trong file Data.xlsx
Round 2
Tổng quan
Số test case: 9
Pass: 9
Fail: 0
Đã test: 100%
Thành công: 100%
Pending: 0%
Chi tiết
Test case Kết quả
Test case 1 pass
Test case 2 pass
Test case 3 pass
Test case 4 pass
Test case 5 pass
Test case 6 pass
Test case 7 pass
Test case 8 pass
Test case 9 pass
Chi tiết test case xin vui lòng xem trong file Data.xlsx
28
Tổng kết
Round 1 Round 2
Tổng test case 9 9
Đã test 9 9
Chưa test 0 0
Pass 7 9
Fail 2 0
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
29
+, Mã nguồn chức năng thêm nhân viên
30
+, Lưu đồ thuật giải
Hình 3.7 Lưu đồ thuật giải chức năng thêm nhân viên
31
+,Sơ đồ đồ thị dòng
32
Áp dụng phương pháp phân tích giá trị biên, phân vùng tương
đương
Đánh
STT Đầu Vào Lớp hợp lệ Vùng không hợp lệ Đánh dấu
dấu
Tên nhân
1 Không được để trống H1 Để trống K1
viên
Email chứa tiếng
K2
việt có dấu
Email không chứa
K3
Email Hợp lệ( Có kí tự @
chứa @ và không
1 Email H2 Chứa khoảng trắng K4
được dùng tiếng việt
có dấu) Trước và sau kí tự
@ không được để K5
trống
Để trống K6
33
Input
TC Output Cover
Tên nhân viên Email Mật khẩu
nguyenvana@gmail
9 Nguyễn Văn A Không được để trống K8,H1,H2
.com
34
+, Bảng test case thêm nhân viên
Kết quả mong
TC Tên Nhân Viên Email Mật Khẩu
muốn
Tạo tài khoản
1 Nguyễn Văn A nguyenvana@gmail.com 123456
thành công
Không được để
2 nguyenvana@gmail.com 123456
trống
Email không hợp
3 Nguyễn Văn A nguyễn@gmail.com 123456
lệ
Email không hợp
4 Nguyễn Văn A nguyenvana 123456
lệ
Email không hợp
5 Nguyễn Văn A nguy @gmail.com 123456
lệ
Email không hợp
6 Nguyễn Văn A nguyenvana@ 123456
lệ
Không được để
7 Nguyễn Văn A 123456
trống
Mật khẩu không
8 Nguyễn Văn A nguyenvana@gmail.com 1234
hợp lệ
Không được để
9 Nguyễn Văn A nguyenvana@gmail.com
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
3.2.2.3 Báo cáo kiểm thử
35
Chương 4. KIỂM THỬ HIỆU NĂNG VỚI CÔNG CỤ
JMETER
4.1 Giới thiệu công cụ Jmeter
Jmeter là ứng dụng viết trên mã nguồn mở(open source), được viết 100% trên
java và là ứng dụng dành cho việc test tải (load test) tốc độ thực thi của ứng dụng
web. Ban đầu nó được thiết kế để đơn thuần kiểm tra cho ứng dụng web, sau đã
được mở rộng ra nhiều chức năng khác.
Apache JMeter có thể được sử dụng để kiểm tra hiệu suất cả trên các tài
nguyên tĩnh, động và các ứng dụng Web. Nó có thể được sử dụng để mô phỏng một
lượng người dùng ảo, request lớn trên một máy chủ, nhóm máy chủ, mạng hoặc đối
tượng để kiểm tra về độ tải của nó hoặc để phân tích thời gian phản hồi tổng thể dưới
các loại tải khác nhau.
Điểm nổi bật
- Là công cụ mã nguồn mở
- Dễ sử dụng
- 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...)
Nhược điểm
- Tiêu thụ bộ nhớ
- Chỉ chạy trên ứng dụng web
36
4.2 Cài đặt và sử dụng Jmeter
Download Jmeter
37
4.3 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 giả lập sẽ tấn công máy chủ dưới
việc kiểm tra hoặc là đồng thời hoặc là theo một số trình tự được xác định
trước
- Samplers: Sampler phải được thêm vào kế hoạch kiểm thử duy nhất, nó cho
phép Jmeter biết cái kiểu request cần được gửi tới máy chủ và với bất kỳ tham
số nào được định nghĩa trước hoặc không. Các yêu cầu có thể là HTTP,
HTTP(s), FTP, TCP, SMTP, SOAP ...
- 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
4.4 Kiểm thử hiệu năng phần mềm quản lý nhà hàng luồng đăng nhập và
trang chủ (Trần Viết Trưởng)
Môi trường kiểm thử
- 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
- Máy chủ: Localhost
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ố
38
- Xác nhận thời gian đáp ứng của phần mềm trong các điều kiện tải thấp,bình
thường,trung bình, nặng như sau: 100 người truy cập trong 30s, 1000 người
truy cập trong 30s, 5000 người truy cập trong 30s, 10000 người truy cập
trong 30s
+, Tạo các http request tới các chức năng được kiểm thử
39
+, Tạo các listener để theo dõi kết quả kiểm thử
41
Điều kiện tải trung bình 5000 user
42
- 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
- Tỉ lệ request lỗi: 77.08%
- Số user trong 1s: 719.9
+ Luồng trang chủ
- Tổng user: 10000
- Tổng thời gian: 10s
- 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
- Tỉ lệ request lỗi: 66.74%
- Số user trong 1s: 644.4
KẾT LUẬN
Kiểm thử phần mềm là một hoạt động quan trọng nhằm đảm bảo chất lượng
phần mềm. Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về
phần mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi
phần mềm.
Kết quả đạt được
- Nắm được tổng quan về kiểm thử phần mềm: các phương pháp, kỹ thuật và
các vấn đề liên quan
- Giới thiệu công cụ kiểm thử tự động Selenium webdriver
- Giới thiệu công cụ kiểm thử hiệu năng Jmeter
- Kiểm thử tự động các chức năng đăng nhập, thêm nhân viên
- Kiểm thử hiệu năng các luồng đăng nhập, trang chủ
43