Tải bản đầy đủ (.docx) (68 trang)

Bài Tập lớn Kiểm thử phần mềm: Sử dụng Selenium kiểm thử web Shopee

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 (4.69 MB, 68 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------

BÁO CÁO BÀI TẬP LỚN
HỌC PHẦN KIỂM THỬ PHẦN MỀM

SỬ DỤNG CÔNG CỤ SELENIUM ĐỂ KIỂM THỬ
WEBSITE BÁN HÀNG SHOPEE

GVHD: Nguyễn Ngọc Quang
Nhóm: 11
Thành viên:
Trịnh Bảo Kiên

MSV: 2020604877

Trần Quang Minh

MSV: 2020601982

Nguyễn Tuấn Nam

MSV: 2020608122

Nguyễn Hữu Đạt

MSV: 2021600814

Lớp: KTPM – IT6084.2
Khóa: K15 + K16



Hà Nội – Năm 2023

1


PHẦN 1. MỞ ĐẦU
Trong xu thế hội nhập hiện nay, các công ty, doanh nghiệp trong nước
đang gặp rất nhiều khó khăn do tính cạnh tranh trên thị trường ngày càng trở nên
gay gắt và quyết liệt. Vì vậy, các công ty doanh nghiệp luôn chú trọng, chất
lượng sản phẩm của mình .Mỗi sản phẩm trước khi được đưa đến tay khách
hàng, luôn phải kiểm thử kỹ lưỡng, đảm bảo sản phẩm khơng có có phát sinh
lỗi, đáp ứng được đúng và đủ nhu cầu của khách hàng.
Qua đó, kiểm thử phần mềm sẽ tiêu tốn thời gian, kinh phí và nguồn nhân
lực mà kiểm thử thủ công chưa đáp ứng được. Vì vậy, để giải quyết cho vấn đề
này các công cụ kiểm thử tự động đang dần trở thành các trợ thủ đắc lực cho đội
ngũ phát triển hướng tới.
Selenium là một trong những công cụ kiểm thử tự động mã nguồn mở
mạnh mẽ hiện nay cho việc kiểm thử ứng dụng Web. Selenium có thể chạy được
trên hầu hết các phần mềm trình duyệt, các hệ điều hành máy tính, hỗ trợ nhiều
ngơn ngữ lập trình khác nhau. Tuy nhiên việc tiếp cận và phát triển các công cụ
kiểm thử tự động ứng dụng vào kiểm thử phần mềm ở Việt Nam cịn chưa phổ
biến. Vì vậy nhóm 11 trình bày về đề tài “Sử dụng cơng cụ Selenium để kiểm
thử website shopee ” với mong muốn được tìm hiểu sâu hơn về kiểm thử phần
mềm nói chung và kiểm thử tự động nói riêng, cùng với cách tiếp cận công cụ
kiểm thử tự động Selenium để ứng dụng vào thực tế, tạo tiền đề cho định hướng
tương lai sau khi tốt nghiệp đại học sẽ trở thành một kỹ sư kiểm thử phần mềm
chuyên nghiệp.

2



PHẦN 2. KIẾN THỨC NỀN TẢNG
2.1. Quy trình kiểm thử phần mềm

Hình 1: Quy trình kiểm thử phần mềm

Kiểm thử phần mềm là một quá trình thực thi một chương trình với mục
đích tìm ra lỗi. Kiểm thử phần mềm bảo đảm sản phẩm phần mềm đáp ứng
chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu sản phẩm đề đã
đặt ra. Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phần
mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần
mềm. Kiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư duy đánh giá
và sáng tạo để bạn có thể phát hiện ra những điểm mà người khác chưa nhìn
thấy. Người thực hiện kiểm thử được gọi là kiểm thử viên (Tester).
Về cơ bản, quy trình kiểm thử phần mềm gồm 6 giai đoạn: 
- Requirement Analysis (Phân tích yêu cầu)
- Test Planning (Lập kế hoạch kiểm thử)
- Test Case Development (Phát triển kịch bản kiểm thử)
- Environment Setup (Thiết lập môi trường kiểm thử)
- Test Execution (Thực hiện kiểm thử)
- Test Cycle Closure (Kết thúc chu kỳ kiểm thử)
- Requirement Analysis (Phân tích yêu cầu)
2.1.1. Requirement Analysis (Phân tích yêu cầu)
Trong giai đoạn này, các tester sẽ phân tích tài liệu Prototype (Tài liệu đặc tả
yêu cầu) được tạo trong Software Development Life Cycle (Vòng đời phát triển
phần mềm) để kiểm tra các yêu cầu do khách hàng đưa ra. 

3



Yêu cầu được chia làm 2 dạng: Functional (Chức năng) và Non-Functional
(Phi chức năng). Yêu cầu về Functional sẽ mô tả tính năng cịn Non-Functional
sẽ mơ tả hiệu năng, tính bảo mật, tính hữu dụng của phần mềm. Trong quá trình
phân tích, nếu u cầu cịn mơ hồ sẽ được xem xét lại, tester đồng thời làm việc
với các bên liên quan để làm rõ vấn đề. Cuối cùng, tester sẽ xác định loại kiểm
thử sẽ dùng và độ ưu tiên của các hoạt động kiểm thử, xác định môi trường test
cần chuẩn bị.

Hình 2 : Phân tích u cầu

2.1.2 Test Planning (Lập kế hoạch kiểm thử)
Sau giai đoạn một, tester tiến hành Lập kế hoạch kiểm thử để kiểm tra xem
phần mềm có đáp ứng các u cầu hay khơng. Kế hoạch kiểm thử là một tài liệu
tổng quan về việc kiểm thử dự án bao gồm những thông tin sau:
- Phạm vi kiểm thử, hướng tiếp cận, quy trình kiểm thử, tài nguyên và nhân
lực test.
- Các chức năng/module cần được kiểm tra ; các công cụ và môi trường
kiểm thử cần có.
- Ai test chức năng nào ? - Khi nào bắt đầu thực hiện viết và hoàn thành
test case ? - Khi nào bắt đầu thực hiện và hoàn thành test ?
2.1.3 Test Case Development (Phát triển kịch bản kiểm thử)
Sau khi có được Test Plan, Tester bắt đầu xây dựng bộ Test Case dựa trên
yêu cầu của phần mềm. Test Case cần mô tả được chi tiết dữ liệu đầu vào, hành
động, kết quả mong đợi để xác định một chức năng của ứng dụng phần mềm có
hoạt động đúng hay khơng. Template của Test Case có nhiều trường hợp nhưng
bắt buộc phải có 5 mục chính: ID, mục đích kiểm thử, các bước thực hiện, kết
quả mong đợi & kết quả thực tế.
Nếu sử dụng tool để thực hiện test tự động (Automation testing) chức năng
và giao diện của sản phẩm, tester sẽ tạo thêm một kịch bản kiểm thử gọi là Test

4


Script. Test Script là bản hướng dẫn chi tiết được viết bằng mã code nhằm hỗ trợ
kiểm thử những trường hợp nếu test thủ cơng bằng tay sẽ rất khó khăn.
Các Tester trong cùng một team sẽ review chéo Test Case của nhau tránh bỏ
sót những trường hợp test quan trọng. Một bộ Test Case chất lượng sẽ giúp đảm
bảo chất lượng sản phẩm, hạn chế lỗi và rủi ro nhất cho khách hàng.

Hình 3 : Biểu mẫu Test Case cơ bản với 5 thành phần chính

2.1.4 Environment Setup (Thiết lập môi trường kiểm thử)
Thiết lập môi trường thử nghiệm là một hoạt động độc lập và có thể được bắt
đầu cùng với giai đoạn phát triển kịch bản kiểm thử. Môi trường kiểm thử sẽ do
developers tạo ra để deploy sản phẩm đã được hồn thiện về phần lập trình. 
Sau khi thiết lập môi trường thử nghiệm, tester thực hiện nhanh Smoke
Testing (Kiểm thử khói) để kiểm tra tính sẵn sàng của mơi trường thử nghiệm
đồng thời tính ổn định của bản build sản phẩm. Trường hợp xuất hiện lỗi như
môi trường không ổn định hay bản build lỗi chức năng chính, tester sẽ báo lại
developers sửa ngay. Nếu mơi trường và bản build đã đủ ổn định để tiến hành
test chi tiết, tester sẽ tiến hành giai đoạn tiếp theo - Thực hiện kiểm thử.
2.1.5 Test Execution (Thực hiện kiểm thử)
Khi developers đã code và đưa sản phẩm lên môi trường kiểm thử, tester sẽ
thực thi dựa trên Test Case đã viết. Trong quá trình test, nếu phát hiện ra bug
(lỗi) thì tester sẽ log (viết) lên các tool quản lý lỗi. Bug của lập trình viên nào sẽ
giao lại cho người đấy xử lý. Khi nào developers fix bug xong, tester sẽ nhận lại
và tiến hành kiểm thử. 
Nếu lỗi đã được sửa, tính năng hoạt động ổn định, tester sẽ đổi trạng thái
thành Close Bug. Trường hợp lỗi vẫn chưa được fix thành công, trạng thái sẽ
được đổi thành Re-open để developers thực hiện fix lại. Khi nào bug được fix

thành cơng mới được đóng lại việc test tính năng đấy.
5


Trong cả quá trình kiểm thử phần mềm, tester ưu tiên kiểm tra chức năng
chính trước, chức năng phụ và giao diện sẽ thực hiện test sau. Quá trình kiểm
thử phần mềm bắt buộc phải tuân thủ thời gian đã đề ra, mọi người trong team
đôn đốc nhau để kịp tiến độ bàn giao sản phẩm. Cuối cùng, tester thực hiện làm
báo cáo tùy theo yêu cầu của dự án để đánh giá việc kết thúc quy trình kiểm thử
phần mềm.
2.1.6 Test Cycle Closure (Kết thúc chu kỳ kiểm thử)
Ở giai đoạn cuối cùng, tester chuẩn bị báo cáo kết thúc kiểm thử, tổng hợp lại
các chỉ số trong quá trình test. Cả team phát triển sẽ ngồi họp để đánh giá tồn
bộ các tiêu chí xác định kiểm thử đã đủ hay chưa. Những tiêu chí này khác nhau
tùy theo từng dự án, thông thường bao gồm:
- Số lượng test case tối đa được thực thi Passed.
- Tỷ lệ lỗi giảm xuống dưới mức nhất định.
- Deadline được chốt từ giai đoạn làm kế hoạch kiểm thử.
Quy trình kiểm thử phần mềm thường chỉ được kết thúc khi sản phẩm được
bàn giao cho khách hàng. Ngoài ra, hoạt động kiểm thử có thể kết thúc trong các
trường hợp sau:
- Khi 1 dự án bị hủy bỏ.
- Khi các mục tiêu chính đã hồn thành.
- Khi việc bảo trì hoặc cập nhật đã hoàn thành.

6


2.2 Kiểm thử hộp trắng
Kiểm thử hộp trắng hay còn gọi là kiểm thử logic, là kỹ thuật kiểm thử cho

phép kiểm tra cấu trúc bên trong của chương trình.
Kiểm thử hộp trắng có ưu và nhược điểm sau:
- Ưu điểm: Kiểm thử hộp trắng có ưu điểm kiểm thử được rõ ràng cấu
trúc bên trong của ứng dụng, không phải kiểm thử mị khơng có chủ
đích.
- Nhược điểm: Chính vì tính kiểm thử được rõ ràng nên chỉ phát hiện
được những lỗi thơng thường, khó có thể phát hiện được lỗi tiềm ẩn.
Các kỹ thuật kiểm thử hộp trắng cơ bản
2.2.1 Kiểm thử đường cơ bản – đồ thị dòng
- Là một kỹ thuật dùng trong kiểm thử hộp trắng được Tom McCabe đưa ra
đầu tiên. Đồ thị dòng gần giống đồ thị luồng điều khiển của chương trình.
- Là một trong nhiều phương pháp miêu tả thuật giải. Đây là phương pháp
trực quan cho chúng ta thấy dễ dàng các thành phần của thuật giải và mối
quan hệ trong việc thực hiện các thành phần này.
- Kỹ thuật đường cơ bản - đồ thị dịng có thể giúp những người thiết kế ca
kiểm thử nhận được một độ phức tạp của 1 logic thủ tục.
- Gồm 2 loại thành phần : các nút và các cung nối kết giữa chúng.

Hình 4: Các loại nút trong đồ thị dịng điều khiển

7


Hình 5: Các kiểu cấu trúc của đồ thị dịng

Nếu đồ thị dòng điều khiển chỉ chứa các nút quyết định nhị phân thì ta gọi nó là
đồ thị dịng điều khiển nhị phân. Ta ln có thể chi tiết hóa 1 đồ thị dịng điều
khiển bất kỳ thành đồ thị dịng điều khiển nhị phân.

Hình 6: Đồ thị dịng điều khiển nhị phân


 2.2.2 Kiểm thử dựa trên luồng điều khiển
Đường thi hành (Execution path) : là 1 kịch bản thi hành đơn vị phần mềm
tương ứng, cụ thể nó là danh sách có thứ tự các lệnh được thi hành ứng với 1 lần
chạy cụ thể của đơn vị phần mềm, bắt đầu từ điểm nhập của đơn vị phần mềm
đến điểm kết thúc của đơn vị phần mềm.
Mỗi TPPM có từ 1 đến n (có thể rất lớn) đường thi hành khác nhau.
Mục tiêu của phương pháp kiểm thử luồng điều khiển là đảm bảo mọi
đường thi hành của ₫ơn vị phần mềm cần kiểm thử đều chạy đúng. Rất tiếc trong
thực tế, công sức và thời gian để đạt mụctiêu trên đây là rất lớn, ngay cả trên
những đơn vị phần mềm nhỏ.
8


2.3 Kiểm thử hộp đen
Kỹ thuật kiểm thử hộp đen hay còn gọi là kiểm thử vào/ra. Trong kỹ thuật
này, người kiểm thử xem phần mềm như là một hộp đen. Người kiểm thử hồn
tồn khơng quan tâm đến cấu trúc bên trong của chương trình mà chỉ quan tâm
tới dữ liệu đầu vào và đầu ra sau khi được xử lý vì thế dữ liệu kiểm thử sẽ xuất
phát từ đặc tả.
Kiểm thử hộp đen có ưu và nhược điểm như sau:
- Ưu điểm: Kiểm thử hộp đen không có mối liên quan nào đến mã lệnh, vì
vậy người kiểm thử sẽ tìm được những lỗi mà lập trình viên khơng tìm
thấy được.
- Nhược điểm: Kiểm thử hộp đen “giống như là đi trong bóng tối mà khơng
có đèn” bởi vì kiểm thử viên khơng biết các phần mềm được kiểm tra thực
sự xây dựng như thế nào. Đó là lý do mà có nhiều trường hợp mà một
kiểm thử viên hộp đen viết rất nhiều test case để kiểm tra một thứ gì đó
mà đáng lẽ có thể chỉ cần kiểm tra bằng một test case duy nhất, hoặc là
trường hợp một số phần chương trình khơng được kiểm tra chút nào.

Sau đây tôi xin giới thiệu chung một vài kỹ thuật trong kiểm thử hộp đen,
chi tiết hơn sẽ được nghiên cứu trong những bài viết sau.
Đoán lỗi: là một kỹ năng quan trọng của tester, thậm chí có thể gọi là nghệ
thuật. Một kiệt tác của trực giác. Phương pháp này đặc biệt dựa vào kinh nghiệm
và kiến thức của tester. Nhiều tester cố gắng đoán xem phần nào của hệ thống
mà có khả năng ẩn chứa lỗi. Với phương pháp này, họ không cần một công cụ
hay một kịch bản kiểm thử nào khi bắt đầu vào việc.
Kiểm thử dựa vào đồ thị nguyên nhân - kết quả (Cause Effect Graphing): là
một kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác định các trường
hợp (điều kiện đầu vào) và các hiệu ứng (điều kiện đầu ra). Vì các hệ thống hiện
nay đều được phát triển trên nền tảng OOP, do đó, chúng ta có thể có được một
đồ thị các đối tượng mà hệ thống định nghĩa và kết nối. Từ đồ thị này, chúng ta
dễ dàng biết các mối quan hệ của những đối tượng mà hệ thống xử lý, từ đó sẽ
cho chúng ta các kịch bản kiểm thử phù hợp

9


PHẦN 3. CÔNG CỤ SELENIUM
3.1 Giới thiệu chung về Selenium
Selenium (thường được viết tắt là SE) là một phần mềm mã nguồn mở,
được phát triển bởi Jason Huggins, sau đó được tiếp tục bởi nhóm
ThoughtWorks vào năm 2004. Selenium là một công cụ hỗ trợ kiểm tra tự động
cho các ứng dụng chạy trên nền web.
Selenium hỗ trợ kiểm tra hầu hết trên các trình duyệt phổ biến hiện nay như
Firefox, Internet Explorer, Chrome, Safari, cũng như các hệ điều hành chủ yếu
như Windows, Linux, Mac,..Selenium hỗ trợ một số lớn các ngơn ngữ lập trình
như C#, Java, Perl, PHP, Python, Ruby,... Khơng những vậy, Selenium có thể
kết hợp thêm với một số công cụ khác như Bromien, Junit, Nunit.[2]
3.2 Đặ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
hồn tồn có thể 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 hồn tồ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ợ.
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.
3.3 Thành phần của Selenium

10


Selenium gồm một bộ công cụ hỗ trợ kiểm tra tự động các ứng dụng web
để đảm bảo chất lượng của các ứng dụng web, Selenium gồm có các thành phần
sau:

Hình 7: Thành phần của Selenium

Selenium-IDE: Là một cơng cụ cho phép ghi (record) và phát lại
(playback) một test script. Nó được thực hiện như là một Firefox Add-On.
Selenium IDE cho phép export ra 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, Perl hay Python.
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: 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: 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.

11


PHẦN 4. GIỚI THIỆU VỀ SELENIUM IDE VA MÔI
TRƯỜNG CÀI DẶT
4.1 Giới thiệu về Selenium IDE
Trước đây người ta gọi Selenium IDE là Selenium Recorder. Selenium
IDE ban đầu được tạo ra bởi ShinyaKasatani và trao tặng cho các dự án
Selenium vào năm 2006 Selenium IDE cho phép người dùng thực thi những

công việc sau đây:
- Ghi (Record) những thao tác của người dùng khi sử dụng trình duyệt
Firefox. Record những hành động trên Firefox khá đơn giản, người dùng chỉ cần
nhấn nút Record trên Selenium IDE là chương trình sẽ ghi lại các thao tác đã
tương tác với Web trên Firefox.Người dùng có thể sửa lại command hoặc target
ngay trên Selenium IDE, sau đó lưu test case (sử dụng chức năng save) để tái sử
dụng lần sau.
- Chạy lại những script đã ghi được.
- Chuyển đổi script đã ghi thành các ngơn ngữ lập trình khác. Selenium
IDE cịn có chức năng Export. Chức năng này sẽ giúp cho người dùng export
code dưới dạng nhiều ngôn ngữ khác nhau như Python, Java, C#, Ruby...Nếu đã
export thì khơng thể import trở lại để playback trên Selenium IDE mà phải dùng
nó trong một framework khác.
4.2 Mơi trường cài đặt Selenium IDE trên trình duyệt Chrome
Đầu tiên người dùng nên kiểm tra xem trình duyệt Mozilla Firefox đã
được cài đặt Selenium IDE hay chưa bằng cách mở trình duyệt này lên, chọn
menu tools. Nếu trong danh sách menu con khơng chứa Selenium IDE thì cần
thực hiện những bước sau để tiến hành cài đặt.
 Bước 1: Tiến hành truy cập vào địa chỉ
Sau đó chọn menu Download.

Hình 8: Truy cập trang Download tiện ích Selenium IDE

12


 Bước 2: Tìm tới mục Selenium IDE và chọn phiên bản mới nhất (latest
released) hoặc những bản cũ hơn tùy theo nhu cầu sử dụng.
Ở đây chọn phiên bản mới nhất tính từ thời điểm báo cáo khóa luận là
Selenium

IDE
3.17.0.
 Bước 3: Tại website mới được mở ra, chọn “Thêm vào Chrome” để thêm
tiện ích Selenium IDE vào Chrome.

Hình 9: Thêm tiện ích Selenium IDE vào Chrome

 Bước 4: Tiếp tục chọn “Thêm tiện ích” để xác nhận thao tác thêm tiện ích
Selenium IDE vào trình duyệt.
Hình 10: Xác nhận cài đặt tiện ích Selenium IDE vào trình duyệt

Hình 11: Giao diện khởi chạy của tiện ích Selenium IDE

4.3 Ưu va nhược điểm của Selenium IDE
 ƯU ĐIỂM :
13


- Dễ dàng cài đặt, sử dụng, tiết kiệm thời gian.
- Khơng u cầu kinh nghiệm lập trình.
- Có thể chuyển đổi qua các ngơn ngữ lập trình khác như: HTML, Java, C#,
Python, Ruby.
- Có thể debug, set breakpoint, thêm comment vào script cho dễ đọc.
 NHƯỢC ĐIỂM :
- Không hỗ trợ biểu thức điều kiện/ vòng lặp (cần cài đặt thêm để chạy
được vịng lặp)
- Khơng hỗ trợ test report (cần cài đặt thêm để hiển thị report)
- Không cho phép đọc dữ liệu từ file: text (.txt), excel (.xls), .csv… (cần cài
đặt thêm để đọc dữ liệu từ file .csv/ .xml)
- Thực hiện kiểm thử chậm so với Selenium RC và Webdriver.

4.4 Giới thiệu Selenium RC, Selenium Webdriver và môi trường cài đặt
4.4.1 Giới thiệu về Selenium RC, Selenium WebDriver
Với Selenium IDE, chúng ta có thể tạo được các test case ở mức đơn giản
với Record và Playback. Bằng cách sử dụng thêm các add-in bên ngồi, chúng
ta có thể tiến hơn một bước trong việc sử dụng cấu trúc điều khiển để test case
linh động hơn. Tuy nhiên các add- in không thực sự mạnh trong điều khiển
workflow của test case. Để bù đắp việc này, Selenium cung cấp cho chúng ta hai
loại thư
viện để sử dụng mã nguồn của Selenium là Selenium RC và Selenium
WebDriver.Cả Selenium RC và Selenium WebDriver đều là công cụ phổ biến
hỗ trợ kiểm thửtự động ứng dụng web. Người dùng có thể phát triển các bài test
tự động trong các ngôn ngữ lập trình như C#, Java, Python, Php, Perl và Ruby...
[2]
Selenium WebDriver có thể coi là phiên bản kế tiếp của Selenium RC, nó
mang đến một giao diện lập trình đơn giản hơn và giải quyết một số hạn chế của
Selenium RC. Bên cạnh đó Selenium WebDriver khơng phải khơng có yếu
điểm.
1. Selenium RC

14


Hình 12: Kiến trúc của Selenium RC

Selenium RC có cấu trúc gồm 2 thành phần:

- Selenium – RC Server: Nhận lệnh từ chương trình kiểm thử Selenium,
thực hiện biên dịch và gửi lại thông báo kết quả của việc chạy các test case. Máy
chủ Selenium được tích hợp Selenium Core và tự động đưa nó vào trình duyệt.
Selenium- Core là một chương trình JavaScript, thực tế là một tập các chức năng

JavaScript dùng để biên dịch và thực thi các lệnh Selenese.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ử.
- Các thư viện máy khách: Cung cấp giao tiếp giữa ngôn ngữ lập trình và
máy chủ Selenium RC và cung cấp thư viện cho phép chạy lệnh Selenium từ
chương trình của chúng ta. 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.
Cách thức làm việc của Selenium RC như sau:
- Trước khi bắt đầu thực hiện kiểm thử chúng ta phải chạy Selenium –RC
Server.
- Khi chúng ta bắt đầu thực hiện kiểm thử, Selenium -RC Sever sẽ truyền
một chương trình Javascript gọi là Selenium Core vào trong trình duyệt.
Selenium Core sẽ nhận chỉ thị được đưa ra bởi Selenium – RC Sever.
- Tiếp theo Selenium Core sẽ thực hiện các chỉ thị này như một lệnh
Javascript.
- Lúc này trình duyệt mới nhận được lệnh từ Selenium Core và phản hồi
lại Server.
- Cuối cùng Selenium – RC Sever trả về kết quả.
2. Selenium WebDriver

15


Hình 13: Kiến trúc của Selenium WebDriver

Kiến trúc của Selenium WebDriver cải tiến hơn so với Selenium RC.
Chúng sử dụng browser’s native support để làm việc trực tiếp với trình duyệt.
Làm thế nào để sử dụng trực tiếp với trình duyệt và các tính năng mà WebDriver
hỗ trợ phụ thuộc vào trình duyệt mà bạn sử dụng. Với Selenium RC chúng làm
việc cùng một cách cho những trình duyệt được hỗ trợ Selenium –RC Server
gắn đoạn mã JavaScript vào trong trình duyệt khi trình duyệt đã được nạp, cịn

WebDriver khơng sử dụng kỹ thuật này, chúng sẽ yêu cầu đến trình duyệt được
thực thi sử dụng các trình duyệt được sử dụng để hỗ trợ cho tự động hóa, đó
chính là browser’s native support. Selenium WebDriver sẽ sử dụng cách thích
hợp nhất để làm việc với mỗi trình duyệt khác nhau. Do vậy khi làm việc với
các trình duyệt mới nó sẽ khơng được hỗ trợ ngay lập tức như chúng ta làm việc
với Selenium RC.[2]
Một số trường hợp nên kết hợp sử dụng Selenium – RC Sever cùng với
Selenium WebDriver đó là khi bạn cần sử dụng Selenium Grid để thực hiện bài
test trên nhiều trình duyệt hoặc máy ảo và khi bạn muốn kết nối với một máy
tính từ xa có một phiên bản trình duyệt cụ thể nào đó khơng phải là trên máy
tính hiện tại của bạn.
Ưu điểm của Selenium WebDriver là tốc độ thực thi và nhận phản hồi từ
trình duyệt nhanh hơn Selenium RC 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, mất thời gian
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.
Hơn nữa nó được phát triển để hỗ trợ các trang web động( những trang web mà
phần tử trong đó có thể thay đổi ngay cả khi trang đó khơng được tải lại). Mục
đích của Selenium WebDriver là hỗ trợ cho các vấn đề kiểm thử web- app hiện
nay.
4.4.2 Cài đặt Selenium RC và Selelenium WebDriver với ngôn ngữ Java
Để cài đặt Selenium RC cần thực hiện các bước :
- Bước 1: Download Selenium RC từ trang
/>- Bước 2: Cài đặt Selenium – RC Sever
Máy chủ Selenium RC là một tập tin jar Java (phiên bản hiện tại là selenium server- standalone- 2.53.0 .jar) đơn giản, nó khơng cần cài đặt đặc biệt nào. Chỉ
cần tải về các file zip và giải nén các máy chủ trong thư mục mong muốn.
- Bước 3: Chạy Seleium – RC Server
Khởi động Server: đi đến thư mục chứa máy chủ Selenium RC, chạy file từ bảng
điều khiển dòng lệnh (Command-line console): Java jar selenium-serverstandalone-2.53.0.jar.
- Bước 4: Sử dụng Java Client Driver
 Download Selenium RC từ trang />16








Giải nén file selenium-java-client-driver.jar.
Mở Java IDE (Eclipse, NetBeans, IntelliJ, Netweaver, v.v..).
Tạo một project mới.
Từ Selenium-IDE xuất ra một kịch bản cho một file Java và đặt nó trong
project
 Add file selenium-java-client-driver.jar vào project.
 Chạy Selenium sever từ bảng điều khiển.
Cài đặt Selenium WebDriver:
- Bước 1: Cài đặt Chrome Browser
Đầu tiên, chúng ta cài đặt Chrome Browser ở trang chủ. Một lưu ý cực kì quan
trọng là sau bước này, các bạn phải tiến hành kiểm tra phiên bản để tải
ChromeDriver cho đúng, nếu không sẽ phát sinh lỗi khi Run script.
Chọn Settings => About Chrome

Hình 14: Cài đặt Chrome Brower

- Bước 2: Cài đặt Chrome Driver
Tiếp theo là tải về Chrome Driver, truy cập vào đường link:
/>
17


Hình 15: Cài đặt Chrome Driver


Các bạn phải tải về đúng version 113.x.xxx.xx của Chrome.
Chọn file tải về theo Hệ điều hành máy tính bạn đang sử dụng.
Sau khi tải về, các bạn giải nén ra, sẽ ra một tập tin tên là chromedriver.exe (trên
Window).
Nhớ lưu ý đường dẫn của file. Ví dụ: ở ổ đĩa C vào trong thư mục tên
WebDriver thì đường dẫn là: C:\WebDriver\chromedriver_win32.
- Bước 3: Download Pycharm Community Edition
Truy cập đường link:
/>Tải Pycharm, sử dụng bản Community

Hình 16: Tải Pycharm Community Edition

Sau khi tải xong Pycharm, vào mục File-> Settings->Python Interpreter
Import chon biểu tượng + để tải xuống thư viện cần thiết các thư viện sau:
 Selenium
18


 Webdriver_manager

Hình 17: Giải nén giao diện import thư viên Pycharm

Sau khi download thư viện cần thiết hãy copy 2 tệp tin LICENSE.chromedriver
và chromedriver.exe vào project Pycharm để tạo môi trường test

Hình 18: Gộp chung file chromedriver vào project tạo mới

4.4.3 Ưu và nhược điểm của Selenium WebDriver
 ƯU ĐIỂM CỦA SELENIUM WEBDRIVER:

- Cài đặt đơn giản hơn Selenium RC
- Giao tiếp trực tiếp với trình duyệt
- Sự tương tác của trình duyệt thực tế hơn
19


Thời gian thực hiện nhanh hơn IDE và RC
 NHƯỢC ĐIỂM CỦA SELENIUM WEBDRIVER:
- Cài đặt phức tạp hơn IDE
- u cầu phải có kiến thức lập trình
- Khơng thể sẵn sàng hỗ trợ các trình duyệt mới
- Khơng có cơ chế tích hợp để ghi lại các thơng điệp thời gian chạy và
tạo ra các kết quả kiểm tra.
-

4.5 Kết luận
Trong phần của bài tập lớn đã đưa ra khái niệm, quy trình, ưu và nhược
điểm, lý do của kiểm thử tự động. Giới thiệu công cụ selenium và tìm hiểu đi
sâu vào 3 thành phần cơ bản của Selenium là Selenium IDE, Selenium RC và
Selenium WebDriver. Phần 5 sẽ ứng dụng trực tiếp Selenium IDE và Selenium
WebDriver để kiểm thử chức năng của website Shopee.

PHẦN 5. ỨNG DỤNG SELENIUM IDE, SELENIUM RC
VA SELENIUM WEBDRIVER VAO KIỂM THỬ
WEBSITE
5.1 Giới thiệu website Shopee
Shopee là một trang web thương mại điện tử được thành lập tại Singapore
vào năm 2015. Hiện nay, Shopee đã có mặt ở nhiều quốc gia và vùng lãnh thổ
trên tồn thế giới, bao gồm Đơng Nam Á, Đài Loan, Hàn Quốc, Brazil và Thổ
Nhĩ Kỳ.

Shopee cung cấp một nền tảng mua sắm trực tuyến, cho phép người dùng
mua và bán hàng trực tuyến. Shopee cung cấp một loạt các sản phẩm, từ quần
áo, giày dép, đồ điện tử, đồ gia dụng cho đến đồ chơi và các sản phẩm mỹ phẩm.
Ngồi ra, Shopee cịn cung cấp dịch vụ giao hàng và thanh toán trực tuyến để
đảm bảo tính tiện lợi cho khách hàng.
Tổng quan lại, Shopee là một trang web thương mại điện tử đáng tin cậy và
phổ biến, cung cấp cho người dùng một trải nghiệm mua sắm trực tuyến thuận
tiện và đa dạng.

20



×