1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động

65 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Ứng Dụng Phương Pháp Và Công Cụ Kiểm Thử Phần Mềm Tự Động
Tác giả Tụ Thị Nga
Người hướng dẫn TS. Nguyễn Thanh Hùng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2017
Thành phố Hà Nội
Định dạng
Số trang 65
Dung lượng 1,51 MB

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

Nội dung

Tuy nhiên , vẫn can phải thao tắc từng tcstcase với việc xây dựng kịch bản bởi script và hầu như việc đó luôn đòi hỏi người kiểm thử phải có khả năng về lập trình Để tải “NGHIÊN CỬU - Ứ

Trang 1

*ỨU - ỨNG DỤNG PHƯƠNG PHÁP VA CONG CL

KIEM THU PHAN MEM TU BONG

Chuyên ngành : Công nghệ thông tin

LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀ XH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS NGUYÊN THANH HÙNG

HàNội 2017

Trang 2

LOT CAM BOAN

Trường Đại học Bach Khoa

cứu trên Internet, sách bảo, các tài liệu trong và ngoái nước có liên quan Không sao

chép hay sử dụng bái làm của bắt kỷ ai khác, mọi tài liệu đều được trích dẫn cụ thể

Tôi xm chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quy Thầy Cô, Khoa và Nhà trường,

Hà Nội, ngày 22 tháng 11 năm 2017

Người cam đoan

Tỏ Thị Nga

Trang 3

LOT CAM ON

Lời dầu tiên tôi xin chân thành cam ơn TS Nguyén Thanh Hùng — Bộ môn

Công nghệ phản mẻm - Viện Công nghệ thêng tin và truyền thông - Dại hoc Bach

ó thể hoàn

khoa Hà Nội người đã hướng đẫu vỗ cùng tận tình, lâm huyết để t

thành luận văn này

Tôi cũng chân thành cam ơn các thây cô trong bộ môn Công nghệ thông tin

đã tận tình chỉ bâo và giúp đỡ tôi trong suốt thời gian học và rong quá trình thực

hiện luận vẫn này

‘VA cudi cling téi xin cảm ơn tất cả gia đình, bạn bè, những người đã sát cánh

cùng chúa sẽ với tôi những lúc kho khăn giúp tôi có động lực để hoàn thành tốt luận

vẫn này,

Học viên

Tô Thị Nga

Trang 4

DANH MỤC BẰNG VŨ à Hinh rreureiereeireooÐ

CHUONG I : TÌM HIẾU TONG QUAN VE KIEM THU TU BONG VA CONG:

2.1 Mô hình chung của kiểm thứ tự động phân mễm 13

3 Một số công cụ kiểm thử phân riềm tự động 15

3.1 Nghiên cứn công cụ kiểm thử tự động QuiekTest Professional 15

3.1.1 Loại phần mềm hỗ trợ cccccctcttrrrreecee —-

3.2 Nghiên cứu công cụ kiểm: thử hiệu rằng, 17 3.2.1 Khải quát về kiểm thử hiệu năng, 17

Trang 5

4 Nghiên cửu công cụ§elenium seseeoo.TỂ

4.4.2 Nhược điểm Hinh rerưec —

5 Chitiếtvề Selerium Webdriver ceeeeeeoeeooo.2

5.2 Ca ché cdc script duoe vidt ra bang Selenium Webdriver 27

5.3 Các thư viện cân thiết đẻ chạy 5eleriunWebDriver ¬“

2 Phan tich yeu cat ccecccssssesssssssseceeeseesseseeeseeeee vee ˆ

Trang 6

3.2.1 Đặc tả Usocase Inport file Test Casc

3.2.2 Đặo tả Laecase Import file Config

2.2.3 Đặc tả Llsecase Chạy kịch ban kiểm thử

2.2.4 Đặc tả Usecase Dừng chạy kịch bản kiểm thử

2.2.5, Die té Usecase Quan lý Test Case Empert cà sài

2.2.6 Dic ta Lisecase Xda TestCase

2.2.7 Diic té Usecase Quan ly Test Result

2.3.Biếu đồ hoạt động,

3 ‘Trién khai van

3.1 Tạo ProjcoL sử dụng thư viện Maven

3.2, Tạo Page ObjeotModel (POM) co

3.2.1 Page ỞbjeeL làgÏ nên

343 Cau tric project

4.Chuẩu bị môi Irường kiểm Oni

3.Chuẩn bị đữ liệu kiểm thử ca seeerierre

6 Tạo Ble Câu tủnh

7 Kết luận chương, - -

CHUONG II: TRIEN KHAI VA KIEM THU HE THONG

1 Cài đặt triển khai hệ thông,

2.1 Giao điện của công cụ kiểm thử

3.2 Các tỉnh năng hiển thị trên công cụ seesntnnnessee

2.3 Xuất kết quã kiếm tra

Trang 7

3.1 Lên kế hoạch kiểm thử Hee ke

3.2 Thiết kế kịch bản kiếm thử công cu

3.2.1 Kiểm thử giao diện

Trang 8

DANH MUC KY ATEU CHU VIET TAT

Quick lest Professional QTP

LETML (Lyper ‘Text Markup

Ngôn ngữ đánh đầu siêu văn bên

Trang 9

DANH MUC BANG VE

Bảng 1 : Mô hình chung của kiểm thể tự dộng phần mêm 9 Bảng 2 : Các bước thực hiện kiếm thứ tự động 11

Bảng 4: Thư viên cần thiết dễ chạy Selemurn WebDriver 34 Bang 5 : Locate element sử dựng WebDriver 34 Bang 6 : Các hàm thường sử dụng trong, Selaniam Webdriver 35 Bang 7: Pile t Usecase Import file Tesh Case 40 Bang 8 : Dic ta Usecase Import file Config 4 Bảng 9 : Đặc tả Llsecase Chạy kịch ban kiém thit 42 Bảng 10: Đặc lã UUsecase Dùng chạy kịch bên kiểm thứ 4 Bang L1 : Dặc tã UIsecase Quản lý Test Case impert 44

Bảng 13: Đặc lã UIsecase Quân lý Test Result SI

Bang 16 : Test case chite ning Mua hang online li lãng 17: Kết quá chạy kiểm thử export ra exeel 53 Bang 18 : Test Case kiểm thử chức năng phân mêm 55 Bang 19: Test Case kiém thử chức năng phân miền: $?

Trang 10

Tương tác của Selenium RC đến máy chủ

‘Tuong tac tia Selenium Webdriver

Ac dinh phan tt Web theo ID Xác định phân tử Web theo Name

Xác định phân tử Web theo LinkText

Xac dinh phin tik Web theo TagName esessessesessasiestsanneeisen

Xác định phần tử Web theo ClassName

Hình 1.4.10 Xác dịnh phân tit Web theo CSS

Hình 2.1 Mô hình ý tưởng của phẩn miền:

Uscease ting quart cho hệ thống

Bidu dé hoat déng cho flow kiêm thử website đựa theo kịch bản

Cấu trúc POM Cầu trúc Projgt, con vn 02 cctctcerrrrrcer

Mẫu bình đồng ký

Màn hình [.ogin tài khoản học viên

Luéng kiém thứ nghiệp vụ đặt hàng trén website tiki

File cầu hình

Giao diện phần mềm sec

Kết quả export ra html cn ne or

Trang 11

Để tạo ra sân phẩm công nghệ thông lu hay phần miễn có chất lượng thì hoạt động, kiểm thử phần mềm đóng vai trỏ rất quan trọng, rong khi đỏ hoạt động nảy lại tiêu tốn và chiếm tỷ trọng khá lớn công sức và thời gian trong một đự án

Qua thực tế cho thấy, có rất nhiêu công cụ trong việc kiểm thử tự động phan mém đáp ứng được việc giảm nhân lực, giảm thời gian, hạn chế sai sót Tuy nhiên , vẫn can phải thao tắc từng tcstcase với việc xây dựng kịch bản bởi script và hầu như

việc đó luôn đòi hỏi người kiểm thử phải có khả năng về lập trình

Để tải “NGHIÊN CỬU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIÊM

THU PHAN MEM TỰ ĐÔNG" nhằm đưa ra cái nhìn tông quan về lĩnh vực kiếm thử tự động, giới thiệu về một số loại công cụ kiểm tha Va tng dung Sctemum Webdriver dé xay dựng một phần mềm kiểm thitty động website đáp ứng được nhu cầu của người ding, dam bao được tỉnh chính xác của công cụ kiếm thử và đặc biệt có thể áp dụng cho những người không có nhiều kiến thức về lập trình

Nội đụng luận văn bao gdm

Chương 1 : Tìm hiểu tổng quan về kiểm thử tự dộng và công cy ty dong

Chương 2 : Tự động hóa kịch bản kiểm thử sử dung Selenium

Chương 3 : Triến khai và kiểm thủ hệ thắng,

Chương 4: Đảnh giá kết quả

Trang 12

PHAN NOT DUNG

CHƯƠNG L : ‘TiM LOEU ‘TONG QUAN VI KUEM THU TY DONG VA

CƠNG CỤ TỰ ĐỌNG

1 Ý nghĩa, khái niệm kiểm thứ tự động phần mềm

1.1 Kiểm thử tự dộng phần mễm là gì

Kiểm thử tự động phần mềm là thực hiện kiểm thử phần mêm bằng một

chương trình đặc biệt với rất it hoặc khơng cĩ sự tương tác của con người Dĩ là

quả trình thực hiện một cách tự động các bước trong một kịch bản kiểm thử Cơng,

cụ kiểm thứ tự động cĩ thể lấy dự liệu từ file bên ngồi (excel, csv, .) nhập vào

từng dựng, sa sánh kết quả mang đợi (ti exeel, osv) với kết quả thựo tế và xuất ra

ráo náo kế! quả

lặp đi lặp lại các bước nhằm chán

êm thử Nĩ giúp các kỹ sư kiểm (hữ (người kiểm thử) khơng phải

1.2 Tại sao cần phải kiểm thứ tự động phần mềm

Kiểm thử phần mém tự động với mục đích :

«- điểm bớt cơng sức và thời gian thực hiện quá trình kiểm thit

+ Tăng độ tỉn cậy

© Giảm sự nhảm chán cho con người

+ Rên luyện kỹ năng lập trình cho kiểm thử viên

«_ Giảm chỉ phí cho tơng quả trình kiêm thứ

Khi nào cần kiểm thử tự dộng phần mềm?

« Khơng đũ tài nguy

o_ Những trường hợp kiếm thử cản thực hiện nhiều lần, thường xuyên phải thực hén regression (csL, một số lượng testeasc lớn cần thục hiện trong mét thoi pian ngắn

ư Kiểm thữ cần thực hiện ở nhiều mơi trường khác nhau

©_ Những projcet cĩ tính ơn định, đặc điểm kĩ thuật dược xác định trước, test màn hình chức năng khơng thay đổi trong tương lai

ò— Những trường họp kiểm thử xác nhận hoại động sơ bản (di chuyển giữa các

màn hình),

Trang 13

o Kiem tra su ket hop ctia nhieu gia tri dau vao ở một bước nào đỏ

© Kiém tra nhiéu man hinh cia dit ligu dau vao

© Kiểm tra hỏi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt và những tính năng đã sửa Tuy nhiên, việc nảy khó đảm bảo vẻ mặt thời gian

¢ Kiem tra kha nang vận hành phân mềm trong môi trường đặc biệt

o._ Đo tốc độ trung bình xử lý một yêu câu của Web server

ø_ Xác đình số yêu cầu tôi đa được xử lý bởi Web Server

o._ Xác định cầu hình máy thấp nhất mả phản mềm vẫn có thê hoạt động tốt

2 Quy trình kiểm thủ tự động phần mềm

2.1 Môhình chung của kiểm thử tự động phần mềm

Kiểm thử tự đông phần mềm bao gồm một chuối các quả trình, các hoạt động, thao tác được quy tụ với nhau đề thực hiện phan mém can kiểm thử vả ghi lại kết

analyser being tested predictions

Trang 14

Trong đỏ, các công cụ được đùng để tự động hỏa quy trình kiểm thử trong mỏ hình kiểm thứ thực hiện các chức năng:

«Test Memger: quân lý việc thực hiện các kiểm thử gũa chương trình, theo dõi đữ

liệu kiểm thứ, kết quả mong đợi và các chức năng, tiện ích của cliương trình

được kiểm thử

œ Test data generator: sinh dir ligu kiém thir cho chương trình

Oracle: tạo các phản đoán của kết quả rong đợi Chú ý, ở đây không phải là cơ

1 'ạo kịch bản kiểm thứ Giai đoạn nảy dùng công cụ kiểm thử để

ghi lại các thao tác lên phân mềm cần kiểm

tra và tự động sinh ra các kịch bản kiểm

thứ

tà Chỉnh sửa kịch bản kiếm thử Chỉnh sửa kịch bản kiếm thử thực hiện

kiểm tra theo dùng yêu cầu dat ra Cu thé,

là làm theo các trường hợp kiểm thử cân

thực hiện

Trang 15

3 | Chay ich ban kiểm thử Chay kích bản kiểm thứ để kiếm tra phân

mềm cỏ dưa ra dúng như kết quả mong

động Đây cũng lá một công cụ ứng dụng phương pháp Keywotk-driven một kỹ

thuật scripling trong kiểm thử tụ động hiện đại cho phép kiểm thứ viên bỗ sưng testease bang cách tạo file mô tả cho nó mà không cân chính sửa hay bỗ sung bắt cứ

script nao

3.1.1 Loại phần mềm hỗ trợ

QTP hỗ trợ nhiều loại phần mềm:

© Ứng dụng wiadowns chuẩn4vin 32

» Ung dung web theo chuẩn HTML/ML chạy trên nhiều trình duyệt

® Str dung Visual basic, hé tro Unicode

2 Mots chương trình khác đồi hồi cải đặt thôm các thư viện

3.1.2 Các thành phần quan trọng của QTP

Action

Giêng như hàm hoặc thủ tục trong các ngôn ngữ lập trình khác, Action ghủ lại

các bước thực hiện kiểm thứ tự động vả nó có thể được sử đọng lại nhiều lân Treng một test seript có thể có nhiều Aetion

Data table

Trang 16

Nơi lưa đữ liêu phục vụ ch kiểm thở tự dòng Một test script sé od mét Data

‘Table duoc ding chung cho tất cá các Action liên cạnh đó, mỗi Acticn cũng có

mol Data Table cho néng minh

Object Repository (OR)

Câu trúc theo đạng cây, mô tả các đối tượng trong phân mềm được kiểm tra

Đây dược xem là câu nối dễ Iest sơripL tương tác với phân mềm dược kiểm tra Khí

ra lệnh cho QP ghi lai céc thao tác người dùng lên phần mềm thị trong OR sẽ tự

động phát sinh thành phần đại điện cho những đôi tượng trên phân mềm vừa được

thao tác OR có thể tổ chức thành 2 loại, một loại đùng chưng cho nhiêu test script, loại khác dùng theo từng Action Dé xem OR, chon menu Tools > Object

Repository

Checkpoint

Có thể hiểu là nơi kiểm tra trong test script, khi chạy nó sẽ thực hiện so sánh kết quả thực tế khi kiếm tra phần mềm với két qua mong đợi Sau khi tiên hành so sánh QTP số tự dòng ghỉ lại kết quả vào Test Results (nơi lưu kết quả khí chạy tesL

« _ Thực hiện kiểm thử tự dông nhiều trình duyệt cùng một lúc

© Quan ly cae didu kién kiểm thử, xử lý ngoai lê, cho phép kiểm thử hưởng dữ liệu tốt

Trang 17

© QTP mat phí nên công cy nay không được sử đụng rộng rãi

3.2 Nghiên cúu công cự kiểm thử hiệu năng

3.2.1 Khái quát về kiểm thử hiệu năng

liếm thử nhằm xác định mức độ đáp ứng, băng,

Performance Testing 1 một loại

thông, độ iu cậy hoặc khả nắng mở rộng của hệ thống đưới một khỏi lượng làm

việc truy cập nhất định Performance Testing thường được sử dụng để:

© Banh gia mute dé sn sáng của sản phẩm

© Panh gid dim vao eae tidu chi hi L

© So sánh giữa các đặc tính hiệu suất của đa hệ thắng hoặc câu hình hệ thông,

« _ Timra nguồn gốc của các vẫn để về hiệu suất,

© H6 tro didu chỉnh hệ thống

© Tim ede mite d6 bing thong

3.2.2 Nghiên cúu về công cu Toad Runner

Dặc điểm

T.oadRtmmer giả lập nhiều người dùng do thực hiện các giáo địch củng ruột

lúc Sau đỏ LoadRtumer giảm sát các thông số xứ lý của phan mém duge kiểm tra

Kết quả thẳng kê sẽ được hưu lại và cho phép kiểm thử viên thục hiện phân tích

Virtual User 'Tự động tạo ra VuGen script để lưu lại các thao tac người Generator dùng lương tác lên phản ruềm VuGen sơripL này còn được

xem là hoạt dộng của một người ão mà LoadRuianor giả lap

Controller chức, điều chính, quản lý và giảm sát hoạt động kiểm tra

tải Thanh phan này có chức nẵng Tạo ra những tỉnh huồng

(scenario) kiém tra

Load Generator Cho phép giả lập hàng ngày người dùng, hoạt đông của

Trang 18

từng người sẽ được thực luện theo VuGŒen surp Kết quả

thực hiện sẽ dược thong bao cho Controller

Analysis Cưng cập việc xem, phân tích vả so sánh các kết quả

Launcher Nơi tập trung tất cá các thành phản của LoadRunner cho

người dùng

Bang 3 : Cac thanh plan cia Load Rumer

4 Nghiên cứu công cụ Selenium

4.1 Tóm tắt lịch sử Selenium

Selemium được đưa vào sử dụng lần đầu tiên vào nm 2004 khi Jason Huggins

đã thử nghiệm một ứng dựng nội bộ tại thoughfWcrks Anh ta đã phát triển thư viên Javascript ma cé thế điều chỉnh tương tác với các trang, cho phép anh ta chạy

tự động đối với nhiều trình đuyệt Thứ viện đó cuối cùng trở thành Sclenium core, nằm dưới mọi chức năng của của Seleniam Remote Control vả selenium LDE

Năm 2006, một kỹ sir tai nang tai Google tén la Simon Stewart bắt đầu công,

việc trên một dự én ma edu ta goi la WebDriver Cho dén nim 2008, Seleium da

trở thành cộng, đồng lớn và hỗ trợ thương mại

4.2 Dặc điểm của Selenium

8elcnimm lả bộ công cụ mã nguồn mở, mạnh mẽ, hỗ trợ các ửng, dụng trên nền web,

“nhiều platform và các trình duyệt phổ biến Nó gồm nhiều công cụ với cách tiếp cận khảo nhau để hỗ trợ kiểm thử tụ đông Bộ công cu nay rat linh hoạt che phép lựa chon các yêu tổ giao diện hay so sảnh kết quã thí nghiệm dự kiến với thực tiễn

Selenium hé tro kiém tra hau hết trên các trình đuyệt phổ biển hiện nay như FirefaxImtermet Explorer, Safari cũng như các hệ điều hảnh châ yếu như

Windows, Linux , Mae , va hé trợ một số lớn các ngôn nạữ lập trình như C#, Java , Perl , PLIP , Python, Ruby

Selenium co thé két hyp hém với mội số

ông cụ khác như Bromieu , Jumii 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,

ou bé trợ

Trang 19

Hinh 1.4.1, So d6 cau tric Selenium

4.3.1 Selenium IDE (Integrated Development Environment)

Selenium IDE lả công cụ giúp bạn phát triển ca kiểm thử được xây dung dudi dạng add-ons của Fire-fox Nó là cách tiên lợi nhất đẻ xây dựng các ca kiểm thử, gồm các phân tử giao diện giúp chúng ta có thể lựa chọn thé hiện các thao tác,

không chỉ tiết kiểm thời gian mà còn là cách thông mình dé hiểu kich bản

Selenium

Bé céng cu nay cung cap chite ning “thu va chay lai” Record and Playback Nho

đó người kiểm thử có thé nhanh chóng tạo một bộ kịch ban kiem tra (test script)

bằng cách trực tiếp “thu” các thao tác của mình trên đổi tượng cân kiểm tra thành

một tập những câu lệnh “Selenese” ( ngôn ngữ kịch bản được phát triển cho

Selenium IDE va Selenium Core — có dạng bản HTML )

Trang 20

Sau đỏ chạy lại các câu lệnh này để kiểm tra Chức năng năng nảy rất hữu dụng ,

cho phép tiết kiệm thời gian viết kịch bản kiểm tra Selenium IDE cho phép lưu

kịch bản đã thu dưới nhiều loại ngôn ngữ lập trình Selenium IDE có kiến trúc gồm

Đrowser và Web Server như hình:

Selenium Grid cho phép các giải pháp Selenium RC đề kiểm tra trên quy mô

lớn vả dành cho việc kiểm thử và phải chay trong nhiều môi trường Selenium Grid

cho phép chạy các trường hợp kiểm tra song song, tức là các trường hợp kiểm tra

khác nhau có thẻ chạy tại một thời điểm trên các máy từ xa khác nhau Điều nảy có hai lợi thể Thứ nhát, trường hợp có bộ đữ liêu kiểm tra lớn hoặc bộ dữ liệu kiểm

tra chạy chậm, tacỏ thể tăng hiệu suất nỏ dang ké bang cach sit dung Selenium

Giid tới việc phân chia các trường hợp kiểm tra để chạy các trường hợp kiểm tra

khác nhau tại một thời điểm và trên nhiều máy khác nhau

Nhu vay, neu chạy các trường hợp kiêm tra trên nhiêu môi trường, ta có thẻ hỗ trợ các máy từ xa khác nhau vả thực hiện chúng tại một thời điểm Trong mỗi

trường hợp Selenium Grid cải thiện được nhiều thời gian mà nó phải chạy cho các

Trang 21

trường hợp kiểm tra bang cách sử dụng tiễn trình song song

4.3.3 Selenium RC

Với bộ uông cu này cho phép nhận cic Test soripL được thu bởi Seleniurn TDE,

chơ phép chính sửa cãi tiến linh dòng bằng 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 thị kiểm tra trực tiếp trên trình duyệt đó Sclenium RC còn cưng cấp khả nồng lưu lại kết quả kiểm tra

Selenium RC 1a một thư viện phố biến cho việc kiếm tra tự động hóa giao điện User

Tuterface(UT ), cho phép các nhà phải tiển và người kiểm tra tự động tương Lắc của

họ với việckiểm thử ứng dụng WebWeb Applieaton Undar Test (WAUT) bởi

chương trình được cung cấp các thư viện cân thiết, được hã trợ bang nhiều ngôn

Selenium RC hoa doug whu md may chủ proxy HTTP Khi kịch bản thử nghiệm

yêu cầu khởi chay trình duyệt, máy chủ 8elennun RC khởi chạy trình duyệt và dưa

vào JavaScript (Selenium Core) vao trinh đuyệt Lắt cá các yêu cầu tiếp theo cho WAUT đi thông qua Selemium RC (hoại động như một máy chủ HTTP Proxy) tới xáy chủ web thực lưu trữ WAUT Do dé Jam cho trinh duyệt nghĩ rằng ửng dụng, web đang được được phục vụ từ miễn máy chủ của Selenium RC so với tên miễn của máy chủ web thực và cho phép Selenium Core thực hiện và điểu khiến ứng

dung web.

Trang 22

Với Selenium IDE, chủng ta cỏ thể tạo được các test case ở mức đơn giản

với Record-Playback Bằng cách sử dụng thêm các add-on bên ngoà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-on 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 cap cho chúng ta hai loại thư viện đẻ

sử dụng mã nguồn của Selenium khi tương tác với img dung Web: Selenium

Remote Control (Selenium RC) và Selenium WebDriver (Selenium 2)

Về cơ bản thì cả hai loại Selenium nảy đều cho phép chủng ta sử dụng các ngôn ngữ lập trình - Java; Net; PHP; Python; Perl; Ruby — dé thiet ké test script

Trang 23

Sai [ees

ole

44

Hình 1.4.4 Tương tác của Selenium Webdriver

Ưu, nhược điểm cia Selenium

4.4.1 Ưu điểm

Selenium la mã nguồn mở , có thể download souree code vẻ sử dụng, và thay

đổi code tủy theo nhu cầu sử dụng

Dễ sử dụng vả phát triển, cải thiện được thời gian cho người thực hiện kiểm thử, không lãng phi thời gian cho những công việc lặp đi lặp lại nhiều lan Ly

do 1a Selenium IDE cung cấp chức năng thu vả chạy lại nên người kiểm thử có

thể nhanh chóng tạo ra một bộ kịch bản kiểm tra (test script) bằng cách trực tiếp

thu các thao tác củaminh trên đối tượng cân kiểm tra thành một tập những câu

lệnh Selenese (ngôn ngữ kịch bản được dùng riêng cho Selenum IDE va

Selenium Core, có dạng bảng HTML) Sau đỏ chạy lại các câu lệnh nay dé

kiểm tra Chức năng này rất hữu dụng giúp tiết kiệm thờigian viết kịch bản

kiểm tra

Selenium cho phép viết test seripts ở nhiễu ngôn ngữ từ : Java, C#, Perl,

Python, Ruby, PHP

Trang 24

* Selenium hé tro nhiều hệ diễu hành : Windows, Linux, Macintosh (viết Test

Cases có thể deploy ở các hệ điều hành khác)

© Selenium hé tro whidu trinh duyét lon (Movilla, Chrome, TE, Opera, Safari.)

© Selenium lá công cụ test tự déug recording, editing va debugging

4.4.2 Nhược diễm

œ_ Không được cung cấp Technical support free va tin cây vì lả mã nguồn mở

œ© Chỉ hỗ trợ các ứng dụng Web

e Kho st dung, cân có thời gian hoc viét Test case ( Selenium Webdriver chỉ có

lập trinh giao diện, không có các tính năng như Recording, Checkpoint, Data

Table nén phai viét tỉmg lnrớc một cho mi task)

© Kho cai dit mội trudng Test Selenium hon Silk Test,

e Íthỗ trợ che việc Test hình ảnh

5 Chitiếtvề Selenium Webdriver

vi 1 Tổng quan về dối tượng U1(Locators)

Trong kiếm thử tự động, phan quan trọng là phải làm sao cho công cụ kiểm thử nhận biết và phân biệt được các đổi lượng UI trên phần mém ma chung ta dang

kiểm tra Trong kiểm thủ, đây là xây đựng bộ giao điện người đùng ( build GUL

TReposilories)

Đổ có thể tạo một GUI Repository tốt, cần xác định mỏ tả vật lý của dỗi tượng UI

một cách chính xác, đơn nhất và ốn định Tính chính xác, đơn nhật của mô tả vật lý

ding để dim bao các scrip viết ra có thể chạy một gách đúng đẫn Tính ổn định giúp người dùng không phải chính sửa nhiều khi phần mềm có sự thay dồi

Di Tượng UI— Locators

Selcniun hỗ trợ xác định UI dựa trên các thuộc tính, và gọi xnột cách xác dịnh đói tượng LII thông qua thuộc tỉnh của nó lả locator, như sau:

» ID

« Name

= Linh Text

+ CSS Selector

Trang 25

Đối với ID, đây được coi như lả thuộc tỉnh đơn nhật và ôn định nhất của hệ thông

phần mềm Nếu có thẻ sử dụng ID cho việc xác định UI thi quá tốt Nhưng, tất cả

chúng ta đều biết, hiếm có một nhà phát triển phân mềm nảo lại chăm chỉ đến mức

gắn ID cho mọi đối tượng UI Don gian 1a vi ID không phải là một thuộc tỉnh bắt

buộc và nó không hiện thị trên giao diện nên bên viết ra phản mềm không chủ ý đến

Hình 1.4.5 Xác định phân tử Web theoID

Vé phan Name, Name 1a lua chọn thứ hai sau ID Tuy nhiên, thuộc tính Name đôi

Khi không đơn nhất Không cỏ một ràng buộc nảo bắt Name phải đơn nhất cả

Hình 1.4.6 Xác định phần tử Web theoName

Trang 26

Link Text, Thuộc tỉnh Link Text là không đơn nhất vả cũng không ôn định Một

trang web có thể cỏ nhiêu liên kết đến một trang khác hay thay đổi từ ngữ nhưng

không đổi ý nghĩa

Trang 27

Hình 1.4.9 Xác định phần tử Web theoClassName

Hình 1.4.10 Xác định phân tử Web theo CSS

Cuối củng, XPath Day được xem như lả thuộc tỉnh hay dùng nhất của Selenium Tuy nhiên, cách này lại thiểu chính xác, thiểu đơn nhất và thiểu én định nhất trong,

tat cả các cách xác định đối tong UL

5.2 Cơ chế các seript được viết ra bằng Selenium Webdriver

1) Để Selenium driver cỏ thể mô phỏng hành động như cliek chuột hay điền giả trị,

đầu tiên nó phải xác định được vị trí của element (phân tử) trên trang web mà nó

sẽ tương tac (dua vao cac thé html)

2) Sau khi đã xác định được vị trí, thì sẽ xác định hành động đối với element đỏ

(thông qua các API được viết sẵn trong các gói thư viên của Webdriver, nhu da

nói ở trên)

3) Sau khi hoàn thành 1 list các hành động theo trình tự ( giống như thực hiện với

manual test), ta sẽ kiểm tra xem trang web cỏ thực hiện đúng hay không

Ví dụ: Kiểm tra chức năng login

1) Cân phải xác định được vị trí của các element: Username, Password va Submit

Button va noi cho Webdriver biét vị trí của từng hạng mục

2) Hành động đổi với Usemame và Password là nhập dữ liệu, ta sẽ dùng các

phương thức nhập dữ liệu Với Submit Button thì ta dùng phương thức mô

Trang 28

phỏng Click chuột

3) Viết câu lệnh kiểm tra xem với dữ liệu nhập vào thì login có thành công hay:

không bằng cách xem nỏ cỏ chuyển sang page khác hay vẫn ở lại page Login

Với thao tác bình thường, ta rất đề cỏ thể kiểm tra được xem Login nhu thé 1a Fail hay Pass nhưng với tự động, việc đó tương đối khó khăn

Khi run Script, điều gì sẽ xảy ra?

Khi viet xong script, muon run dé xem thử có bao nhiêu TC fail hay pass Khi run,

Selenium driver sé gọi trực tiếp (direct call) trình duyệt thông qua driver của chính

trình duyệt đó (chromedriver, firefoxdriver ) Sau đó các hành động trên script sé

được thực thị

Chỉ tiết của việc direet call:

©_ Với mỗi 1 hảnh động từ seript, một HTTP request sẽ được tạo ra

¢ HTTP request do giti dén browser driver

® Mỗi browser driver sẽ có 1 HTTP server dé nhan lay HTTP request

¢ Sau khi nhận, HTTP server xác định những bước cân thiết đẻ thực thi hành

động phản hỏi lại request

e HTTP server thue thi những bước ở trên

© Sau d6, HTTP server tra lại trạng thái thực hiện những hành động cho elient, nơi

dang run script

5.3 Các thư viện cần thiết để chạy SeleniumWebDriver

53.1 Danh sách các thư viện Selenium WebDriver cần caidat

Selenium - Java

+

Trang 29

Bang 4: Thư viện cần thiết để chạy Selenium WebDriver

5.3.2 Sử dụng Maven để cải đặt các thư viện

Cách đề nhất để tuết lập Selenium 2.0 Java project la st dung Maven Maven sé tai

về Java bindings ( thư viện java chent của selenium 2.0) và tất cả những, phần liên

quan Sau dé né sé tao cho chimg ta mét project sit dung file maven pom.xml

(project conliguration)

5.3.3 Cac ham xu ly chung trong ScleniumWebDriver

Locate element str dungWebDriver

BydassName [Value lass alintnats findElement(By.className("someClassName'))

By.cesSelector [Pocalor bing ess findElement(By.cssSelector(“input#email")

Bid Walue cia id attabute findElement(By.idC*someld”))

BylinkTest _[Lovalor bing value findElement(By linkText("REGISTRATION"))

init, webdriver WebDriver driver new FireloxDnver(),

open url driver gct(baseUr);

init webelement WebLlement

element=driver.ñndElement(By className("s

omeClassName"))

Trang 30

click an element driver findElemen((By.className("someClass

WName")).click()

type text to textbox | driver findElement(By className("someClassName"))

sendkey(“test”) refresh current page | driver navigate().refresh()

back page driver navigate().back()

forward page driver navigale().[orward()

Việc tìm hiểu khái quát vẻ kiểm thử phan main tự động và một số công cụ kiểm thử

tự động giúp chúng ta có cái nhín tổng quan về kiểm thứ tự động Hiểu về mục đích, khi nào thì sử dụng công cụ kiểm thử tự động Ngoài ra, ở chương này, có di sâu vào việc phân tích công cụ kiểm thử Selcniam, nhằm phục vụ cho việc áp dung, giải quyết vẫn đề ở bái toán của chương sau

30

Trang 31

CHƯƠNG II TU DONG HOA KỊCH BẢN KIỀM THỬ SỬ DỤNG

SELENIUM

BÀI TOÁN ĐẠT RA

Ung dung Selenium Webdriver dé xay dựng một phản mẻm kiểm thử tự động cho

một số chức năng cơ bản của website hay nghiệp vụ hoạt động của một hệ thống

1 Ý tưởng bài toán:

Mặc dit Selenium là một công cụ kiểm thử tự động, tuy nhiên thì người dùng

van can thao tác với từng test-case riêng rẽ Với só lượng test case lớn, vả trong kiểm thử hỏi quy, thì mất nhiều sức người vả thời gian để thực hiện việc này Do

đỏ ý tưởng của bài toán là xây dựng một module kết nổi với Selenium, đầu vào là

một file chứa toàn bộ test case, các test case này sẽ được kiểm thử tự động bởi

selenium và đầu ra sẽ lả kết quả tương ứng

31

Trang 32

3 'Thực hiện kiểm thứ tự dộng tất cả các test case chữa trong file

4 Đầu ra sẽ là kết quả các trường hợp kiểm thử Eile kết quả được lưu đưới dang file excel hoặc html

Thư vậy, để thực hiện được ý tưởng lrên, cân xây dựng một công cụ giúp kiểm thử

tự động, đăm báo được các tính năng,

« Hỗ trợ plugin mở rộng, không phải tạo lại các soripL cho mỗi kich ban kiểm this

œ Có chúc năng import file Testcase, fife câu hình

'ó chức năng export ra file kết quả test Kết quả cé thể xem được đưới đạng,

file excel hoặc xem thống kê trên website

TUser (Người kiểm thủ)

Người kiểm thử là những người sứ dụng cổng cụ kiểm thứ tự động thực hiện việc

kiểm tra kịch bản kiểm thử cho các chức năng của một website

Website

La đối tượng để hệ thông thực thí kiểm tra chức năng

b Các chức năng chính của hệ thống:

Requirement - Yêu cầu

TIệ thống sẽ quản lý các yên câu theo timg phién bản của Prajeet, các yêu cân sẽ

được chỉatheo cac module.

Ngày đăng: 09/06/2025, 12:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Alan Richardson (2013), Java for Tester , Albans, United Kingdom Ww David Burns (2010) , Seleniton 1.0 Testing Tool , 32 Lincoln Road Olion Birmingham, B27 6PA, UK Sách, tạp chí
Tiêu đề: Java for Tester
Tác giả: Alan Richardson
Nhà XB: Albans, United Kingdom Ww David Burns (2010)
Năm: 2013
3. Kanglin Li and Mengi Wu (2004), Hffective Software Test Automation: Developing an Automated Software Testing Tool, Sybex, San Francisco Sách, tạp chí
Tiêu đề: Effective Software Test Automation: Developing an Automated Software Testing Tool
Tác giả: Kanglin Li, Mengi Wu
Nhà XB: Sybex
Năm: 2004
4. Mark Fewster andDorothy Graham (1994), Software Test Automation Effective use of test execution fools, Copyright. @ by ACM Press, Greal Brilain Sách, tạp chí
Tiêu đề: Software Test Automation Effective use of test execution fools
Tác giả: Mark Fewster, Dorothy Graham
Nhà XB: ACM Press
Năm: 1994
5, Myers and Glenford (1979), The rt of Software Testing, Willey, New York Sách, tạp chí
Tiêu đề: The rt of Software Testing
Tác giả: Myers, Glenford
Nhà XB: Willey
Năm: 1979
6. Ron Patton (2005), Software Testing, Sams Publishing, the United States of America Sách, tạp chí
Tiêu đề: Software Testing
Tác giả: Ron Patton
Nhà XB: Sams Publishing
Năm: 2005
7. Satya Avasarala (2014), Selenium WebDriver Practical Guide, Livery Place 35 Livery Strect Birmingham B3 2PB, UK Sách, tạp chí
Tiêu đề: Selenium WebDriver Practical Guide
Tác giả: Satya Avasarala
Nhà XB: Livery Place 35 Livery Strect Birmingham B3 2PB, UK
Năm: 2014
8. Automation FC , Seleniwn Webdriver , https://daominhdam. wordpress. convcategary/selenium/selenium-webdriver Sách, tạp chí
Tiêu đề: Selenium Webdriver
Tác giả: Automation FC
9. Selenium LIQ Browser Automation , Mave Information, http://does. seleniumhg, arg/download/maven jsp Sách, tạp chí
Tiêu đề: Selenium LIQ Browser Automation
Nhà XB: Mave Information
10. Selenium Rasy , Selenium Tulorials , hlip:/Avww.seleniumeasy.com Sách, tạp chí
Tiêu đề: Selenium Tutorials
Tác giả: Selenium Rasy

HÌNH ẢNH LIÊN QUAN

Bảng  1  :  Mô  hình  chung  của  kiểm  thể  tự  dộng  phần  mêm.  9 - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 1 : Mô hình chung của kiểm thể tự dộng phần mêm. 9 (Trang 9)
Bảng  1  :Mô  hình  chung  của  kiểm  thử  tự  động  phần  mềm: - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 1 :Mô hình chung của kiểm thử tự động phần mềm: (Trang 13)
Hình  1.4.4.  Tương  tác  của  Selenium  Webdriver - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 1.4.4. Tương tác của Selenium Webdriver (Trang 23)
Hình  1.4.6.  Xác định phần  tử  Web  theoName - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 1.4.6. Xác định phần tử Web theoName (Trang 25)
Hình  1.4.8.  Xác  định  phần  tử  Web  theoTagName - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 1.4.8. Xác định phần tử Web theoTagName (Trang 26)
Hình  1.4.9.  Xác  định  phần  tử  Web  theoClassName - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 1.4.9. Xác định phần tử Web theoClassName (Trang 27)
Bảng  6  :  Các  hàm  thường  sử  dụng  trong  Seleniun  Webdriver - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 6 : Các hàm thường sử dụng trong Seleniun Webdriver (Trang 30)
Hình  2.2.1.  Usecase  tổng  quan  cho  hệ  thông, - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 2.2.1. Usecase tổng quan cho hệ thông, (Trang 34)
Bảng  10 :  Đặc  tả  Usecase  Dừng  chạy  kịch  bản  kiểm  thử - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 10 : Đặc tả Usecase Dừng chạy kịch bản kiểm thử (Trang 37)
Hình  2.2.2.  Biểu  đồ  hoạt  động  cho  flow  kiêm  thử  website  dựa  theo  kich  ban - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 2.2.2. Biểu đồ hoạt động cho flow kiêm thử website dựa theo kich ban (Trang 40)
Hình  2.4.1.  Man  hinh  dang  ky - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 2.4.1. Man hinh dang ky (Trang 43)
Hình  2.4.3.  Flow  kiểm  thử  nghiệp  vụ  đặt  hàng  trén  tiki - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
nh 2.4.3. Flow kiểm thử nghiệp vụ đặt hàng trén tiki (Trang 44)
Bảng  16:  Test  case chức năng  Mua hàng online - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 16: Test case chức năng Mua hàng online (Trang 46)
Bảng  18  :  Test  Case - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 18 : Test Case (Trang 56)
Bảng  19  :  Test  Case kiểm thứ chức năng phần  mềm. - Luận văn nghiên cứu Ứng dụng phương pháp và công cụ kiểm thử phần mềm tự Động
ng 19 : Test Case kiểm thứ chức năng phần mềm (Trang 59)

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