1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đồ án tốt nghiệp đại học nghiên cứu seleninum webdriver và áp dụng trong kiểm thử ứng dụng WED

74 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

KHOA CÔNG NGH THÔNG TIN I

Trang 2

L 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 3

NH 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 4

NH 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 5

M 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 6

2.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 7

DANH 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 8

DANH 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 9

DANH 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 10

L 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 11

script 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 15

tiê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 17

cô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 20

Cá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 21

Hì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 22

1.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 23

M 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 24

Cú 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 25

CH NG 2: PHÂN TÍCH THI T K WEBSITE BÁN HÀNG

Trang 26

2.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 28

Ti 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 30

3.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 31

2 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 33

4 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 35

2.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

Ngày đăng: 19/08/2022, 16:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w