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 2LOT 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 3LOT 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 54 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 63.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 73.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 8DANH 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 12PHAN 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 13o 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 14Trong đỏ, 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 16Nơ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 18từ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 19Hinh 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 20Sau đỏ 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 21trườ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 22Vớ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 23Sai [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 26Link 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 27Hì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 28phỏ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 31CHƯƠ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 323 '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.