Ch ng 2: Phân tích thi t k website bán hàng Fashionista... Mặc khác, chúng ta không th h i thúc hay ra deadline cho s hỗ tr... Khi chúng ta th c thi một test script, chúng ta hoàn toàn c
Trang 1KHOA CÔNG NGH THÔNG TIN I
Trang 2L I C M N
Đ có đ c k t qu nh ngƠy hôm nay, tr c tiên em xin g i l i c m n sơu s c
nh t t i TS Đỗ Thị Bích Ngọc, gi ng viên bộ môn Công ngh ph n m m, khoa Công
ngh thông tin I, Học vi n Công ngh B u chính Vi n thông đƣ t n tình h ng d n, giúp
đỡ em trong su t quá trình nghiên c u vƠ th c hi n đ án t t nghi p
Em cũng xin bƠy tỏ lòng bi t n chơn thƠnh t i các th y cô giáo trong Học vi n Công ngh B u chính Vi n thông, đặc bi t lƠ các th y cô trong khoa Công ngh thông tin
I đƣ t n t y d y dỗ em trong quá trình học t p, rèn luy n su t th i gian qua, giúp em có
đ c nh ng ki n th c không chỉ đ hoƠn thƠnh đ án mƠ còn học t p vƠ lƠm vi c sau nƠy
Đặc bi t, l i c m n thiêng liêng nh t con xin đ c g i t i b mẹ Con xin c m n
b mẹ đƣ luôn yêu th ng, tin t ng con, dù có khó khăn th nƠo cũng động viên, ng hộ
và t o đi u ki n đ luôn là chỗ d a tinh th n v ng ch c cho con trong su t th i gian ng i trên gh nhƠ tr ng
Và cu i cùng tôi xin g i l i c m n t i nh ng ng i b n luôn bên, chia sẻ cùng tôi nh ng lúc khó khă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 đ án t t nghi p
Trong quá trình th c hi n đ án, mặc dù đƣ c g ng đ hoàn thi n đ tài t t nh t có
th , nh ng ch c ch n không th tránh khỏi nh ng thi u sót Vì vây, em r t mong nh n
đ c s góp ý c a th y cô và các b n đ đ án c a em đ c hoàn thi n h n
Em xin chân thành cảm ơn!
HƠ Nội, ngƠy 5 tháng 12 năm 2015
Sinh viên
Đ Th Ph ng
Trang 3NH N XÉT, ĐỄNH GIỄ, CHO ĐI M (C a gi ng viên h ng d n)
Đi m:ầầầầầ ầầầ(bằng ch :ầầầầầầ ầầầầầầầầầầ)
Đ ng ý/ Không đ ng ý cho sinh viên b o v tr c hội đ ng ch m đ án t t nghi p?
ầầầầầ ầầầ
Hà N ội, ngàyầ tháng ầầnăm 2015
(ký, h ọ tên)
Trang 4NH N XÉT, ĐỄNH GIỄ, CHO ĐI M (C a gi ng viên ph n bi n)
Đi m:ầầầầầ ầầầầ(bằng ch : ầầầầầầầầầầầầầầầầ)
Đ ng ý/ Không đ ng ý cho sinh viên b o v tr c hội đ ng ch m đ án t t nghi p?
ầầầầầ ầầầ
Hà N ội, ngàyầ tháng ầầnăm 2015
CÁN B - GI NG VIÊN PH N BI N
(ký, h ọ tên)
Trang 5M C L C
L I C M N i
M C L C iv
DANH M C CÁC B NG THU T NG VÀ CH VI T T T vi
DANH M C B NG BI U vii
DANH M C S Đ , HÌNH NH viii
L I M Đ U 1
CH NG 1: T NG QUAN V KI M TH PH N M M VÀ SELENIUM WEBDRIVER 3
1.1 Ki m th ph n m m 4
1.1.1 Khái ni m ki m th ph n m m 4
1.1.2 Các c p độ ki m th ph n m m 4
1.2 Ki m th t động 5
1.2.1 Khái ni m ki m th t động 6
1.2.2 Quy trình ki m th t động 6
1.2.3 So sánh ki m th t động và ki m th th công 7
1.2.4 Một s công c ki m th t động ph bi n 8
1.3 Công c ki m th t động Selenium và Selenium WebDriver 8
1.3.1 Khái quát v Selenium 8
1.3.2 Selenium WebDriver 10
1.3.3 Các câu l nh s d ng trong Selenium WebDriver 13
1.4 K t lu n ch ng 15
CH NG 2: PHÂN TÍCH THI T K WEBSITE BÁN HÀNG FASHIONISTA 16
2.1 Xác định yêu c u h th ng 17
2.1.1 Xác định và mô t các tác nhân 17
2.1.2 Bi u đ ca s d ng 17
2.1.3 Xây d ng kịch b n và phác th o giao di n 18
2.2 Phân tích và thi t k 24
2.2.1 Phân tích yêu c u 24
2.2.2 Thi t k ki n trúc 25
2.2.3 Thi t k chi ti t 26
2.2.4 L c đ c s d li u 29
Trang 62.3 K t lu n ch ng 30
CH NG 3: NG D NG SELENIUM WEBDRIVER TRONG KI M TH WEBSITE FASHIONISTA 31
3 1 Thi t k test case cho các ch c năng chính 32
3.1.1 Ch c năng đăng ký 32
3.1.2 Ch c năng thêm s n phẩm vào giỏ hàng 36
3.1.3 Ch c năng s a giỏ hàng 38
3.1.4 Ch c năng đặt hàng 40
3 2 H ng gi i quy t bài toán và th c thi ki m th t động 43
3.2.1 Các yêu c u v công ngh 43
3.2.2 H ng th c thi ki m th t động 43
3.1.5 Báo cáo và phân tích lỗi 52
3 3 K t lu n ch ng 53
CH NG 4: TH C NGHI M VÀ ĐÁNH GIÁ K T QU 55
4 1 Gi i thi u website Fashionista 56
4 2 Ki m th t động website v i SeleniumWebDriver và TestNG 57
4.2.1 Ch c năng đăng ký tài kho n 57
4.2.2 Ch c năng thêm s n phẩm vào giỏ hàng 60
4.2.3 Ch c năng s a giỏ hàng 60
4.2.4 Ch c năng đặt hàng 61
4 3 Đánh giá k t qu ki m th 62
4.3.1 Ki m th ch c năng 62
4.3.2 Ki m th phi ch c năng 63
4 4 K t lu n ch ng 63
K T LU N 64
TÀI LI U THAM KH O 65
Trang 7DANH M C CÁC B NG THU T NG VÀ CH VI T T T
IEEE Institute of Electrical and Electronic Engineers
Test case Một t p các d li u đ u vƠo, hƠnh động hoặc s ki n và
ki m tra tính h p l c a d li u trên một y u t c a ng
d ng
Trang 8DANH M C B NG BI U
B ng 2.1 Kịch b n use case đăng nh p 18
B ng 2.2 Kịch b n use case đăng ký tƠi kho n 19
B ng 2.3 Kịch b n use case tìm ki m s n phẩm 20
B ng 2.4 Kịch b n use case xem thông tin s n phẩm t form tìm ki m 21
B ng 2.5 Kịch b n use case xem thông tin s n phẩm t form xem chi ti t giỏ hàng 21
B ng 2.6 Kịch b n use case Thêm s n phẩm vào giỏ hàng 22
B ng 2.7 Kịch b n use case S a s l ng s n phẩm 22
B ng 2.8 Kịch b n use case xóa s n phẩm trong giỏ hàng 23
B ng 2.9 Kịch b n use case Đặt hàng 24
B ng 3.1: Mô t yêu c u ch c năng đăng ký 32
B ng 3.2: Các tr ng h p test ch c năng đăng ký 36
B ng 3.4: Mô t yêu c u ch c năng thêm s n phẩm vào giỏ hàng 36
B ng 3.5: Các tr ng h p test ch c năng thêm s n phẩm vào giỏ hàng 38
B ng 3.7: Mô t yêu c u ch c năng s a giỏ hàng 38
B ng 3.8: Các tr ng h p test ch c năng s a giỏ hàng 40
B ng 3.10: Mô t yêu c u ch c năng đăng ký 41
B ng 3.11: Các tr ng h p test ch c năng đặt hàng 43
B ng 3.13: Test script đ c export t kịch b n ki m th Selenium IDE 46
B ng 3.14: Ki m th kh năng t ng thích 50
B ng 4.1: K t qu test ch c năng đăng ký tƠi kho n m i 59
B ng 4.2: K t qu test ch c năng thêm s n phẩm vào giỏ hàng 60
B ng 4.3: K t qu test ch c năng s a giỏ hàng 61
B ng 4.4: K t qu test ch c năng đặt hàng 61
B ng 4.5: K t qu ki m th ch c năng 62
B ng 4.6: K t qu ki m th phi ch c năng 63
Trang 9DANH M C S Đ , HÌNH NH
Hình 1.1 Các c p độ ki m th ph n m m 4
Hình 1.2: Selenium RC 12
Hình 2.1: Bi u đ ca s d ng 17
Hình 2.2: Bi u đ l p thi t k 26
Hình 2.4: Bi u đ tu n t ch c năng đăng ký tƠi kho n 27
Hình 2.5: Bi u đ tu n t ch c năng thêm s n phẩm vào giỏ hàng 28
Hình 2.3: Bi u đ tu n t ch c năng đăng nh p 29
Hình 2 6: L c đ c s d li u 30
Hình 3.1: Quá trình ki m th t động 45
Hình 3.2: T o class TestNG 47
Hình 3.3: Các Test case cho ch c năng S a giỏ hàng 48
Hình 3.4: K t qu ch y test case trên TestNG ậAll Tests 49
Hình 3.5: K t qu ch y test case trên TestNG ậ Summary 49
Hình 3.6: K t qu ch p l i mƠn hình khi đăng ký x y ra lỗi 51
Hình 3.7: K t qu thu đ c sau khi ki m th ch c năng S a giỏ hàng 52
Hình 3.8: TestNG report (emailable-report.html) 53
Hình 3.9: TestNG report(index.html) hỗ tr tìm nguyên nhân x y ra lỗi 53
Hình 4.1: Kịch b n ch c năng đăng ký tƠi kho n 57
Hình 4.2: D li u đ u vào cho ch c năng đăng ký tƠi kho n 58
Hình 4.3: K t qu đ u ra c a ch c năng đăng ký tƠi kho n 58
Hình 4.4: Báo cáo k t qu ki m th ch c năng đăng ký tƠi kho n 59
Trang 10L I M Đ U
Các ng d ng Web càng ngày càng phát tri n m nh m nhằm đáp ng t i đa
nh ng nhu c u c a ng i dùng và d n tr thành n n t ng k t n i thông tin thi t y u trong nhi u doanh nghi p, đóng vai trò quy t định c a th ng m i đi n t , trao đ i thông tin
Đ có th đ t đ c đi u này, các ng d ng Web c n ph i có hi u năng cao, đáng tin
c y,ầ Vi c đ a ra một ng d ng Web hoàn h o cho nh ng ng i đang vƠ s s d ng
ng d ng đƣ tr thành một thách th c chính trong đ m b o ch t l ng ph n m m S
ph c t p, tính linh ho t và s ph thuộc c a các ng d ng vào một dịch v v i nhi u
ng i s d ng trên các n n t ng khác nhau (h đi u hành, trình duy t,ầ) là một thách
th c mà các nhà phát tri n website ph i đ i mặt Đi u này d n t i vi c ki m th ng d ng Web tr nên thi t y u đ i v i các d án ph n m m và c n ph i có nh ng ph ng pháp đặc bi t khác v i ph n m m truy n th ng
Trong khi đó, đ t o ra s n phẩm công ngh thông tin hay ph n m m có ch t l ng thì ho t động ki m th ph n m m đóng vai trò quan trọng Tuy nhiên, ki m th th công
l i chi m đ n h n 40% th i gian, kinh phí và ngu n nhân l c phát tri n d án ph n
m m[1] Do v y, một lo t các công c hỗ tr ki m th đ n vị (nh TestNG, JUnit, NUnit, TagUnit, JBehave,ầ), ki m th ch c năng (nh Selenium, Quicktest professional, IBM Rational Functional tester,ầ), ki m th hi u năng (nh Jmeter, OpenSTA, Load runner, ) đƣ ra đ i Trong đó, Selenium lƠ một công c ki m th t động cho các ng
d ng Web, có th ki m th trên nhi u trình duy t, hỗ tr nhi u ngôn ng l p trình, giao
ti p đ c v i các công c ki m th khác nh JUnit, TestNG (v i Java) hay NUnit (v i C#) vƠ đặc bi t công c này là một bộ mã ngu n m , do đó các t ch c không c n t n kinh phí mua b n quy n
Xu t phát t th c t đó, em đƣ chọn đ tài: ắNghiên c u Selenium WebDriver và
áp d ng trong ki m th ng d ng Web” v i mong mu n có đ c cái nhìn xác th c, rõ
rƠng h n v ki m th ph n m m và ti p c n đ c v i công c ki m th t động Selenium
đ làm ti n đ cho định h ng t ng lai khi t t nghi p đ i học s tr thành một kỹ s
ki m th ph n m m
M c tiêu đ án
Đ án đ c th c hi n nhằm m c đích tìm hi u v ki m th ph n m m, ki m th t động ph n m m, đặc bi t là ki m th các ng d ng Web và các công c ki m th t động Đ án t p trung nghiên c u vai trò, ph ng pháp cũng nh ng d ng c a Selenium WebDriver trong vi c ki m th ng d ng Web T đó, th c hi n phân tích, xây d ng các test case cho các ch c năng c a một website; s d ng ngôn ng l p trình Java t o các test
Trang 11script t các test case đ ki m tra kh năng th c hi n đúng vƠ đ c a t ng ch c năng K t
qu ki m th góp ph n đánh giá đ c ch t l ng c a Website đó
V i m c đặt ra nh trên, nh ng nội dung và k t qu chính c a đ án đ c trình bày trong b n ph n nh sau:
Ch ng 1: T ng quan v ki m th ph n m m và Selenium WebDriver
Ch ng 1 gi i thi u t ng quan v ki m th ph n m m, nêu lên vai trò ki m th trong quá trình phát tri n d án ph n m m và quy trình ki m th ph n m m t động Đ ng th i
t p trung tìm hi u vi c ki m th t động ng d ng Web, các b c ki m th và l a chọn công c ki m th phù h p ậ Selenium WebDriver T đó đi sơu vƠo tìm hi u công c Selenium WebDriver v vai trò, u nh c đi m cũng nh các đặc tr ng vƠ các cơu l nh
mà công c hỗ tr
Ch ng 2: Phân tích thi t k website bán hàng Fashionista
Ch ng 2 t p trung phân tích và thi t k website, t o kịch b n, bi u đ tu n t , các s
đ l p và l c đ c s d li u T đó xơy d ng lên một website hoàn chỉnh ph c v cho
vi c th c thi vi c ki m th t động v i công c Selenium WebDriver
Ch ng 3: ng d ng Selenium WebDriver trong ki m th website Fashionista
Ch ng 3 đi vƠo xây d ng kịch b n ki m th cho các ch c năng chính c a website
Đ ng th i, đ a ra gi i pháp gi i quy t bài toán ki m th t động ng d ng Web, quy trình
th c thi ki m th t động vƠ đ a ra báo cáo cho k t qu ki m th
Ch ng 4: Th c nghi m vƠ đánh giá k t qu
Áp d ng các ki n th c đƣ trình bƠy vƠo bƠi toán c th : S d ng công c ki m th t động Selenium WebDriver đ ki m th t động các ch c năng đƣ phơn tích
Trang 12đi sơu vƠo tìm hi u công c Selenium WebDriver v vai trò, u nh c đi m cũng nh các đặc tr ng vƠ các câu l nh mà công c hỗ tr
Trang 13ắKi m th ph n m m là quá trình th c thi một ch ng trình v i m c đích tìm lỗi.”
Hai định nghĩa c a IEEE(1990):
o Xác định và phát hi n nhi u lỗi nh t có th trong ph n m m đ c ki m th
o Sau khi s a ch a các lỗi đƣ xác định và ki m tra l i, làm cho ph n m m đƣ đ c
ki m th đ n một m c độ ch p nh n đ c v ch t l ng
o Th c hi n các yêu c u ki m th c n thi t một cách hi u qu và có hi u qu , trong
ph m vi ngân sách và th i gian cho phép
Trang 14 Ki m th đ n v - Unit Test
Ki m th đ n vị là m c th p nh t trong các m c độ ki m th Đ n vị th ng có kích
th c nhỏ, ch c năng ho t động đ n gi n, không gây nhi u khó khăn trong vi c ki m th , ghi nh n và phân tích k t qu Do đó, n u phát hi n lỗi thì vi c tìm ki m nguyên nhân và
s a lỗi cũng đ n gi n và t n ít chi phí h n Tuy nhiên, ki m th m c đ n vị l i t n nhi u
th i gian đ th c hi n, ch a phát hi n đ c các lỗi x y ra khi tích h p[2]
Ki m th th c hi n trên các hàm hay thành ph n riêng lẻ
C n hi u bi t v thi t k ch ng trình vƠ code
Th c hi n b i l p trình viên đ đ m b o th i gian do vi c phát hi n và s a lỗi c n
Ki m th h th ng - System Test
Ki m th h th ng là một m c c a ti n trình ki m th ph n m m khi các module và tích h p các module đƣ đ c ki m th thành công System Test th ng đ c th c hi n
b i một nhóm ki m th viên hoƠn toƠn độc l p v i nhóm phát tri n d án v i m c tiêu là
đ đánh giá ph n m m có tuân th theo các yêu c u đƣ đ a ra không
System Test ki m th c các hành vi ch c năng c a ph n m m l n các yêu c u v
ch t l ng nh độ tin c y, tính ti n l i khi s d ng, hi u năng vƠ b o m t M c ki m th nƠy đặc bi t thích h p cho vi c phát hi n lỗi giao ti p v i ph n m m hoặc ph n c ng bên ngoài, chẳng h n các lỗi "t c ngh n" (deadlock) hoặc chi m d ng bộ nh
Ki m th ch p nh n - Acceptance Test
Thông th ng, sau giai đo n System Test lƠ Acceptance Test, đ c khách hàng
th c hi n hoặc y quy n cho một nhóm th ba th c hi n M c đích c a Acceptance Test
lƠ đ ch ng minh ph n m m thỏa mãn t t c yêu c u c a khách hàng và khách hàng ch p
nh n s n phẩm
1.2 Ki m th t đ ng
Ki m th ph n m m t n nhi u chi phí, nhân l c và th i gian Trong một s d án, chi phí ki m th ph n m m chi m 40% t ng giá trị c a d án Do đó một trong các m c
Trang 15tiêu c a ki m th là t động hóa nhi u, nh đó mƠ gi m thi u chi phí, gi m lỗi, đặc bi t giúp vi c ki m th d dƠng vƠ nhanh chóng h n
1.2.1 Khái ni m ki m th t đ ng
Ki m th t động là th c hi n ki m th ph n m m một cách t động các b c trong một kịch b n ki m th bằng một ch ng trình đặc bi t v i r t ít hoặc không có s
t ng tác c a con ng i, giúp cho ng i th c hi n vi c ki m th ph n m m không ph i
lặp đi lặp l i các b c nhàm chán
Công c ki m th t động có th l y d li u t file bên ngoài (Excel, csvầ) nh p vào
ng d ng, so sánh k t qu mong đ i (t file Excel, csvầ) v i k t qu th c t và xu t ra báo cáo k t qu ki m th
Ki m th t động s đ c s d ng khi d án không đ tài nguyên (th i gian, nhân l c
và chi phí), ph i th c hi n ki m th h i quy khi s n phẩm đ c s a đ i hoặc nâng c p và
c n ki m th l i các tính năng đƣ th c hi n t t tr c đó, ki m tra kh năng v n hành c a
s n phẩm trong các môi tr ng đặc bi t (đo t c độ x lý trung bình ng v i mỗi yêu c u, xác định kh năng chịu t i t i đa, ki m tra các c ch an ninh và an toàn, )
1.2.2 Quy trình ki m th t đ ng
Quy trình ki m th t động g m các b c sau:
L p k ho ch ki m th
Thi t k test case
Phát tri n test script
Thi t k Test case
M c đích: Nhằm xác định các test case vƠ các b c ki m tra chi ti t cho mỗi phiên
b n ph n m m Giai đo n thi t k test case là h t s c quan trọng, nó b o đ m t t c các tình hu ng ki m th ắquét” h t t t c yêu c u c n ki m tra
Trang 16 Phát tri n Test Script
M c đích: B c nƠy th ng không b t buộc trong các lo i và m c ki m th , chỉ yêu
c u trong nh ng tr ng h p đặc thù c n thi t k , t o ra các test script có kh năng ch y trên máy tính giúp t động hóa vi c th c thi các b c ki m tra đƣ định nghĩa b c thi t
k test case
Trong đó, một test script đ c hi u là một nhóm mã l nh d ng đặc t kịch b n dùng đ
t động hóa một trình t ki m th , giúp cho vi c ki m th nhanh h n, hoặc cho nh ng
tr ng h p mà ki m th bằng tay s r t khó khăn hoặc không kh thi Các test script có
M c đích: Đánh giá toƠn bộ quá trình ki m th , bao g m xem xét vƠ đánh giá k t qu
ki m th , li t kê lỗi, chỉ định các yêu c u thay đ i, và tính toán các s li u liên quan đ n quá trình ki m th nh s gi , th i gian ki m th , s l ng lỗi, phân lo i lỗiầ
1.2.3 So sánh ki m th t đ ng và ki m th th công
u đi m:
Độ tin c y cao (Reliability): Nh s n định v t trội c a công c ki m th t động so
v i con ng i, đặc bi t trong tr ng h p có quá nhi u test case c n đ c th c thi, nên
độ tin c y c a ki m th t động th ng cao h n so v i ki m th th công
Kh năng lặp (Repeatability): công c ki m th t động ra đ i lƠ đ giúp cho các tester không ph i lặp đi lặp l i các thao tác nh : nh p d li u, click, check k t qu ầ một cách nhƠm chán v i độ tin c y vƠ n định cao
Kh năng tái s d ng d ng (Reusability): v i một bộ ki m th t động, ng i ta có th
s d ng cho nhi u phiên b n ng d ng khác nhau, đơy đ c gọi lƠ tính tái s d ng
T c độ cao (Fast): do th c thi b i máy nên t c độ c a ki m th t động nhanh h n nhi u so v i t c độ c a con ng i N u c n 5 phút đ th c thi một test case một cách
th công thì có th ng i ta chỉ c n kho ng 30 giơy đ th c thi một cách t động
Chi phí th p (Cost Reduction): n u áp d ng ki m th t động đúng cách, ng i ta có
th ti t ki m đ c nhi u chi phí, th i gian vƠ nhơn l c, do ki m th t động nhanh
h n nhi u so v i ki m th th công, đ ng th i nhơn l c c n đ th c thi vƠ b o trì scripts không nhi u
Nh c đi m:
Khó m rộng, khó b o trì (Poor scalability and maintainability): Trong cùng một d
án, đ m rộng ph m vi cho ki m th t động khó h n nhi u so v i ki m th th
Trang 17công S l ng công vi c ph i lƠm đ m rộng ph m vi cho ki m th t động lƠ nhi u
h n vƠ khó h n ki m th th công Cũng v y, đ c p nh t một test case th công,
ng i ta chỉ c n m ra vƠ gõ, r t đ n gi n Nh ng ki m th t động l i không đ n
gi n nh v y, c p nh t hay chỉnh s a yêu c u r t nhi u công vi c nh debug, thay đ i
d li u đ u vƠo, vƠ c p nh t code m i
Kh năng bao ph th p (Low coverage): do khó ng d ng, khó m rộng vƠ đòi hỏi nhi u kỹ năng l p trình nên độ bao ph c a ki m th t động khá th p
V n đ công c vƠ nhơn l c (Technology vs people issues): hi n nay cũng có nhi u công c hỗ tr ki m th t động khá t t nh ng chúng v n còn nhi u h n ch NgoƠi ra ngu n nhơn l c có th s d ng thƠnh th o các công c nƠy cũng không nhi u
1.3 Công c ki m th t đ ng Selenium và Selenium WebDriver
1.3.1 Khái quát v Selenium
Selenium là một công c hỗ tr ki m th t động cho các ng d ng Web Selenium hỗ tr ki m th trên h u h t các trình duy t ph bi n hi n nay nh Firefox, Internet Explorer, Safari, ầ cũng nh các h đi u hƠnh ch y u nh Windows, Linux, Mac, Selenium cũng hỗ tr một s l n các ngôn ng l p trình Web ph bi n hi n nay
nh C#, Java, Perl, PHP, Python, Ruby, Công c nƠy có th k t h p thêm v i một s công c khác nh Junit và TestNG nh ng v i ng i dùng thông th ng chỉ c n ch y t động mƠ không c n cƠi thêm các công c b tr
a Đặc đi m c a Selenium
Mƣ ngu n m : Đơy lƠ đi m m nh nh t c a Selenium khi so sánh v i các test tool khác 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ộng đ ng hỗ tr : vì lƠ mƣ ngu n m nên Selenium có một cộng đ ng hỗ tr khá
m nh m Bên c nh đó, Google lƠ n i phát tri n Selenium nên chúng ta hoƠn toƠn có
th yên tơm v s h tr mi n phí khi có v n đ v Selenium Tuy nhiên, đơy cũng lƠ một đi m y u c a Selenium Vì công c nƠy hoàn toàn mi n phí, cộng đ ng l i đông nên một v n đ có th nhi u gi i pháp, vƠ có th một s gi i pháp lƠ không h u ích Mặc khác, chúng ta không th h i thúc hay ra deadline cho s hỗ tr
Trang 18 Selenium hỗ tr nhi u ngôn ng l p trình
Selenium hỗ tr ch y trên nhi u h đi u hƠnh khác nhau v i m c độ chỉnh s a script
h u nh lƠ không có Th c s thì đi u nƠy ph thuộc ph n l n vƠo kh năng vi t script
c a ng i dùng
Ch y test case background Khi chúng ta th c thi một test script, chúng ta hoàn toàn
có th lƠm vi c khác trên cùng một máy tính Đi u nƠy hỗ tr chúng ta không c n t n quá nhi u tƠi nguyên máy móc khi ch y test script
Không hỗ tr Win app Selenium th c s chỉ hỗ tr chúng ta t ng tác v i Browser
mƠ không hỗ tr chúng ta lƠm vi c v i các Win app, k c Win dialog nh Download/Upload V y nên, đ x lý các tr ng h p c n t ng tác v i h th ng hay một app th ba, chúng ta c n một hay nhi u th vi n khác nh AutoIt hay Coded UI
Là một công c hỗ tr ki m tra tính năng nên Selenium không có kh năng gi l p nhi u ng i dùng o cùng một lúc Công vi c c a nó là ch y ki m th t động d a trên
một kịch b n đƣ đ c thi t k t tr c Qua đó chúng ta có th ch c ch n rằng đ i t ng
ki m th có ho t động đúng nh mong đ i hay không
b Các thành ph n c a Selenium
Selenium lƠ một bộ công c hỗ tr ki m th t động các tính năng c a ng d ng trên
n n Web, bao g m 4 thƠnh ph n: Selenium IDE, Selenium Grid, Selenium 1.0 ( hay Selenium Remote Control ậ Selenium RC) và Selenium 2.0 ( hay Selenium WebDriver)
Mỗi lo i có một vai trò c th trong vi c hỗ tr s phát tri n c a t động hóa ki m th
ng d ng web
Selenium IDE (Intergrated Development Environment)
Selenium IDE là đ c phát tri n d i hình th c add-on c a Firefox Chúng ta chỉ có
th Record trên trình duy t FireFox, nh ng bù l i, chúng ta có th Playback trên các trình duy n khác nh lƠ IE, Chromeầ
Selenium có th sinh code t động hoặc n p các đo n mƣ vi t tay Công c nƠy cung c p
ch c năng ắthu vƠ ch y l i” ậ Record and Playback Sau đó ch y l i các cơu l nh nƠy đ
ki m th Ch c năng nƠy r t h u d ng giúp ti t ki m th i gian vi t kịch b n ki m th Selenium IDE còn cho phép l u kịch b n đƣ thu d i nhi u lo i ngôn ng l p trình khác nhau nh Java, PHP, C#, Rubyầ[3]
Selenium Core: Đƣ đ c tích h p trong Selenium IDE Selenium Core là một công
c ch y các test script vi t bằng Selenese Th m nh c a công c này là có th ch y test script trên g n nh t t c các trình duy t, nh ng l i yêu c u đ c cƠi đặt trên máy ch c a website c n ki m tra Đi u này là không th khi Tester không có quy n truy c p đ n máy
ch đó
Trang 19 Selenium RC (Remote Control)
Selenium Remote Control lƠ một framework ki m th cho phép th c hi n nhi u h n
vƠ tuy n tính các hƠnh động trên trình duy t Nó cho phép cho phép các nhƠ phát tri n t động hóa ki m th 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
Công c này có th nh n các test script đ c thu b i Selenium IDE, cho phép chỉnh s a,
c i ti n linh động bằng nhi u ngôn ng l p trình khác nhau Sau đó kh i động một trong các trình duy t Web đ c chỉ định đ th c thi ki m th tr c ti p trên trình duy t đó Selenium RC còn cung c p kh năng l u l i k t qu ki m th ; cung c p một API (Application Programming Interface) vƠ th vi n cho mỗi ngôn ng đ c hỗ tr : HTML, Java, C#, Perl, PHP, Python và Ruby 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 ki m th cũng cho phép ki m th t động
đ c tích h p v i một d án xơy d ng môi tr ng t động
Selenium WebDriver
Selenium WebDriver là s k th a t Selenium Remote Control, lƠm vi c tr c ti p
v i trình duy t m c h đi u hƠnh, cho phép g i l nh tr c ti p đ n trình duy t và xu t ra
k t qu
Selenium-Grid
Selenium ậ Grid LƠ một h th ng hỗ tr ng i dùng th c thi test script trên nhi u
trình duy t một cách song song mƠ không c n ph i chỉnh s a test script
Th c hi n ph ng pháp ki m tra phân b , ph i h p nhi u Selenium RC đ có th th c thi trên nhi u trình duy t Web khác nhau trong cùng một lúc nhằm gi m thi u th i gian th c
hi n
1.3.2 Selenium WebDriver
Ti n thân c a Selenium WebDriver
Tr c khi Selenium WebDriver ra đ i và phát tri n thì Selenium RC là công c chính trong su t một th i gian dài Hi n nay, Selenium RC không đ c s d ng nhi u nh Selenium WebDriver n a, tuy nhiên ng i dùng v n có th ti p t c phát tri n các kịch
Trang 20Các thành ph n c a Selenium RC g m:
Máy ch Selenium: Th c hi n phân tích và ch y các l nh đ c g i đ n t ng d ng
c n ki m th vƠ các thao tác nh HTTP proxy, phơn tích vƠ xác minh các thông đi p HTTP, gi a trình duy t và ng d ng c n ki m tra
Các th vi n máy khách: cung c p s hỗ tr l p trình cho phép ch y l nh Selenium
t ch ng trình Các th vi n máy khách hỗ tr cho các ngôn ng l p trình khác nhau thì khác nhau Giao di n l p trình là t p các ch c năng ch y l nh Selenium, trong mỗi giao di n có một ch c năng l p trình hỗ tr Selenium
Đặc tr ng c a Selenium WebDriver
Selenium WebDriver (hay còn gọi là Selenium 2.0) k th a và phát tri n t Selenium IDE, Selenium RC, Selenium Grid Selenium WebDriver t ng tác tr c ti p v i trình duy t mà không c n thông qua b t kỳ trung gian, không gi ng nh Selenium RC
ph thuộc vào một máy ch
Tính năng chính trong Selenium 2.0 lƠ vi c tích h p WebDriver API Ngoài vi c
gi i quy t một s h n ch trong Selenium RC API, Selenium WebDriver còn đ c thi t
k đ mang đ n một giao di n l p trình đ n gi n h n Nó cho phép 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 ki m th 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òn đ c phát tri n t t h n đ hỗ tr cho các trang Web động
do các ph n t trong một trang Web động có th thay đ i b t c lúc nào, ngay c khi trang
đó không đ c t i l i Vì v y, Selenium WebDriver đ c phát tri n đ hỗ tr quá trình
ki m th mà không c n ph i th c hi n l i khi có thay đ i x y ra[4]
So sánh Selenium WebDriver và Selenium Remote Control
S t ng tác th c t
WebDriver có tính t ng tác g n v i th c t h n vì nó th c hi n các hƠnh động tr c
ti p v i trình duy t gi ng nh các end-user trong th c t Còn Selenium RC thì không
nh v y, khi s d ng Selenium RC, cái tr c ti p t ng tác v i trình duy t là Selenium Core và vì v y s có một s tr ng h p k t qu tr v sai so v i th c t
C u trúc: C u trúc c a WebDriver đ n gi n h n Selenium RC
WebDriver ki m soát trình duy t t c p độ h đi u hành T t c nh ng gì chúng ta
c n khi s d ng WebDriver cho công vi c ki m th là t p l nh Selenium và một trình duy t đ th c hi n các l nh đó Ng c l i, Selenium RC có c u trúc ph c t p h n r t nhi u Thay vì vi c tr c ti p th c hi n và nh n ph n h i t trình duy t nh một end-user thông th ng, khi s d ng Selenium RC chúng ta ph i qua r t nhi u b c trung gian nh Hình 1.2
Trang 21Hình 1.2: Selenium RC
T c đ
T c u trúc ho t động đ c mô t nh trên, có th th y t c độ th c thi và nh n ph n
h i t trình duy t khi s d ng WebDriver s nhanh h n vì nó th c hi n mọi hƠnh động
tr c ti p v i trình duy t còn Selenium RC thì ph i thông qua tr m trung gian và m t th i gian h n cho vi c chuy n đ i nên th i gian đ nh n ph n h i t trình duy t s dƠi h n
Giao di n l p trình ng d ng API ậ Application Programming Interface
Các API mƠ Selenium WebDriver cung c p trong th vi n đ n gi n h n so v i Selenium RC Ví d nh , v i Selenium WebDriver, chúng ta chỉ có click; còn v i Selenium RC, chúng ta có click, mouseDown, or mouseDownAt H n n a, khi s d ng
Selenium RC, chúng ta xác định hƠnh động tr c r i m i đ n đ i t ng UI; ng c l i,
v i Selenium WebDriver, chúng ta xác định đ i t ng UI tr c r i m i nói đ n lƠm gì trên nó
Bên c nh đó, Selenium WebDriver không ph i không có đi m y u:
Đi m y u c a Selenium WebDriver đó lƠ mƣ ngu n c a nó không ch y trên Selenium Grid đ c Cho nên, khi mu n th c thi test case v i Selenium WebDriver trên nhi u trình duy t khác nhau, chúng ta ph i c u hình bằng tay Và các API mà Selenium WebDriver cung c p không ho t động t t v i các thành ph n Ajax cũng nh các thƠnh ph n nh hộp tho i hay c nh báo Th i gian th c thi ca ki m th ch m b i Selenium WebDriver đòi
hỏi ph i b t và t t trình duy t Web mỗi l n th c hi n ca ki m th
Trang 221.3.3 Các câu l nh s d ng trong Selenium WebDriver
a Các câu l nh trình duy t
Selenium WebDriver có một s các câu l nh thao tác v i trình duy t nh m , đóng,
l y tiêu đ c a trang Web nh d i đơy:
- Câu l nh get
M c đích: Câu l nh này s d ng đ m một trang Web m i trong trình duy t hi n t i
Cú pháp: drive.get(URL);
Trong đó: URL: LƠ url đ t i trang, nên s d ng một url đ y đ
- Câu l nh l y tiêu đ getTitle
M c đích: Câu l nh này s d ng đ l y tiêu đ c a trang Web hi n t i
Cú pháp: driver.getTitle();
- Câu l nh l y URL hi n t i getCurrentUrl
M c đích: Cơu l nh nƠy dùng đ l y URL c a trang hi n t i đƣ đ c t i trên trình duy t
Cú pháp: driver.getCurrentUrl();
- Câu l nh l y source c a trang Web getPageSource
M c đích: Cơu l nh nƠy dùng đ l y source c a trang đ c t i cu i cùng
Cú pháp: driver.getPageSource();
b Các câu l nh WebElement
Đ t ng tác v i một trang Web, c n ph i xác định vị trí c a ph n t trên trang Web, WebDriver cung c p 2 ph ng th c ắFind Element” and ắFind Elements” đ xác định vị trí c a ph n t trên trang Web
Ph ng th c ắFind Element” vƠ ắFind Elements”
S khác nhau gi a ph ng th c ắFind Element” vƠ ắFind Elements” lƠ tr v đ i
t ng WebElement, n u không ném một ngo i l và tr v một danh sách WebElement,
có th s tr v danh sách rỗng n u không c ph n t DOM phù h p v i truy v n Ph ng
th c ắFind” l y vị trí hoặc đ i t ng truy v n gọi bằng ph ng th c ắBy”
Trang 23M c đích: Tìm vị trí c a ph n t bằng name, n u tìm đ c giá trị thuộc tính name phù
h p s tr v vị trí c a ph n t , n u không có ph n t phù h p v i thuộc tính name s xu t
hi n NoSuchElementException
Cú pháp: driver.findElement(By.name(""));
- Tìm ph n t bằng Class Name (className)
M c đích: Tìm ph n t d a trên giá trị c a thuộc tính ắclass”
Một s trang Web có nhi u frames hoặc nhi u c a s Selenium WebDriver gán id cho
mỗi c a s ngay khi đ i t ng WebDriver đ c kh i t o Id nƠy đ c gọi là c a s x lý Selenium s d ng id duy nh t nƠy đ đi u khi n nhi u c a s Trong đó, mỗi c a s có
một id duy nh t, do đó Selenium có th phân bi t đ c khi nó đ c chuy n sang đi u khi n một c a s khác
D i đơy lƠ một s câu l nh switch:
Trang 24Cú pháp: driver.getWindowHandles();
- Câu l nh Switch To Window
M c đích: L nh này dùng hỗ tr di chuy n gi a các c a s khác nhau thông qua tên
c a chúng bằng cách s d ng ph ng th c ắswitchTo”
Cú pháp: driver.switchTo().window("windowName");
e Các câu l nh wait
- Câu l nh implicitlyWait
M c đích: Đ i một th i gian nh t định tr c khi ném một ngo i l khi không th tìm
th y các ph n t trên trang web
Cú pháp: drive.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
- Câu l nh pageLoadTimeout
M c đích: Thi t l p giá trị th i gian đ ch đ i cho trang Web hoàn thành
t i(loadding) tr c khi ném một lỗi
Cú pháp: driver.manage().timeouts().pageLoadTimeout(100, SECONDS);
- Câu l nh setScriptTimeout
M c đích: Thi t l p giá trị th i gian ch đ i một kịch b n(script) không đ ng bộ đ
k t thúc vi c th c hi n tr c khi ném một lỗi N u th i gian ch là tiêu c c, sau đó kịch
ki m th t động Selenium WebDriver và lí do l a chọn Selenium làm công c th c hi n
đ án
Trong ch ng 2, đ án s trình bày c th phân tích thi t k website và xây d ng
ng d ng Web đ th c hi n ki m th
Trang 25CH NG 2: PHÂN TÍCH THI T K WEBSITE BÁN HÀNG
Trang 262.1 Xác đ nh yêu c u h th ng
2.1.1 Xác đ nh và mô t các tác nhân
H th ng bán hàng th i trang online Fashionista bao g m các tác nhân:
Khách hàng (Customer): tìm ki m s n phẩm, xem thông tin s n phẩm, xem danh sách s n phẩm s n phẩm theo th lo i, thêm s n phẩm vào giỏ hàng, xem giỏ hàng, thay đ i chi ti t giỏ hàng
Thành viên (Member): nh ng khách hƠng có thông tin đ c l u trong c s d li u
U1: Login: tác nhơn đăng nh p vào h th ng
U2: Logout: tác nhơn đăng xu t khỏi h th ng
U3: Register: ng i dùng đăng ký tƠi kho n truy c p h th ng
Trang 27 U4: Search product: tác nhân tìm ki m theo tên s n phẩm
U5: View product detail: tác nhân xem thông tin chi ti t c a s n phẩm
U6: Add product to carts: tác nhân thêm s n phẩm vào giỏ hàng
U7: View carts: tác nhân xem chi ti t giỏ hàng
U8: Edit Carts: tác nhơn thay đ i chi ti t giỏ hàng
U9: Order: thƠnh viên đặt mua hàng trong giỏ hàng
2.1.3 Xây d ng k ch b n và phác th o giao di n
Đăng nh p
Tác nhân chính Thành viên
Ti n đi u ki n ThƠnh viên đƣ có tƠi kho n đ đăng nh p h th ng
Đ m b o thành công ThƠnh viên đăng nh p đ c vào h th ng
Đ m b o t i thi u Tr l i mƠn hình đăng nh p đ thành viên có th đăng nh p l i Kích ho t Thành viên chọn ch c năng đăng nh p
Chuỗi s ki n chính
1 Thành viên kích ho t form đăng nh p
2 H th ng hi n thị form đăng nh p g m các thông tin: tên tài kho n, m t khẩu, một link ắForgot Your Password?” đ l y l i m t khẩu và một nút ắLogin”
3 Thành viên nh p tài kho n, m t khẩu vƠ click vƠo nút ắLogin”
4 H th ng ki m tra tính h p l c a tài kho n và m t khẩu
5 H th ng hi n thị giao di n chính c a h th ng
Ngo i l :
2.1.Thành viên nh p tài kho n và m t khẩu sai
2.1.1 H th ng thông báo lỗi và yêu c u nh p l i
2.1.2 Thành viên nh p l i thông tin tài kho n và th c hi n các b c sau
2.2 Tài kho n thƠnh viên đăng nh p không t n t i
2.2.1 H th ng thông báo lỗi và yêu c u ng i dùng nh p l i
2.2.2 Thành viên nh p l i thông tin tài kho n và th c hi n các b c sau
B ng 2.1 K ch b n use case đăng nh p
Đăng ký tƠi kho n
Tác nhân chính Ng i dùng
Trang 28Ti n đi u ki n Ng i dùng kích ho t giao di n c a h th ng
Đ m b o thành công Ng i dùng đăng ký tƠi kho n thành công
Đ m b o t i thi u Tr l i mƠn hình đăng ký tƠi kho n đ ng i dùng có th t o l i
tài kho n
Kích ho t Ng i dùng chọn ch c năng đăng ký tƠi kho n
Chuỗi s ki n chính
1 Ng i dùng kích ho t form đăng ký tƠi kho n
2 H th ng hi n thị form đăng ký tƠi kho n g m các thông tin nh : tên tài kho n,
m t khẩu, xác nh n m t khẩu, tên ng i dùng, địa chỉ, gi i tính, email, s đi n tho i và một nút ắRegister”
3 Khách hàng nh p thông tin tài kho n g m: tên tài kho n, m t khẩu, xác nh n m t
khẩu, tên ng i dùng, địa chỉ, gi i tính, email, s đi n tho i và click vào nút ắRegister”
4 H th ng ki m tra tính h p l c a các thông tin, l u thông tin ng i dùng vƠo c
s d li u
5 H th ng hi n thị thông báo đăng ký thƠnh công
Ngo i l :
3.1 H th ng thông báo tài kho n đƣ t n t i
3.1.1 H th ng yêu c u nh p l i tên tài kho n
3.1.2 Ng i dùng nh p l i tên tài kho n và ti p t c các b c sau
3.2 H th ng thông báo thông tin ng i dùng không h p l
3.2.1 H th ng yêu c u nh p l i thông tin tài kho n
3.2.2 Ng i dùng nh p l i thông tin tài kho n và ti p t c các b c sau
B ng 2.2 K ch b n use case đăng ký tƠi kho n
Trang 29 Xem thông tin s n ph m
o Xem thông tin s n ph m t form tìm ki m
Tác nhân chính Khách hàng
Ti n đi u ki n Khách hƠng tìm ki m s n phẩm thƠnh công công
Đ m b o thành công Khách hàng xem thông tin s n phẩm thành công
5 Khách hàng click chọn một s n phẩm trong danh s n phẩm s n phẩm v a tìm ki m
6 H th ng hi n thị thông tin chi ti t s n phẩm đƣ chọn bao g m: tên s n phẩm, th lo i, giá s n phẩm, tr ng thái s n phẩm, một ô nh p s l ng và một nút ắAdd to carts” Ngo i l :
3.1 H th ng thông báo không có s n phẩm v i tên khách hàng yêu c u tìm ki m
Trang 303.1.1 H th ng yêu c u Khách hàng nh p l i tên s n phẩm
3.1.2 Khách hàng nh p l i tên s n phẩm và ti p t c các b c sau
B ng 2.4 K ch b n use case xem thông tin s n ph m t form tìm ki m
o Xem thông tin s n ph m t form Xem chi ti t gi hàng
Tác nhân chính Khách hàng
Ti n đi u ki n Khách hàng thêm s n phẩm vào giỏ hàng thành công
Đ m b o thành công Khách hàng xem thông tin s n phẩm thƠnh công
Đ m b o t i thi u Tr l i giao di n xem chi ti t giỏ hàng
Kích ho t Khách hàng chọn s n phẩm c n xem thông tin
Chuỗi s ki n chính
1 Khách hàng kích ho t form Xem chi ti t giỏ hàng
2 H th ng hi n thị danh s n phẩm s n phẩm g m: hình nh, tên s n phẩm, giá s n
phẩm, s l ng s n phẩm, t ng ti n, một link Delete s n phẩm, một nút ắContinue shopping”, một nút ắUpdate shopping carts” vƠ một nút ắProceed to checkout”
3 Khách hàng click vào nh c a một s n phẩm trong danh s n phẩm c a giỏ hàng
4 H th ng hi n thị thông tin chi ti t s n phẩm đƣ chọn bao g m: tên s n phẩm, th lo i, giá s n phẩm, tr ng thái s n phẩm, một ô nh p s l ng và một nút ắAdd to carts”
B ng 2.5 K ch b n use case xem thông tin s n ph m t form xem chi ti t gi hàng
Thêm s n ph m vào gi hàng
Tác nhân chính Khách hàng
Ti n đi u ki n Khách hàng xem thông tin s n phẩm thành công
Đ m b o thành công H th ng thêm thành công s n phẩm vào giỏ hàng c a khách
hàng
Đ m b o t i thi u Tr l i màn hình xem thông tin s n phẩm
Kích ho t Khách hàng chọn ắAdd to Carts” t Form Xem thông tin s n
phẩm
Chuỗi s ki n chính:
1 Khách hàng kích ho t form Xem thông tin s n phẩm
Trang 312 H th ng hi n thị form Xem thông tin s n phẩm bao g m các thông tin: tên s n
phẩm, th lo i, giá s n phẩm, tr ng thái s n phẩm, một ô nh p s l ng và một nút ắAdd to carts”
3 Khách hàng nh p s l ng s n phẩm và chọn ắAdd to carts”
4 H th ng thêm s n phẩm v i s l ng khách hƠng đƣ chọn vào giỏ hàng
5 H th ng hi n thị giao di n xem chi ti t giỏ hàng
Ngo i l :
3.1 S l ng s n phẩm khách hàng nh p không h p l
3.1.1 H th ng yêu c u khách hàng nh p l i s l ng s n phẩm
3.1.2 Khách hàng nh p l i thông tin s n phẩm và ti p t c th c hi n các b c sau
B ng 2.6 K ch b n use case Thêm s n ph m vào gi hàng
S a s l ng s n ph m
Tác nhân chính Khách hƠng
Ti n đi u ki n Khách hƠng xem chi ti t giỏ hƠng
Đ m b o thành công S l ng s n phẩm trong giỏ hàng đ c c p nh t thành công
Đ m b o t i thi u Tr l i màn hình xem chi ti t giỏ hàng
Kích ho t Khách hƠng chọn nút ắUpdate shopping carts” trên Form Xem
chi ti t giỏ hƠng
Chuỗi s ki n chính:
1 Khách hƠng kích ho t form Xem chi ti t giỏ hƠng
2 H th ng hi n thị danh s n phẩm s n phẩm g m: hình nh, tên s n phẩm, giá s n
phẩm, s l ng s n phẩm, t ng ti n, một link Delete s n phẩm, một nút ắContinue shopping”, một nút ắUpdate shopping carts” vƠ một nút ắProceed to checkout”
3 Khách hƠng s a s l ng s n phẩm t ng ng v i tên s n phẩm mu n s a s
l ng, vƠ click chọn ắUpdate shopping carts”
4 H th ng ki m tra s l ng s n phẩm, c p nh t l i s l ng s n phẩm trong giỏ hàng và hi n thị l i giao di n Xem chi ti t giỏ hàng
Trang 32 Xóa s n ph m trong gi
Tác nhân chính Khách hƠng
Ti n đi u ki n Khách hƠng xem chi ti t giỏ hƠng
Đ m b o thành công S n phẩm đ c xóa khỏi giỏ hƠng
Đ m b o t i thi u Tr l i màn hình xem chi ti t giỏ hàng
Kích ho t Khách hƠng chọn ắDelete” trên Form Xem chi ti t giỏ hƠng
Chuỗi s ki n chính:
1 Khách hƠng kích ho t form Xem chi ti t giỏ hƠng
2 H th ng hi n thị danh s n phẩm s n phẩm g m: hình nh, tên s n phẩm, giá s n
phẩm, s l ng s n phẩm, t ng ti n, một link Delete s n phẩm, một nút ắContinue shopping”, một nút ắUpdate shopping carts” vƠ một nút ắProceed to checkout”
3 Khách hƠng click chọn ắDelete” t ng ng v i sách c n xóa
4 H th ng xóa s n phẩm trong giỏ hàng
5 H th ng hi n thị l i giao di n xem chi ti t giỏ hàng
B ng 2.8 K ch b n use case xóa s n ph m trong gi hàng
Đặt hàng
Tác nhân chính Thành viên
Ti n đi u ki n Khách hƠng đƣ đăng nh p thành và xem giỏ hàng thành công
Đ m b o thành công ThƠnh viên đặt hàng thành công
Đ m b o t i thi u Tr l i màn hình xem chi ti t giỏ hàng
Kích ho t Khách hàng chọn ắProceed to checkout” t Form Xem chi ti t
giỏ hàng
Chuỗi s ki n chính
1 Khách hàng kích ho t form Xem chi ti t giỏ hàng
2 H th ng hi n thị danh s n phẩm s n phẩm g m: hình nh, tên s n phẩm, giá s n
phẩm, s l ng s n phẩm, t ng ti n theo t ng s n phẩm, một link Delete s n
phẩm, một nút ắContinue shopping”, một nút ắUpdate shopping carts”, t ng s s n
phẩm, t ng ti n và một nút ắProceed to checkout”
3 Thành viên click chọn ắProceed to checkout”
Trang 334 H th ng hi n thị thông tin hóa đ n g m có: thông tin c a danh sách các s n phẩm thành viên mu n đặt hàng; form nh p thông tin giao hàng bao g m: tên ng i
nh n, địa chỉ ng i nh n, địa chỉ email, s đi n tho i và tùy chọn ắOrder”, ắCancel”
5 Khách hàng nh p tên ng i nh n, địa chỉ ng i nh n, địa chỉ email, s đi n tho i
và click chọn ắOrder”
6 H th ng ki m tra các thông tin: s n phẩm đặt hƠng, thông tin ng i nh n hàng và
c p nh t thông tin đặt hƠng vƠo c s d li u
7 H th ng hi n thị form hóa đ n g m các thông tin: danh sách s n phẩm ng i dùng đặt mua, t ng ti n, thông tin giao hàng g m: tên ng i nh n, địa chỉ ng i
nh n, gi i tính, email, s đi n tho i và một nút ắContinue shopping”
Ngo i l :
5.1 H th ng thông báo s l ng s n phẩm thƠnh viên đặt mua không h p l
5.1.1 H th ng yêu c u nh p l i s l ng s n phẩm
5.1.2 Thành viên nh p l i s l ng s n phẩm và ti p t c các b c sau
5.1 H th ng thông báo thông tin ng i nh n không h p l
5.1.1 H th ng yêu c u nh p l i thông tin ng i nh n
5.1.2 Thành viên nh p l i s l ng s n phẩm và ti p t c các b c sau
B ng 2.9 K ch b n use case Đặt hàng 2.2 Phân tích và thi t k
nh ng ng i dùng ch a có tƠi kho n đ đăng nh p vào h th ng thì ng i dùng có th đăng ký tƠi kho n m i
b Trích các l p ậ Trích danh t
Khách hàng, Giỏ hàng, S n phẩm, S n phẩm, Hóa đ n, Th lo i, H th ng, Thành viên, ng i dùng
Trích l p đi u khi n
Mỗi module chính có một l p đi u khi n:
Trang 34 Giao di n đăng nh p: Login.jsp
Giao di n đăng ký tƠi kho n: Register.jsp
Giao di n xem chi ti t s n phẩm: Product_view.jsp
Giao di n xem danh s n phẩm s n phẩm theo th lo i: CategoryGrid.jsp
Giao di n đặt hàng: Checkout.jsp
Giao di n yêu c u l y l i m t khẩu: PasswordRetrieval.jsp
Giao di n xem giỏ hàng: ShoppingCart.jsp
Giao di n xem k t qu tìm ki m theo tên s n phẩm: ViewSearch.jsp
2.2.2 Thi t k ki n trúc
a L a ch n công ngh s d ng cho h th ng
H th ng: S d ng mô hình MVC2, công ngh JSP và Servlet
Giao di n Web: s d ng HTML và Javascript
Database: Microsoft SQL Server
Server: Apache Tomcat
Trang 352.2.3 Thi t k chi ti t
a Bi u đ l p thi t k
Hình 2.2: Bi u đ l p thi t k
Trong đó:
Customer: l p ch a các thông tin cá nhân và thông tin tài kho n c a thành viên
Vendor: l p ch a thông tin nhà cung c p s n phẩm
Categories: l p ch a thông tin th lo i c a s n phẩm
Trang 36 CartsDetail: l p chi ti t giỏ hàng ch a s n phẩm và s l ng s n phẩm trong giỏ hàng Quan h gi a CartsDetail và Products là quan h k t h p Trong đó, products
là thành ph n c a CartsDetail
Carts: l p liên k t ch a danh sách thông tin chi ti t s n phẩm và th i gian thêm vào
giỏ hàng Quan h gi a CartsDetail và Carts là quan h h p thành
Recipient: l p ng i nh n ch a thông tin ng i nh n hàng
Bill: l p hóa đ n ch a các thông tin đặt hàng Quan h gi a Customer, Carts v i Bill là quan h k t h p Trong đó, customer vƠ carts lƠ thƠnh ph n c a Bill Quan
h gi a Recipient v i Bill là quan h h p thƠnh, khi đ i t ng Bill đ c t o ra thì
đ i t ng ng i nh n cũng đ ng th i đ c t o ra
b Bi u đ tu n t
Ch c năng đăng ký tƠi kho n
Hình 2.4: Bi u đ tu n t ch c năng đăng ký tƠi kho n
Khi ng i dùng chọn ch c năng đăng ký trên giao di n chính, h th ng s gọi hi n thị giao di n đăng ký Sau khi ng i dùng nh p các thông tin và chọn đăng ký, l p RegisterAction s nh n yêu c u và g i t i l p CustomerDAO ki m tra và x lý thông qua
l i gọi hàm trong l p nghi p v CustomerBO N u thông tin ng i dùng h p l , h th ng
s thêm thông tin vƠo c s d li u c a h th ng và l p RegisterAction g i l i thông báo thƠnh công Ng c l i, l p RegisterAction s g i l i một thông báo lỗi trên giao di n đăng ký
Trang 37 Ch c năng thêm s n phẩm vào giỏ hàng
Hình 2.5: Bi u đ tu n t ch c năng thêm s n ph m vào gi hàng
Đ có th thêm s n phẩm vào giỏ hƠng, tr c tiên khách hàng c n ph i xem thông tin chi ti t c a s n phẩm đó T i giao di n chính, khi khách hàng chọn xem thông tin một
s n phẩm, l p nghi p v ProductsBO s gọi đ n hàm tìm ki m s n phẩm trong l p ProductsDAO Sau khi tìm ki m, l p ProductsDAO s g i tr v thông tin chi ti t c a s n
phẩm đ hi n thị T i giao di n xem thông tin s n phẩm, khách hàng nh p s l ng và
chọn thêm vào giỏ hàng L p CartsAction s nh n yêu c u và gọi đ n l p nghi p v CartsBO yêu c u l p CartsDAO ki m tra và x lý N u s l ng s n phẩm là h p l , CartsDAO s l u l i thông tin chi ti t c a s n phẩm vào giỏ hƠng Ng c l i, n u s
l ng s n phẩm không h p l , h th ng s g i l i một thông báo lỗi t i giao di n xem thông tin s n phẩm