Tải bản đầy đủ (.pdf) (66 trang)

Xây dựng hệ thống phân tích hình ảnh trên ROS cho robot hướng dẫn viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.89 MB, 66 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN KHẮC HƯNG

XÂY DỰNG HỆ THỐNG ĐỒNG BỘ SẢN PHẨM TRÊN
CÁC TRANG THƯƠNG MẠI ĐIỆN TỬ BẰNG AUTOIT
VÀ SELENIUM
Ngành: Công Nghệ Thơng Tin
Chun Ngành: Mạng máy tính và truyền thơng dữ liệu
Mã Số: 18025066

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
Ts. Trần Trúc Mai

HÀ NỘI - NĂM 2020


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN KHẮC HƯNG

XÂY DỰNG HỆ THỐNG ĐỒNG BỘ SẢN PHẨM TRÊN
CÁC TRANG THƯƠNG MẠI ĐIỆN TỬ BẰNG AUTOIT
VÀ SELENIUM

Ngành: Công Nghệ Thơng Tin
Chun ngành: Mạng máy tính và truyền thơng dữ liệu


Mã số: 18025066

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. TRẦN TRÚC MAI

Hà Nội – 2020


LỜI CẢM ƠN

Trước tiên, tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy TS. Trần Trúc Mai,
người thầy đã tận tâm, tận lực hướng dẫn, định hướng phương pháp nghiên cứu
khoa học cho tôi, đồng thời cung cấp nhiều tài liệu và tạo điều kiện thuận lợi trong
suốt q trình học tập và nghiên cứu để tơi có thể hồn thành luận văn này.
Tơi cũng xin được gửi lời cảm ơn đến các thầy, cô trong bộ môn Mạng máy
tính và truyền thơng dữ liệu và Khoa Cơng nghệ thông tin, Trường Đại học Công
nghệ - Đại học Quốc gia Hà Nội đã nhiệt tình giảng dạy và truyền đạt những kiến
thức, kinh nghiệm quý giá trong suốt thời gian tôi học tập tại trường.
Tôi xin gửi lời cảm ơn đến các bạn học viên khóa K25, những người đồng
hành trong suốt khóa học và có nhiều góp ý bổ ích cho tơi. Cảm ơn gia đình, bạn
bè đã quan tâm và động viên giúp tơi có nghị lực phấn đấu để hoàn thành tốt luận
văn này.
Do kiến thức và thời gian có hạn nên luận văn chắc chắn khơng tránh khỏi
những thiếu sót nhất định.
Tơi xin chân thành cảm ơn!
Hà Nội, tháng 09 năm 2020
Học viên thực hiện

Nguyễn Khắc Hưng



LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Xây dựng hệ thống đồng bộ sản phẩm trên
các trang thương mại điện tử bằng AutoIT và Selenium” được hoàn thành
bằng kiến thức tơi đã tiếp thu được trong suốt q trình rèn luyện, học tập của tôi
dưới sự hướng dẫn của TS. Trần Trúc Mai.
Trong toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày
đều là những tìm hiểu và nghiên cứu của cá nhân tơi hoặc là trích dẫn các nguồn
tài liệu đều được đưa ra ở phần tài liệu tham khảo.
Tôi xin cam đoan những lời trên là sự thật và chịu mọi trách nhiệm trước
thầy cô và hội đồng bảo vệ luận văn thạc sĩ.

Hà Nội, tháng 09 năm 2020
Học viên thực hiện

Nguyễn Khắc Hưng


MỤC LỤC
LỜI CẢM ƠN ....................................................................................................... ii
LỜI CAM ĐOAN................................................................................................. iii
MỤC LỤC ............................................................................................................. 1
DANH MỤC BẢNG BIỂU .................................................................................. 3
DANH MỤC HÌNH VẼ, ĐỒ THỊ ........................................................................ 4
DANH MỤC CÁC TỪ VIẾT TẮT ...................................................................... 5
PHẦN MỞ ĐẦU ................................................................................................... 6
CHƯƠNG 1. ĐẶT VẤN ĐỀ ................................................................................ 8
1.1. Thương mại điện tử là gì? ............................................................................. 8
1.2. Thực trạng thương mại điện tử trên thế giới ............................................... 11

1.3. Tình hình thương mại điện tử ở Việt Nam.................................................. 11
CHƯƠNG 2. CÁC NỀN TẢNG HỖ TRỢ THỰC THI TÁC VỤ TỰ ĐỘNG .. 13
2.1. AutoIT .......................................................................................................... 13
Giới thiệu .......................................................................................... 13
Điểm mạnh của AUTOIT ................................................................. 13
Điểm yếu của AUTOIT .................................................................... 14
2.2. Selenium ....................................................................................................... 19
........................................................................................................ 19
2.2.1. Giới thiệu ............................................................................................ 19
2.2.2. Thành phần của Selenium ................................................................... 19
2.2.3. Chi tiết về Selenium WebDriver......................................................... 21
2.3 Tại sao không sử dụng những công nghệ khác? ........................................... 23
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG, CÀI ĐẶT VÀ ĐÁNH GIÁ ................. 25
3.1. Yêu cầu ......................................................................................................... 25
3.2. Phân tích thiết kế .......................................................................................... 25
3.2.1. Người dùng của hệ thống .................................................................... 25
3.2.2. Kiến trúc của hệ thống ........................................................................ 26
3.2.3. Bộ tạo/sửa các hành động mẫu ........................................................... 27
Nguyễn Khắc Hưng

1Đại Học Công Nghệ


3.2.3.1 Kiến trúc hệ thống ......................................................................... 27
3.2.3.2 Định nghĩa hành động, bước hành động........................................ 28
3.2.3.3 Biểu đồ Use case ............................................................................ 29
3.2.3.4 Thiết kế cơ sở dữ liệu .................................................................... 30
3.2.3.5 Thiết kế các API ............................................................................ 32
3.2.3.6 Một vài thuật toán. ......................................................................... 33
3.2.4 Bộ thực thi các hành động ................................................................... 38

3.2.4.1. Kiến trúc hệ thống ........................................................................ 38
3.2.4.2 Biểu đồ Use case ............................................................................ 39
3.2.4.3 Thiết kế cơ sở dữ liệu .................................................................... 39
3.2.4.4 Thiết kế các API ............................................................................ 41
3.2.5. Trang web dành cho người dùng ........................................................ 41
3.2.5.1. Kiến trúc hệ thống ........................................................................ 41
3.2.5.2 Biểu đồ Use case ............................................................................ 42
3.2.5.3 Thiết kế cơ sở dữ liệu .................................................................... 45
3.2.5.4 Thiết kế các API ............................................................................ 47
3.2.5.5 Một vài thuật toán .......................................................................... 48
3.3. Kết quả xây dựng ......................................................................................... 50
3.3.1. Các giao diện web dành cho người bán hàng ..................................... 50
3.3.2. Các giao diện phía server .................................................................... 54
3.4. Cài đặt và thử nghiệm .................................................................................. 56
3.4.1. Yêu cầu hệ thống .............................................................................. 56
3.4.2. Q trình tự động hóa các thao tác................................................... 57
3.5. Kết quả ......................................................................................................... 57
3.6. Định hướng phát triển trong tương lai ......................................................... 58
3.6.1. Xây dựng trang tổng quát cho admin ............................................... 58
3.6.2. Hỗ trợ thêm các hành động .............................................................. 58
3.6.3. Phát triển theo mơ hình Server farm ................................................ 58
CHƯƠNG 4. KẾT LUẬN ................................................................................... 60
TÀI LIỆU THAM KHẢO ................................................................................... 61
Nguyễn Khắc Hưng

2Đại Học Công Nghệ


DANH MỤC BẢNG BIỂU
Bảng 2-1: Các hàm biến môi trường trong AUTOIT ......................................... 15

Bảng 2-2: Các hàm phát âm thanh ...................................................................... 15
Bảng 2-3: Các hàm xử lý thư mục ...................................................................... 16
Bảng 2-4: Các hàm tiện ích bàn phím ................................................................. 16
Bảng 2-5: Các hàm toán học ............................................................................... 17
Bảng 2-6: Các hàm xử lý chuỗi.......................................................................... 17
Bảng 2-7: Các hàm xử lý hộp thoại .................................................................... 17
Bảng 2-8: Các hàm xử lý tiến trình ..................................................................... 18
Bảng 2-9: Một số hàm khác của AutoIT ............................................................. 18
Bảng 3-1: Danh sách các hành động chủ yếu khi đăng sản phẩm ...................... 29
Bảng 3-2: Danh sách các API module tạo sửa hành động mẫu .......................... 33
Bảng 3-3: Các hàm thủ tục mà hệ thống hỗ trợ gọi AutoIT ............................... 34
Bảng 3-4: Các hàm thủ tục mà hệ thống hỗ trợ gọi Selenium ............................ 35
Bảng 3-5: Danh sách các API module thực thi hành động. ................................ 41
Bảng 3-6: Danh sách các API module web quản trị ........................................... 48

Nguyễn Khắc Hưng

3Đại Học Công Nghệ


DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1-1: Khái niệm thương mại điện tử (nguồn internet) ................................... 8
Hình 1-5: Giá trị thị trường TMĐT liên tục tăng trưởng qua các năm ............. 11
Hình 1-8: Doanh thu TMĐT B2C Việt Nam năm 2015 – 2019 (tỷ USD) ........... 12
Hình 1-9: Quy mơ thị trường thương mại điện tử B2C Việt Nam năm 2018..... 12
Hình 2-1: Nền tảng hỗ trợ tự động GUI AutoIT ................................................ 13
Hình 2-2: Ví dụ về script của AutoIT ................................................................ 18
Hình 2-3: Các thành phần chính của Selenium .................................................. 19
Hình 2-4: Kiến trúc của Selenium WebDriver................................................... 21
Hình 2-5: Selenium webdriver tương thích với nhiều trình duyệt ..................... 23

Hình 3-1: Kiến trúc hệ thống ............................................................................. 26
Hình 3-2: Kiến trúc hệ thống module tạo sửa hành động mẫu .......................... 27
Hình 3-3: Lược đồ use case của phần tạo sửa hành động .................................. 29
Hình 3-4: Lược đồ quan hệ thực thể của phần tạo sửa hành động..................... 31
Hình 3-5: Import thư viện hỗ trợ AutoIT ........................................................... 35
Hình 3-6: Cài đặt một hàm AutoIT với ngơn ngữ C# ........................................ 36
Hình 3-7: Kiến trúc hệ thống phần tạo sửa hành động mẫu .............................. 38
Hình 3-8: Quy trình tạo hành động tác động lên sàn TMĐT ............................. 39
Hình 3-9: Lược đồ use case của phần thực thi tự động...................................... 39
Hình 3-10: Lược đồ thực thể quan hệ của phần tạo thực thi hành động ............ 40
Hình 3-11: Sơ đồ khối module web dành cho người dùng ................................ 41
Hình 3-12: Biểu đồ Usecase của người dùng cuối............................................. 43
Hình 3-13: Quy trình đăng sản phẩm đồng bộ ................................................... 43
Hình 3-14: Lược đồ quan hệ thực thể của phần web quản lý ............................ 45
Hình 3-15: Giao diện trang thống kê.................................................................. 50
Hình 3-16: Giao diện trang danh sách sản phẩm ............................................... 51
Hình 3-17: Giao diện hộp thoại thêm sản phẩm mới .......................................... 51
Hình 3-18: Giao diện trang quản lý tài khoản.................................................... 52
Hình 3-19: Giao diện trang quản lý danh mục ................................................... 53
Hình 3-20: Giao diện trang giá trị mặc định ...................................................... 54
Hình 3-21: Giao diện ứng dụng các hành động mẫu ......................................... 55
Hình 3-22: Giao diện ứng dụng từng bước của hành động................................ 55
Hình 3-23: Giao diện ứng dụng khi chạy thêm sản phẩm ................................. 56
Hình 3-24: Mơ hình Server Farm ....................................................................... 59

Nguyễn Khắc Hưng

4Đại Học Công Nghệ



DANH MỤC CÁC TỪ VIẾT TẮT
TMĐT

Thương mại điện tử

Script

Mã kịch bản thự thi

B2B

Business to Business

B2C

Business to Customer

C2C

Customer to Customer

G2G

Government to Government

GUI

Graphic User Interface

IDE


Integrated Development Environment

WTO

World Trade Organization

Nguyễn Khắc Hưng

5Đại Học Công Nghệ


PHẦN MỞ ĐẦU
Lý do chọn đề tài
Cùng với sự phát triển của thiết bị di động và mạng máy tính. Thương mại
điện tử, mua sắm trực tuyến càng ngày càng phát triển mạnh mẽ. Theo báo cáo
của statistics thì doanh số bán lẻ trên các sàn thương mại điện tử năm 2019 đạt
mức 3.535 tỷ Đô la Mỹ. Thị trường thương mại điện tử Việt Nam cũng nằm trong
top các thị trường phát triển nhanh nhất thế giới với tỉ lệ tăng trưởng đạt gần 30%
trong năm 2019.
Hiện nay có rất nhiều người tham gia bán hàng trên các sàn thương mại
điện tử. Trong số đó thì lại có khơng ít người tham gia vào nhiều hơn một sàn để
có thể bán được nhiều hàng hóa hơn, phủ kênh sản phẩm tốt hơn. Việc phải đăng
cùng một sản phẩm lên nhiều sàn là việc khá tốn thời gian, công sức lại có thể
nhầm lẫn về số lượng hàng tốn, giá bán, hoặc thời điểm bán cho mỗi đơn hàng.
Vì vậy nếu xây dựng được một công cụ hỗ trợ đăng sản phẩm lên đồng thời nhiều
sàn TMĐT thì sẽ hỗ trợ rất tốt cho người bán hàng.
Qua tìm hiểu và phân tích một số giải pháp trước đây, tác giả thấy có những
bài nghiên cứu trước sử dụng phương pháp đăng sản phẩm qua kết nối bằng API.
Tuy nhiên phương pháp này không triệt để nên qua một thời gian nghiên cứu tác

giả đã tìm ra một giải pháp triệt để hơn. Đó là sử dụng các nền tảng hỗ trợ thực
thi tác vụ động là AutoIT và Selenium để giả lập hành vi của người dùng. Thay
vì một người dùng thao tác trên nhiều sàn, người dùng chỉ cần nhập sản phẩm 1
lần. Hệ thống sẽ sinh ra các mã kịch bản để các AutoBot đăng sản phẩm lên các
sàn khác nhau.
Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu
Mục đích của luận văn:
Nghiên cứu đề tài này nhằm mục đích tìm ra phương pháp đồng bộ sản
phẩm lên các sàn thương mại điện tử mà giải quyết triệt để được vấn đề mà
hướng giải quyết trước đây chưa làm được: Hỗ trợ toàn diện tất cả các sàn. Khi

Nguyễn Khắc Hưng

6Đại Học Công Nghệ


các sàn có sự thay đổi thì khơng cần người có kỹ năng lập trình vẫn có thể cập
nhật để hoạt động hoạt động ổn định.
Đối tượng và phạm vi áp dụng:
Đối tượng áp dụng là việc đăng sản phẩm lên nhiều sàn TMĐT mà không
sử dụng API.
Phạm vi áp dụng là tất cả các sàn phổ biến ở Việt Nam
Để đặt được mục tiêu trên đề tài tập trung tìm hiểu các nội dung sau:
- Tìm hiểu về nền tảng AutoIT và Selenium, biết được điểm mạnh, điểm yếu
của từng nền tảng để có cách giải quyết phù hợp
- Phân tích về luồng khi đăng sản phẩm lên các sàn
- Xây dựng các đầy đủ kiến trúc hệ thống, mơ hình client server để giải quyết
u cầu bài tốn.
Nội dung luận văn
Luận văn này gồm 4 chương, cụ thể như sau:

Chương 1: ĐẶT VẤN ĐỀ
Giới thiệu về thương mại điện tử, về thực trạng thương mại điện tử hiện
này trên thế giới và các trang thương mại điện tử phổ biến nhất ở Việt Nam hiện
nay.
Chương 2: CÁC NỀN TẢNG HỖ TRỢ THỰC THI TÁC VỤ TỰ ĐỘNG
Các nền tảng hỗ trợ thực thi tác vụ tự động. Một là AutoIT - Nền tảng hỗ
trợ tự động hóa các thao tác GUI và thao tác người dùng. Hai là Selenium
WebDriver để tương tác với web.
Chương 3: XÂY DỰNG HỆ THỐNG, CÀI ĐẶT VÀ ĐÁNH GIÁ
Phân tích yêu cầu, thiết kế luồng, giao diện của hệ thống
Cái đặt và đưa ra kết quả thực nghiệm

Nguyễn Khắc Hưng

7Đại Học Công Nghệ


CHƯƠNG 1. ĐẶT VẤN ĐỀ
1.1. Thương mại điện tử là gì?
Định nghĩa của WTO “Thương mại điện tử bao gồm việc sản xuất, quảng
cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên mạng
Internet, nhưng được giao nhận một cách hữu hình, cả các sản phẩm giao nhận
cũng như những thơng tin số hố thơng qua mạng Internet” [1].
Ủy ban châu Âu định nghĩa:
Thương mại điện tử có thể định nghĩa chung là sự mua bán, trao đổi hàng
hóa hay dịch vụ giữa các doanh nghiệp, gia đình, cá nhân, tổ chức tư nhân bằng
các giao dịch điện tử thông qua mạng Internet hay các mạng máy tính trung gian
(thơng tin liên lạc trực tuyến). Thật ngữ bao gồm việc đặt hàng và dịch thông qua
mạng máy tính, nhưng thanh tốn và q trình vận chuyển hàng hay dịch vụ cuối
cùng có thể thực hiện trực tuyến hoặc bằng phương pháp thủ công [2].

Hiểu một cách đơn giản thì thương mại điện tử chính là các hoạt động kinh
doanh, sản xuất, giao dịch, mua bán, thanh toán, đặt hàng, quảng cáo và kể cả giao
hàng sử dụng các phương tiện công nghệ điện tử chủ yếu là qua máy tính và điện
thoại có kết nối internet.

Hình 1-1: Khái niệm thương mại điện tử (nguồn internet)

Nguyễn Khắc Hưng

Đại Học Công Nghệ
8


Thế giới ngày này phát triển một cách bùng nổ về mạng và điện tốn đám
mây, mọi người có thể kết nối với nhau một cách nhanh chóng và dễ dàng hơn
thơng qua các loại hình dich vụ trực tuyến. Thương mại điện tử có khả năng giúp
ích cho nhiều khách hàng sẽ mua được sản phẩm rẻ hơn, thuận lợi hơn, nhanh
hơn, hiệu quả hơn cịn doanh nghiệp có thể đưa sản phẩm của mình đến với thị
trường một cách nhanh nhất, bán hàng thuận lợi hơn.
Thương mại điện tử diễn ra trên các phương tiện điện tử như bảng biểu,
trang web hay ứng dụng điện thoại.
Thương mại điện tử có phụ thuộc vào sự phát triển của cơng nghệ như công
nghệ mạng, công nghệ quản trị cơ sở dữ liệu, công nghệ web, công nghệ di động
và càng ngày càng khơng phụ thuộc trình độ của người sử dụng.
Các bên tiến hanh giao dịch không nhất thiết phải gặp gỡ trực tiếp với nhau.
Càng ngày thì các trang thương mại điện tử càng có nhiều dữ liệu từ người
dùng và thông minh hơn, hiểu người mua cần mua gì hơn.

Khơng cần phải đầu tư với số vốn lớn
Với các doanh nghiệp vừa và nhỏ, chỉ cần họ có 1 chiếc smartphone là cũng

có thể bán hàng. Đặc biệt với sự phát triển của mạng xã hội và công nghệ truyền
hình trực tuyến, ai cũng có thể “Live stream” và bán bất cứ sản phẩm nào mình
có.
Giảm chi phí mặt bằng kinh doanh, tiếp thị
Thương mại điện tử giúp ích rất nhiều trong việc giảm chi phí thuê mặt
bằng. Nếu trước đây để bản được hàng người bán cần thuê “mặt tiền” để khách
hàng qua lại nhìn thấy và mua sản phẩm thì ngày nay, ngay cả khi bạn ở sâu trong
ngõ nhỏ hoặc chung cư thì người mua hàng hoặc đơn vị giao vận có thể đến
chuyển hàng giúp. Và người bán hàng khơng cần phải có văn phịng để để giấy tờ
sổ sách vì mọi giao dịch đều được lưu trữ trên máy tính, việc mua bán diễn ra

Nguyễn Khắc Hưng

Đại Học Công Nghệ
9


nhanh chóng và dễ dàng nên khơng cần q nhiều nhân cơng cho nên giảm được
chi phí về nguồn nhân lực.
Xây dựng quan hệ lâu dài với khách hàng
Thương mại điện tử giúp các bên có thể trao đổi tức thì, liên tục và nhiều
lần. Nhiều chủ cửa hàng chọn hình thức quảng cáo qua tin nhắn, tức là khi khách
hàng đến mua sản phẩm, chủ shop sẽ đăng kí thông tin cho khách bằng số điện
thoại và gửi khuyến mại qua tin nhắn cho khách hàng.
1.1.5.1. Chuyển sang sử dụng thiết bị di động
Theo thống kê số lượt truy cập trên hệ thống hơn 33.000 trang web khách
hàng của Sapo Web năm 2018, có tới hơn 60% số lượt truy cập vào trang web là
từ thiết bị di động, tăng 5% so với năm 2017. Ngoài ra, theo sự ghi nhận của các
công ty nghiên cứu thị trường, khoảng 70% lượng thời gian trực tuyến của người
tiêu dùng là qua thiết bị di động và cứ hai lần mua sắm trực tuyến thì có một lần

đặt qua điện thoại. Đồng thời, người tiêu dùng vẫn duy trì thói quen xem hàng
trên di động, đặt mua hàng trên máy tính vì q trình thanh tốn rõ ràng hơn (có
lẻ do màn hình to hơn). Do đó, nếu nền tảng thanh toán trên di động làm tốt hơn
nữa trong thời gian tới, số lượng khách hàng chuyển qua mua sắm qua di động có
khả năng tăng nhanh so với hiện nay.
iPrice cũng cho biết các doanh nghiệp TMĐT tại Việt Nam có tỷ lệ chuyển
đổi lượt truy cập các trang web TMĐT thành đơn hàng cao nhất trong khu vực
Đông Nam Á với 65%, tiếp đến là Singapore và Indonesia
1.1.5.2. Sử dụng nhiều công nghệ để phát triển
Để tăng trải nghiệm người dùng, quảng cáo đúng đối tượng và giao hàng
nhanh chóng tiết kiệm thì cơng nghệ là điều khơng thể thiếu. Ví dụ để quảng cáo
hiệu quả, các sàn hoặc trang quảng cáo, marketing liên kết sử dụng Big Data và
Machine Learning vào để target đối tượng được chính xác hơn. Hoặc sử dụng
Robot vào các kho hàng, AI vào việc nên để sản phẩm ở kho nào thì dễ giao hàng
tới nhiều người mua hàng nhất.
Nguyễn Khắc Hưng

Đại Học Công Nghệ
10


1.1.5.3. Phát triển theo hướng của mạng xã hội
Để tăng trải nghiệm người dùng các trang thương mại điện tử liên tục tung
ra các tính năng mới nhằm “cung cấp các tính năng mang tính xã hội cho người
dùng như tạo nội dung để tương tác với bạn bè, người mua hàng và người bán
hàng”. Tháng 3 năm 2019 Shopee giới thiệu tính năng Shopee Live và shopee
feed, y như những tính năng chính của mạng xã hội Facebook. Thực trạng thương
mại điện tử trên thế giới
TMĐT là ngành tăng trưởng mạnh nhất trên thế giới. Trong các năm qua
thì thị trường thương mại điện tử thế giới không ngừng gia tăng. Và theo dự báo

của statista thì giá trị thị trường năm 2019 sẽ đạt mức 3.535 tỷ USD và tiếp tục
tăng gần gấp đôi giá trị (với 4.878 tỷ USD) [3] vào năm 2021.
Sales
6542

7000
5692

6000
4927

5000

4206

4000

3535
2982

3000

2000

2382
1336

1548

2014


2015

1845

1000
0
2016

2017

2018

2019

2020

2021

2022

2023

Hình 1-2: Giá trị thị trường TMĐT liên tục tăng trưởng qua các năm

Cùng nhìn vào sự phát triển của hai sàn thương mại điện tử đứng đầu thế
giới và đứng đầu châu Á tại thời điểm hiện tại là Amazon và Alibaba.
1.2. Tình hình thương mại điện tử ở Việt Nam
Cùng sự phát triển nhanh chóng của mạng internet và thiết bị di động thơng
minh, thương mại điện tử ở Việt Nam có sự bứt tốc bùng nổ. Theo Statista, tổng

doanh thu của các công ty thương mại điện tử tại Việt Nam đạt 2,26 tỷ USD, tăng
gần 30% so với năm 2017. Với kết quả đó, Việt Nam vươn lên top 6 trong 10 thị
trường thương mại điện tử lớn nhất thế giới. Trên thị trường này, Việt Nam chỉ
Nguyễn Khắc Hưng

Đại Học Công Nghệ
11


xếp sau những “ông lớn” như Trung Quốc, Mỹ, Anh, Nhật Bản và Đức. Tổng
lượng người mua hàng trên các sàn thương mại điện tử trong năm 2018 đạt 49,8
triệu người. Dự kiến, con số này tăng lên 51,1 triệu người vào năm 2019 xu hướng
mua sắm trên di động ngày càng tăng, chiếm đến 72% số đơn hàng.
Theo Sách trắng thương mại điện tử Việt Nam 2019, thương mại điện tử
bán lẻ - B2C của Việt Nam đã có mức tăng trưởng cao nhất trong 3 năm trở lại
đây, tăng tới 30%. Mức tăng trưởng của thương mại điện tử Việt Nam trong 2
năm 2016 và 2017 lần lượt là 23% và 24%.

Doanh thu B2C
12
10.08
10
8.06
8
6.2
6

5
4.07


4
2
0
2015

2016

2017

2018

2019

Hình 1-3: Doanh thu TMĐT B2C Việt Nam năm 2015 – 2019 (tỷ USD)
Hạng mục

2015

2016

2017

2018

2019

Ước tính số người tham gia mua sắm trực tuyến
(triệu người)

30,3


32,7

33,6

39,9

44,8

Ước tính giá trị mua sắm trực tuyến của một người
USD)

160

170

186

202

225

Tỷ trọng doanh thu TMĐT B2C so với tổng mức bán
lẻ hàng hóa và doanh thu dịch vụ tiêu dùng cả nước

2,8%

3%

3,6%


4,2% 4,9%

Tỷ lệ người dân sử dụng Internet 22

54%

54,2% 58,1%

60%

66%

(Nguồn: Sách trắng thương mại điện tử Việt Nam 2019)

Hình 1-4: Quy mô thị trường thương mại điện tử B2C Việt Nam năm 2018

Nguyễn Khắc Hưng

Đại Học Công Nghệ
12


CHƯƠNG 2. CÁC NỀN TẢNG HỖ TRỢ THỰC THI TÁC VỤ
TỰ ĐỘNG
2.1. AutoIT
Giới thiệu
AutoIt là một ngơn ngữ lập trình được ra đời vào tháng 1 năm 1999 bởi
Jonathan Bennett. AutoIt có cú pháp tương tự gần như ngơn ngữ BASIC được
thiết kế để tự động hóa các GUI (giao diện người dùng) như giả lập phím nhấn,

di chuyển chuột, và thực hiện một số thao tác phức tạp khác trên cửa sổ, thao tác
với tập tin, thư mục. AutoIt bước đầu được thiết kế để cấu hình tự động hố và
hàng ngàn máy tính cá nhân. Với dung lượng vô cùng nhỏ gọn, và đồng thời chạy
độc lập được trên mọi các phiên bản của Windows mà không cần các chương trình
runtime chạy nền. Hiện tại phiên bản mới nhất: 3.3.14.3 (Phát hành tháng 2, 2018)
[13].

Hình 2-1: Nền tảng hỗ trợ tự động GUI AutoIT

Điểm mạnh của AUTOIT
 Dễ dàng tiếp cận dành cho người mới bắt đầu với cú pháp đơn giản.
 Mô phỏng sự kiện chuột và keystrokes
 Tương tác với tất cả các cửa sổ theo tiêu chuẩn kiểm sốt và các tiến trình
của hệ điều hành.
 Mã thực thi có thể thực thi độc lập với quá trình biên soạn.
 Tạo giao diện GUI tương tác với người dùng hỗ trợ COM
Nguyễn Khắc Hưng

Đại Học Công Nghệ
13


 Tương thích với tất cả phiên bản hệ điều hành của Windows và có hỗ trợ
x64 và Unicode.
 Có thể gọi các hàm giao diện lập trình ứng dụng (API) và các thư viện
động (DLL) một cách có định hướng.
 Cộng đồng hỗ trợ vô cùng lớn kèm theo tài liệu chi tiết.
 AutoIt hồn tồn miễn phí nhưng nhà phát triển có thể quyên góp tiền
bạc hoặc đóng góp cơng sức cho cộng đồng phát triển AutoIt.
Autoit được xem là một ngôn ngữ hỗ trợ tốt để viết các tiện ích auto. Ví dụ

như là auto webgame, keylogger, botnet, auto click chuột, auto đăng nhập và
những thao tác tự động khác mà không cần đến sự can thiệp của người dùng. Với
cơng cụ Aut2Exe, các kịch bản có thể được biên dịch thành tệp tin thực thi (*.exe)
Điểm yếu của AUTOIT
Ngoài các thuận lợi nêu ở trên, AutoIt cũng mắc phải một số điểm chưa tốt
gây bất tiện cho người dùng:
• Dữ liệu khơng xác định kiểu: AutoIt không định nghĩa kiểu dữ liệu cho
các biến làm cho rất khó debug.
• Chưa hỗ trợ đa tiến trình (multi-thread).
• Chưa hỗ trợ đầy đủ bộ xử lý sự kiện với chuột như sự kiện MouseHover,
MouseMove.
• Khả năng bị dịch ngược: dễ dàng để giải mã mã nguồn và cần dùng thêm
một số thủ thuật để khắc phục sau khi biên dịch mã nguồn của AutoIt mặc dù đã
được nén và mã hóa ln vào tệp tin thực thi.
• Thường bị trình diệt vi-rút cho ln là Trojan/Malware.
Với mục đích ban đầu AutoIT được sử dụng để viết các chương trình Auto
để giải quyết các nhu cầu về cơng việc nào đó. Đa số trong số đó là AutoGame,
AutoSendRequest. Tuy nhiên có vẻ như nhiều người sử dụng AutoIT để viết các
mã độc virus malware hay nổi tiếng hơn là Botnet/RAT - Cái này chuyên để tạo
ra những troijan. Yahoo ngày xưa cũng bị phát tán virus năm 2006, hầu hết các
mã độc đó đều được viết bằng AutoIT. Vậy nên sau một thời gian dài thì các trình
Nguyễn Khắc Hưng

Đại Học Công Nghệ
14


diệt virus chỉ cần nhận diện "chữ ký" của ứng dụng đó là AutoIt thì coi là
virus/malware ln.
Các hàm, thủ tục AUTOIT hỗ trợ

Hàm xử lý biến môi trường trong Windows
Thông thường người dùng phải bấm phải chuột vào My Computer >
Properties >Advanced, chọn Environment Variables để thiết lập biến mơi trường
trong Windows. AutoIT có sẵn một số hàm xử lý biến môi trường để làm việc này
mà không phải thao tác như trên.
Tên thủ tục

Diễn giải

EnvGet (Envvar)

Trả về giá trị của một biến môi trường trong Windows.

EnvSet(Envvar, value)

Thiết lập giá trị cho một biến môi trường trong Windows.

EnvUpdate()

Cập nhật lại biến môi trường của Windows

Bảng 2-1: Các hàm biến môi trường trong AUTOIT
Hàm phát âm thanh hoặc kiểm tra hình ảnh.
Tên thủ tục

Diễn giải

Beep([fre], [duration])

Phát tiếng bip bip trong 1 khoảng thời gian.


SoundPlay(“filename”, [wait])

Chơi tập tin âm thanh có đường dẫn là filename.

SoundSetWaveVolume(percent)

Thiết lập lại biến môi trường của Windows

PixelChecksum(left, top,
bottom, [step], [hwnd])
PixelGetColor(x, y, [hwnd])

right, Trả về số điểm ảnh trên một khu vực hình chữ nhật
của màn hình.
Lấy giá trị màu tại một điểm ảnh có tọa độ (x, y) nào
đó.

Bảng 2-2: Các hàm phát âm thanh
Hàm xử lý thư mục
Tên thủ tục
DirCopy(“sourcedir”,
[flag])
DirCreate(“path”)

Diễn giải
“destdir”,

Sao chép các tập tin và thư mục con của thư
mục nguồn đến thư mục đích.

Tạo thư mục theo đường dẫn path.

Nguyễn Khắc Hưng

Đại Học Công Nghệ
15


DirMove(“sourcedir”,
[flag])

“destdir”,

Di chuyển thư mục.

DirRemove(“path”, [flag])

Xóa thư mục.

FileGetAttrib(“filename”)

Lấy thơng tin các thuộc tính của tập tin.

FileOpenDialog(“title”,
“filter”)

“dir”,

Mở hộp thoại Open.


FileChangeDir(“path”)

Chuyển đường dẫn thư mục làm việc hiện
hành đến thư mục khác.

FileRead(“filehandle/filename”)

Đọc toàn bộ nội dung của một tập tin văn
bản có tên là filename.

FileWriteLine(“filename”,
“dataline”)

Ghi thêm thông tin dataline vào phần cuối
của tập tin văn bản.

Bảng 2-3: Các hàm xử lý thư mục
Hàm tiện ích Bàn phím
Tên thủ tục

Diễn giải

Send(“keycode”, [flagcode])

Gửi phím nhấn có mã keycode đến cửa sổ
đang kích hoạt.

HotKeySet(“key”)

Gán phím nóng đến cửa sổ đang kích hoạt.


SendKeepActive(“Title”)

Giữ một cửa sổ chương trình nào đó ln ln
được kích hoạt trong khi gọi hàm Send.

Bảng 2-4: Các hàm tiện ích bàn phím

Hàm tốn học
Tên thủ tục

Diễn giải

Abs(expression)

Tính trị tuyệt đối của một con số

ACos(expression)
ASin(expression)
Atan(expression)

Tính arcCosine của một con số. (hàm trả về theo đơn vị
radians)
Tính arcsine của một con số. (hàm trả về theo đơn vị
radians)
Tính arctangent của một số. (hàm trả về theo đơn vị
radians)

Nguyễn Khắc Hưng


Đại Học Công Nghệ
16


Làm tròn một con số đến con số nguyên kế tiếp lớn hơn

Ceiling(expression)



Bảng 2-5: Các hàm tốn học
Hàm xử lý chuỗi
Tên thủ tục

Diễn giải

StringCompare()

So sánh hai chuỗi.

StringInStr()

Tìm vị trí của một chuỗi nhỏ trong một chuỗi lớn.

StringIsAlNum()

Kiểm tra chuỗi có phải là số.

StringIsAlpha()


Kiểm tra chuỗi có phải chỉ chứa các kí tự hay khơng

StringLen()

Trả về số kí tự có trong chuỗi

StringReplace()

Thay đổi nội dung của một chuỗi con nào đó trong chuỗi.

Bảng 2-6: Các hàm xử lý chuỗi
Hàm liên quan đến xử lý hộp thoại
Tên thủ tục

Diễn giải

InputBox(“title”, “prompt”)
MsgBox(flag, “title”, “text”)

Xuất hiện một hộp nhập cho người dùng gõ chuỗi thông tin
vào
Xuất hiện một hộp thoại thông tin cho người dùng

SplashTextOn ( "title", "text") Tạo một cửa sổ popup dạng text.

Bảng 2-7: Các hàm xử lý hộp thoại
Hàm quản lý tiến trình
Tên thủ tục

Diễn giải


ProcessClose()

Đóng một tiến trình đang chạy

ProcessExists()

Kiểm tra xem một tiến trình nào đó có đang chạy
trong hệ thống hay không.

ProcessSetPriority()

Thiết lập chế độ ưu tiên của CPU cho một tiến trình

ProcessWait(“process”,
[timeout])

Tạm dừng một đoạn mã script AutoIt đang thực thi
cho đến khi một tiến trình nào đó tồn tại chạy trong hệ
thống

Tạm dừng một đoạn mã script AutoIt đang thực thi
ProcessWaitClose(“process”,
cho đến khi một tiến trình nào đó khơng tồn tại chạy
[timeout])
trong hệ thống.

Nguyễn Khắc Hưng

Đại Học Công Nghệ

17


Bảng 2-8: Các hàm xử lý tiến trình
Các hàm khác
Tên thủ tục

Diễn giải

Các hàm xử lý Registry
Đọc giá trị từ một mục nào đó trong Registry hay tạo
trong Windows
một khóa hoặc ghi giá trị đến Registry
Các hàm xử lý biến và
chuyển đổi

Chuyển đổi về số từ 1 biểu thức, chuyển string sang
mã hex hoặc binary

Các hàm quản lý cửa sổ

Kích hoạt một cửa sổ của chương trình nào đó. Kiểm
tra sự tồn tại của cửa sổ. Lấy thông tin vị trí kích thước
của cửa sổ

Các hàm tạo các control

Thêm các đối tượng control ở trên GUI như tạo
Button Label


Các hàm cập nhật control

Thay đổi các đối tượng control trên GUI như đổi màu
nền, xóa đối tượng, thiết lập giá trị

Bảng 2-9: Một số hàm khác của AutoIT

Ví dụ về việc sử dụng AUTOIT

Hình 2-2: Ví dụ về script của AutoIT

Nguyễn Khắc Hưng

Đại Học Công Nghệ
18


2.2. Selenium
Nói đến kiểm thử tự động khơng thể khơng kể đến Selenium, đây là bộ
kiểm thử tự động phổ biến nhất hiện này. Selenium được xây dựng để hỗ trợ và
khuyến khích kiểm thử tự động về mặt chức năng và giao diện của ứng dụng dạng
web và thực thi trên một loạt các trình duyệt, nền tảng như Chrome, Mozilla,
Internet Explorer, Safari. Selenium trở thành một trong những công cụ kiểm thử
tự động được sử dụng nhất của các chuyên gia kiểm thử bởi là phần mềm mã
nguồn mở và cộng đồng đông đảo [14].
Selenium là một bộ tập hợp các công cụ riêng rẽ. Mỗi công cụ được thiết
kế tùy thuộc yêu cầu về môi trường kiểm thử để phục vụ các mục đích kiểm thử
khác nhau. Gói Selenium bao gồm các thành phần sau:






Selenium IDE.
Selenium Remote Control (RC).
Selenium WebDriver.
Selenium Grid.

Hình 2-3: Các thành phần chính của Selenium

Selenium IDE (Selenium Integrated Development Environment)
Selenium IDE được phát triển đầu tiên bởi lập trình viên người Nhật Bản
Shinya Kasatani, ban đầu là một tiện ích mở rộng của Firefox. Trong quá trình
thực hành và nghiên cứu với Selenium Core, ông đã thấy có thể mở rộng để tạo
Nguyễn Khắc Hưng

Đại Học Công Nghệ
19


ra một mơi trường phát triển tích hợp. Với nó, người dùng có thể tích hợp vào
trình duyệt Mozilla Firefox. IDE có khả năng ghi lại và chạy sau đó (record and
play back) các hành động của người dùng trên trình duyệt (trình duyệt này phải
được tích hợp hỗ trợ bởi IDE). Kể từ năm 2006, gói Selenium đã tích hợp sẵn
Selenium IDE. IDE đóng góp giá trị rất lớn cho cộng đồng kiểm thử Selenium.
Selenium IDE là công cụ dễ sử dụng nhất trong bộ cơng cụ của gói
Selenium. Tính năng ghi lại và chạy sau đó (record and play back) làm cho nó rất
dễ học đối với những người đã biết chút về ngơn ngữ lập trình. Tuy nhiên,
Selenium IDE cũng có một vài nhược điểm làm nó khơng thích hợp để sử dụng
trong trường hợp các kịch bản kiểm thử thường xuyên bị thay đổi.

Selenium RC (Selenium Remote Control)
Selenium RC được viết bằng ngôn ngữ Java, cho phép thiết kế và thực thi
kịch bản kiểm thử cho các ứng dụng dạng web. Selenium RC là sản phẩm sau khi
đã khắc phục được một số điểm hạn chế của Selenium IDE/ Core. Một trong
những hạn chế chủ yếu là vấn đề Same Origin:
Đó là khơng cho phép truy cập DOM của một tài liệu từ một nguồn khác
với nguồn mà chúng ta đang truy cập tài liệu. Cho nên để test với bất kỳ ứng dụng
nào mà sử dụng Selenium Core, người ta phải cài đặt toàn bộ ứng dụng Selenium
Core trên một server để khắc phục các vấn đề về chính sách Same origin.
Selenium Grid
Phát triển bởi Pat Lightbody để giải quyết cho việc thực hiện các bộ kiểm
thử thử phân tán, kiểm thử ở nhiều môi trường khác nhau và tiết kiệm đáng kể
thời gian thực hiện.
Selenium WebDriver
Được tạo vào năm 2006 bởi kỹ sư tại ThoughtWorks tên là Simon Stewart,
Webdriver là một trong những công cụ kiểm thử tự động mạnh mẽ và thông dụng
nhất. Đây chính là phiên bản mở rộng sau khi cải tiến các điểm không cần thiết
cũng như hạn chế của Selenium RC, như không cần khởi chạy trước máy chủ
Selenium khi thực thi các kịch bản kiểm thử. Và hơn hết, phiên bản WebDriver
Nguyễn Khắc Hưng

Đại Học Công Nghệ
20


tương thích với rất nhiều nền tảng và trình duyệt. Công cụ WebDriver thử nghiệm
Selenium được coi là một trong những lựa chọn ưu tiên nhất để thử nghiệm các
ứng dụng dựa trên web.

2.2.3.1. Kiến trúc của WebDriver

Selenium WebDriver là một khung web cho phép thực hiện các kiểm tra
trình duyệt chéo. Công cụ này được sử dụng để tự động kiểm tra ứng dụng dựa
trên web để xác minh rằng nó hoạt động được mong đợi.
Selenium WebDriver cho phép chọn ngơn ngữ lập trình bạn chọn để tạo tập
lệnh thử nghiệm. Như đã thảo luận trước đó, đây là một tiến bộ so với Selenium
RC để khắc phục một vài hạn chế. Selenium WebDriver khơng có khả năng xử lý
các thành phần cửa sổ, nhưng nhược điểm này có thể khắc phục bằng cách sử
dụng các công cụ như Sikuli, Auto IT, v.v.

Hình 2-4: Kiến trúc của Selenium WebDriver

Mơ tả chi tiết từng thành phần
Thư viện khách hàng Selenium / Ràng buộc ngôn ngữ:

Nguyễn Khắc Hưng

Đại Học Công Nghệ
21


×