Báo Cáo Tìm Hiểu Công Cụ Kiểm Thử Selenium.pdf

20 1 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Tìm Hiểu Công Cụ Kiểm Thử Selenium.pdf

Đ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

Trang 1

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

Trang 2

a Selenium Server - Máy chủ Selenium 9 b Client Libraries - Thư viện người dùng 10

Trang 4

TÓM T TẮTóm tắt:

T ng quan:ổ Selenium là m t trong nh ng công c ki m th t đ ng ph bi n nh t, h trộ ữ ụ ể ử ự ộ ổ ế ấ ỗ ợ nhi u n n t ng khác nhau.Selenium ban đ u bao g m 4 thành ph n và hi n nay ch còn 3ề ề ả ầ ồ ầ ệ ỉ thành ph n Tuy nhiên, bài báo cáo v n đi sâu vào c 4 thành ph n c a Selenium.ầ ẫ ả ầ ủ

N i dung:ộ Đ u tiên, Selenium IDE s cung c p GUI (giao di n ng i dùng đ h a) đ dầ ẽ ấ ệ ườ ồ ọ ể ễ dàng ghi l i các t ng tác c a b n v i trang web, t o ra các ca ki m th đ n gi n trênạ ươ ủ ạ ớ ạ ể ử ơ ả Chrome ho c Firefox Th hai, Selenium Remote Control tuy đã đ c lo i b nh ng v nặ ứ ượ ạ ỏ ư ẫ đ c chúng tôi đ c p t i vì Selenium RC là m t b c ngo t quan tr ng trong s phát tri nượ ề ậ ớ ộ ướ ặ ọ ự ể c a Selenium; nó giúp ta gi m b t các bủ ả ớ ước cài đ t n u mu n dùng Selenium-core đ t o raặ ế ố ể ạ các ca ki m th ph c t p Th ba là Selenium Grid cho phép ch y nhi u test song song trênể ử ứ ạ ứ ạ ề các trình duy t, h đi u hành và thi t b khác nhau Cu i cùng nh ng l i là thành ph n m nhệ ệ ề ế ị ố ư ạ ầ ạ m nh t trong b công c - Selenium WebDriver, WebDriver th c hi n ti p c n hi n đ i vàẽ ấ ộ ụ ự ệ ế ậ ệ ạ n đ nh h n trong t đ ng hoá các hành đ ng c a trình duy t Sau này, Selenium RC và

WebDriver đ c sáp nh p đ t o thành Selenium 2.ượ ậ ể ạ

K t lu n:ế ậ M i thành ph n c a Selenium đem đ n cho ta m t công d ng khác nhau Tùyỗ ầ ủ ế ộ ụ vào m c đích s d ng, ta có th l a ch n thành ph n phù h p đ t o ra các ca ki m th choụ ử ụ ể ự ọ ầ ợ ể ạ ể ử ph n m m c a mình.ầ ề ủ

Từ khóa: Selenium, Kiểm thử t đ ngự ộ

Trang 5

N I DUNG CHÍNHỘI.T NG QUANỔ

Selenium là công c ki m th t đ ng mi n phí (mã ngu n m ) dành cho các ng d ngụ ể ử ự ộ ễ ồ ở ứ ụ web trên các trình duy t và các n n t ng khác nhau ệ ề ả

Selenium đ c t o ra b i Jason Huggins vào năm 2004 và đ c phát tri n b iượ ạ ở ượ ể ở Thoughtwork Ông phát tri n th vi n Javascript đ t đ ng ch y các test trên nhi u trìnhể ư ệ ể ự ộ ạ ề duy t, chính th vi n này đã tr thành Selenium Core t o c s cho Selenium IDE và Seleniumệ ư ệ ở ạ ơ ở Remote Control (RC) Selenium RC là m t đ t phá vì không s n ph m nào cho phép b n đi uộ ộ ả ẩ ạ ề khi n trình duy t v i b t kì ngôn ng mình ch n.ể ệ ớ ấ ữ ọ

T i năm 2008, s k t h p gi a Selenium và Web driver (m t công c m nh m ) cung c pớ ự ế ợ ữ ộ ụ ạ ẽ ấ m t t p các tính năng cho ng i s d ng ộ ậ ườ ử ụ

Hi n nay, các n n t ng đ c Selenium h tr bao g m:ệ ề ả ượ ỗ ợ ồ

● 6 trình duy t ph bi n: Firefox, Internet Explorer, Safari, Opera, Chrome,ệ ổ ế Microsoft Edge.

● 3 h đi u hành: Microsoft Windows, MacOS, Linux.ệ ề

B công c Selenium g m 4 thành ph n, m i thành ph n ph c v cho các nhu c u ki m thộ ụ ồ ầ ỗ ầ ụ ụ ầ ể ử khác nhau c a t ch c:ủ ổ ứ

● Môi trường phát tri n tích h p Selenium (IDE)ể ợ ● Selenium Remote Control

● Selenium Grid ● WebDriver

Tuy nhiên, t Selenium 3 (hi n nay là Selenium 4), Selenium RC không còn đừ ệ ược tính là m t thành ph n Bài báo cáo d i đây v n s đi sâu vào phân tích c 4 thành ph n.ộ ầ ướ ẫ ẽ ả ầ

Trang 6

Hình 1 B công c Seleniumộ ụ

II.N I DUNGỘ

A SELENIUM IDE1 Gi i thi uớệ

Selenium IDE (Selenium Integrated Development Environment) là m t ph n c aộ ầ ủ b công c ki m th Selenium B công c này đ c t o ra và đóng góp b i Shinyaộ ụ ể ử ộ ụ ượ ạ ở Kasatani (Nh t B n) vào năm 2006 Selenium IDE v c b n là m t công c ghi/ch yậ ả ề ơ ả ộ ụ ạ nh m phát tri n các test case cho website ằ ể

Selenium IDE là công c d s d ng nh t t b Selenium Test và th m chí có thụ ễ ử ụ ấ ừ ộ ậ ể đ c s d ng b i nh ng đ i t ng không có n n t ng v logic l p trình Ng i taượ ử ụ ở ữ ố ượ ề ả ề ậ ườ không yêu c u b t kỳ các cài đ t ban đ u nào đ b t đ u v i Selenium IDE Vi c duyầ ấ ặ ầ ể ắ ầ ớ ệ nh t c n làm là thêm ti n ích m r ng (extension) cho trình duy t đang s d ng.ấ ầ ệ ở ộ ệ ử ụ Selenium IDE s cung c p GUI (giao di n ng i dùng đ h a) đ d dàng ghi l i cácẽ ấ ệ ườ ồ ọ ể ễ ạ t ng tác c a b n v i trang web Nó giúp ti t ki m th i gian à là cách thông minhươ ủ ạ ớ ế ệ ờ ᴠ đ hi u đ c k ch b n Selenium B công c cho phép chúng ta Record/Plaуback m tể ể ượ ị ả ộ ụ ộ teѕtѕuit.

Selenium IDE cho phép ng i dùng t o ra và ch nh s a các b testườ ạ ỉ ử ộ theo ý c a h Môi trủ ọ ường phát tri n cũng cung c p kh năng chuy n đ i các ca ki mể ấ ả ể ổ ể

Trang 7

th sang các ngôn ng l p trình khác nhau, giúp ng i dùng d dàng h n và khôngử ữ ậ ườ ễ ơ b t bu c ph i bi t m t ngôn ng l p trình c th ắ ộ ả ế ộ ữ ậ ụ ể

2 C ch ho t đ ngơếạộ

Selenium IDE ho t đ ng nh m t ti n ích b sung (extension) h tr cho các trìnhạ ộ ư ộ ệ ổ ỗ ợ duy t web nh : Chrome, Firefox, Selenium IDE h tr ng i dùng t đ ng hóa vi cệ ư ỗ ợ ườ ự ộ ệ ki m th thông qua 2 tùy ch n g m: Record m t k ch b n ki m th ho c t o th côngể ử ọ ồ ộ ị ả ể ử ặ ạ ủ m t k ch b n ki m th M i m t b test(test suite) s bao g m nhi u test M i m tộ ị ả ể ử ỗ ộ ộ ẽ ồ ề ỗ ộ test là m t ca ki m th - test case (Giao di n chính đ c minh h a qua ộ ể ử ệ ượ ọ hình 1.1)

● Record: Tính năng này yêu c u ng i dùng cung c p đ ng d n URL choầ ườ ấ ườ ẫ trang Web c n ki m th [2] Sau đó, ng i dùng th c hi n các thao tác trênầ ể ử ườ ự ệ trang web, Selenium IDE s t đ ng ghi l i các b c trên thành m t ca ki mẽ ự ộ ạ ướ ộ ể thử

● T o th công: V i tính năng này, ng i dùng đi n vào cách thanh Command,ạ ủ ớ ườ ề Target, Value đ t o ra các b c cho ca ki m th c a mìnhể ạ ướ ể ử ủ

Hình 2 Giao di n chính c a Selenium IDEệ ủ

Trong đó, Command cho bi t thao tác đã th c hi n, Target cho bi t đ i t ng đ cế ự ệ ế ố ượ ượ thao tác nh m đ n, Value cho bi t d li u đ u vào ho c tr v c a Target Seleniumắ ế ế ữ ệ ầ ặ ả ề ủ

Trang 8

IDE cung c p cho ngấ ười dùng m t s tính năng thanh công c nh [3]:ộ ố ở ụ ư ● Test execution speed - Căn ch nh t c đ nhanh ch m c a các ca ki m thỉ ố ộ ậ ủ ể ử ● Run all tests - Th c thi toàn b B ki m thự ộ ộ ể ử

● Run current test – Th c thi ca ki m th hi n đ c ch nự ể ử ệ ượ ọ

● Pause / Resume - Cho phép người dùng t m d ng và ti p t c m t ca ki mạ ừ ế ụ ộ ể th c thử ụ ể

3 Tính năng

Selenium IDE là m t plug-in n m trên trình duy t Chrome, Firefox h tr ng iộ ằ ệ ỗ ợ ườ dùng ki m th t đ ng cho các ng d ng ho t đ ng trên n n t ng web V i tính năngể ử ự ộ ứ ụ ạ ộ ề ả ớ n i b t “Record” và “Playback”, ng i dùng có th nhanh chóng t o m t b k ch b nổ ậ ườ ể ạ ộ ộ ị ả ki m tra (test script) mà ít x y ra l i b ng cách tr c ti p record (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 và Selenium Core – có đ nh d ngị ả ượ ể ị ạ HTML) Sau đó playback (ch y l i) các câu l nh này đ ki m tra.ạ ạ ệ ể ể

4.Ưu đi m và nhểược đi mểa u đi mƯể

● Cung c p cho ng i dùng kh năng t đ ng ghi l i các ca ki m th c aấ ườ ả ự ộ ạ ể ử ủ ng i dùng d a trên các t ng tác v i trình duy tườ ự ươ ớ ệ

● Cung c p cho các nhà phát tri n s linh ho t h n trong vi c th c hi n cácấ ể ự ạ ơ ệ ự ệ ca ki m th Ki m th viên có th ch y toàn b b ki m th bao g mể ử ể ử ể ạ ộ ộ ể ử ồ nhi u ca ki m th ho c th c thi m t ca ki m th duy nh tề ể ử ặ ự ộ ể ử ấ

● Ho t đ ng trên c s t p h p các l nh Selenese phong phú, giúp IDE hi uạ ộ ơ ở ậ ợ ệ ể nh ng gì c n ph i th c hi nữ ầ ả ự ệ

● Giao di n tr c quan giúp ng i dùng d dàng h n trong vi c ti p c n vàệ ự ườ ễ ơ ệ ế ậ s d ng, ít g p ph i các l i k thu t trong quá trình ki m thử ụ ặ ả ỗ ỹ ậ ể ử

b Nhược đi mể

● Nó ch gi i h n cho trình duy t firefox và chromeỉ ớ ạ ệ ● Không th ki m tra các k t n i v i c s d li uể ể ế ố ớ ơ ở ữ ệ

Trang 9

● Không th x lý ph n đ ng c a các ng d ng d a trên webể ử ầ ộ ủ ứ ụ ự ● Không h tr x lý l iỗ ợ ử ỗ

● Không có s n tính năng nào đ t o báo cáo k t quẵ ể ạ ế ả

● Không th th c hi n ki m tra h i quy Các t p l nh đã ghi không th đ cể ự ệ ể ồ ậ ệ ể ượ th c thi trên b n d ng m i n u ng d ng đang thay đ i đ ngự ả ự ớ ế ứ ụ ổ ộ

B SELENIUM RC1.Gi i thi uớệ

Selenium RC - Selenium Remote Control (Selenium 1) là phiên b n g c c aả ố ủ Selenium, trước khi s k t h p gi a WebDriver và Selenium mang đ n Selenium 2,ự ế ợ ữ ế m t công c m nh m h n Hi n nay, Selenium 1 không còn đ c h tr n a [1].ộ ụ ạ ẽ ơ ệ ượ ỗ ợ ữ

Trước khi có Selenium RC, ng i ki m th c n ph i cài đ t b n sao c c b c a cườ ể ử ầ ả ặ ả ụ ộ ủ ả Selenium Core (m t ch ng trình JavaScript) và máy ch web có ch a AUT độ ươ ủ ứ ể chúng thu c cùng m t tên mi n do chính sách “Ngu n g c gi ng nhau” (Same-Originộ ộ ề ồ ố ố Policy) không cho phép mã JavaScript truy c p các ph n t t m t tên mi n khác v iậ ầ ử ừ ộ ề ớ n i nó đ c kh i ch y Nh n th y s b t ti n này, m t k s c a ThoughtWork, Paulơ ượ ở ạ ậ ấ ự ấ ệ ộ ỹ ư ủ Hammant, đã quy t đ nh t o ra Selenium Remote Control Máy ch Selenium RC sế ị ạ ủ ẽ ho t đ ng nh m t proxy HTTP đ trình duy t tin r ng Selenium Core và ng d ngạ ộ ư ộ ể ệ ằ ứ ụ web đ c ki m th đ n t cùng m t tên mi n.ượ ể ử ế ừ ộ ề

2.C ch ho t đ ngơếạộ

Selenium RC g m các thành ph n:ồ ầ

● Máy ch Selenium có vai trò kh i ch y và gi t trình duy t, thông d ch vàủ ở ạ ế ệ ị ch y các l nh Selenese đ c chuy n t ch ng trình ki m th và ho tạ ệ ượ ể ừ ươ ể ử ạ đ ng nh m t proxy HTTP, ch n và xác minh các thông đi p HTTP đ cộ ư ộ ặ ệ ượ truy n gi a trình duy t và ng d ng đang đ c ki m th (AUT).ề ữ ệ ứ ụ ượ ể ử ● Các th vi n máy khách cung c p interface gi a m i ngôn ng l p trình vàư ệ ấ ữ ỗ ữ ậ

Máy ch Selenium RC.ủ

Trang 10

Hình 3 Hình minh h a đ n gi n hóa ki n trúc c a Selenium RC [1]ọ ơ ả ế ủ Bi u đ trên minh h a vi c các th vi n máy khách giao ti p v i máy chể ồ ọ ệ ư ệ ế ớ ủ thông qua m i l nh Selenium đ th c thi Sau đó, máy ch chuy n l nh Seleniumỗ ệ ể ự ủ ể ệ đ n trình duy t b ng các l nh Selenium-Core JavaScript Trình duy t th c hi nế ệ ằ ệ ệ ự ệ l nh Selenium s d ng trình thông d ch JavaScript c a nó Thao tác này ch yệ ử ụ ị ủ ạ hành đ ng ho c vi c xác minh trong Selenese test script.ộ ặ ệ ở

a Selenium Server - Máy ch Seleniumủ

Máy ch Selenium nh n các l nh Selenium t ch ng trình ki m th c a b n,ủ ậ ệ ừ ươ ể ử ủ ạ di n gi i chúng và báo cáo l i cho chễ ả ạ ương trình c a b n k t qu c a vi c ch yủ ạ ế ả ủ ệ ạ các test đó.

Selenium-Core là m t ch ng trình JavaScript, th c ch t là m t t p h p cácộ ươ ự ấ ộ ậ ợ hàm JavaScript thông d ch và th c thi các l nh Selenese b ng cách s d ng trìnhị ự ệ ằ ử ụ thông d ch JavaScript tích h p s n c a trình duy t Khi ch ng trình ki m th c aị ợ ẵ ủ ệ ươ ể ử ủ

Trang 11

b n m trình duy t (s d ng hàm API th vi n ng d ng khách), máy ch RC sạ ở ệ ử ụ ư ệ ứ ụ ủ ẽ gói Selenium Core và t đ ng đ a nó vào trình duy t.ự ộ ư ệ

Máy ch nh n các l nh Selenese t ch ng trình ki m th c a b n b ng cáchủ ậ ệ ừ ươ ể ử ủ ạ ằ s d ng các yêu c u HTTP GET / POST đ n gi n Đi u này có nghĩa là b n cóử ụ ầ ơ ả ề ạ th s d ng b t kỳ ngôn ng l p trình nào có th g i yêu c u HTTP đ ki m thể ử ụ ấ ữ ậ ể ử ầ ể ể ử t đ ng b ng Selenium trên trình duy t.ự ộ ằ ệ

b Client Libraries - Th vi n ngư ệười dùng

Các th vi n máy khách cung c p h tr l p trình cho phép b n ch y các l như ệ ấ ỗ ợ ậ ạ ạ ệ Selenium t m t ch ng trình do chính b n thi t k Có m t th vi n máy kháchừ ộ ươ ạ ế ế ộ ư ệ cho m i ngôn ng đ c h tr (Java, C#, Ruby, Python, Perl, PHP) Th vi nỗ ữ ượ ỗ ợ ư ệ máy khách Selenium cung c p giao di n l p trình (API) g m m t t p h p các hàmấ ệ ậ ồ ộ ậ ợ ch y các l nh Selenium t ch ng trình c a riêng b n Trong m i giao di n, cóạ ệ ừ ươ ủ ạ ỗ ệ m t ch c năng l p trình h tr m i l nh Selenese.ộ ứ ậ ỗ ợ ỗ ệ

Th vi n máy khách nh n m t l nh Selenese và chuy n nó đ n máy chư ệ ậ ộ ệ ể ế ủ Selenium đ x lý m t hành đ ng ho c ki m tra c th đ i v i ng d ng đangể ử ộ ộ ặ ể ụ ể ố ớ ứ ụ đ c ki m tra (AUT) Th vi n máy khách cũng nh n đ c k t qu c a l nh đóượ ể ư ệ ậ ượ ế ả ủ ệ và chuy n nó tr l i ch ng trình c a b n Ch ng trình c a b n có th nh n k tể ở ạ ươ ủ ạ ươ ủ ạ ể ậ ế qu và l u tr nó vào m t bi n ch ng trình và báo cáo k t qu đó là thành côngả ư ữ ộ ế ươ ế ả hay th t b i, ho c có th th c hi n hành đ ng s a ch a n u đó là m t l i khôngấ ạ ặ ể ự ệ ộ ử ữ ế ộ ỗ mong mu n.ố

Vì v y, đ t o m t ch ng trình ki m th , b n ch c n vi t m t ch ng trìnhậ ể ạ ộ ươ ể ử ạ ỉ ầ ế ộ ươ ch y m t t p h p các l nh Selenium b ng cách s d ng API th vi n máy khách.ạ ộ ậ ợ ệ ằ ử ụ ư ệ N u b n đã có t p l nh ki m tra Selenese đ c t o trong Selenium-IDE, b n cóế ạ ậ ệ ể ượ ạ ạ th t o mã Selenium RC Selenium-IDE có th d ch (s d ng m c menu Export)ể ạ ể ị ử ụ ụ các l nh Selenium c a nó thành các l nh g i hàm API c a trình đi u khi n máyệ ủ ệ ọ ủ ề ể khách

3.Tính năng

Selenium 3, 4 không còn h tr Selenium RC mà các tính năng c a nó s đ c thỗ ợ ủ ẽ ượ ể hi n gián ti p thông qua ph n back-end WebDriver ệ ế ầ

Trang 12

Selenium RC cho phép ta ki m th trên các trình duy t khác nhau, trên các hể ử ệ ệ đi u hành khác nhau.ề

Ta có th dùng Selenium RC đ ki m th ng d ng trên m t trình duy t m i hể ể ể ử ứ ụ ộ ệ ớ ỗ tr JavaScript ho c m t ng d ng web v i các k ch b n ph c t p d a trên AJAX.ợ ặ ộ ứ ụ ớ ị ả ứ ạ ự

4.Ưu đi m và nhểược đi mể

● Cài đ t ph c t p h n Selenium IDE.ặ ứ ạ ơ ● Yêu c u Selenium RC Server đ th c run.ầ ể ự

Selenium Grid là m t ph n trong b ki m th Selenium đ c phát tri n đ ch yộ ầ ộ ể ử ượ ể ể ạ các test song song trên các trình duy t, h đi u hành và thi t b khác nhau, nó đ cệ ệ ề ế ị ượ phát tri n b i Patrick Lightbody đ gi i quy t nhu c u gi m thi u th i gian th c hi nể ở ể ả ế ầ ả ể ờ ự ệ th nghi m càng nhi u càng t t Lúc đ u ông g i h th ng là "Hosted QA." Nó cóử ệ ề ố ầ ọ ệ ố kh năng ch p nh màn hình c a trình duy t trong các giai đo n và cũng có th g i raả ụ ả ủ ệ ạ ể ử các l nh Selenium cho các máy khác nhau cùng m t lúc [5].ệ ộ

Trang 13

2 C ch ho t đ ngơếạộ

Selenium Grid ho t đ ng d a vào cách đ nh tuy n các l nh c a các đ i t ngạ ộ ự ị ế ệ ủ ố ượ trình duy t t xa trong đó m t máy ch (server) ho t đ ng nh m t trung tâm(hub).ệ ừ ộ ủ ạ ộ ư ộ Ng i dùng c n c u hình máy ch t xa đ th c hi n các test Selenium Grid s d ngườ ầ ấ ủ ừ ể ự ệ ử ụ mô hình nút - trung tâm (node-hub concept) trong đó ng i dùng ch ch y test trênườ ỉ ạ m t máy g i là trung tâm (hub), nh ng vi c th c hi n s đ c th c hi n b i các máyộ ọ ư ệ ự ệ ẽ ượ ự ệ ở khác nhau đ c g i là các nút (node).ượ ọ

Grid đ c c u t o b i sáu thành ph n (component) khác nhau, bao g m: router,ượ ấ ạ ở ầ ồ distributor, session map, new session queue, node và event bus (Minh h a ọ ở hình).

Hình 4 Mô hình minh h a m ng l i các thành ph n c a Gridọ ạ ướ ầ ủ Trong đó:

● Router: là đ u vào, ti p nh n m i yêu c u bên ngoài và chuy n ti p chúngầ ế ậ ọ ầ ể ế đ n đúng thành ph n.ế ầ

● Distributor: ch u trách nhi m đăng ký và theo dõi ho t đ ng c a các Nodeị ệ ạ ộ ủ ● Session map: đóng vai trò nh m t kho d li u l u tr m i liên k t gi aư ộ ữ ệ ư ữ ố ế ữ

ID phiên và node mà phiên đang th c hi n.ự ệ

● New session queue: có nhi m v ti p nh n các yêu c u(request) g i t iệ ụ ế ậ ầ ử ớ d i d ng m t queue(có nghĩa là yêu c u nào t i tr c s đ c x lýướ ạ ộ ầ ớ ướ ẽ ượ ử tr c) Nó đ c c u hình thông qua các tham s có th đ nh c u hình đướ ượ ấ ố ể ị ấ ể thi t l p th i gian ch c a yêu c u và kho ng th i gian ch đ th l i yêuế ậ ờ ờ ủ ầ ả ờ ờ ể ử ạ c u.ầ

Ngày đăng: 04/05/2024, 12:47

Tài liệu cùng người dùng

Tài liệu liên quan