Kcpm btcn10 huong dan su dung selenium

24 2 0
Kcpm btcn10 huong dan su dung selenium

Đ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

CÔNG CỤ KIỂM THỬ TỰ ĐỘNG (SELENIUM) MỤC LỤC Selenium 1.1 Selenium gì? 1.2 Mục đích kiểm thử tự động 1.3 Ưu nhược điểm Selenium 1.3.1 Ưu điểm 1.3.2 Nhược điểm 1.4 1.4.1 Selenium IDE 1.4.2 Selenium RC 1.4.3 WebDriver 1.4.4 Selenium Grid 1.5 Cấu trúc Selenium So sánh Selenium QTP Selenium IDE 2.1 Hướng dẫn cài đặt Selenium IDE 2.2 Các loại command Selenium IDE 2.2.1 Actions 2.2.2 Accessors 2.2.3 Assertions 2.3 Các câu lệnh kiểm tra Selenium IDE 2.3.1 Các câu lệnh đối tượng UI 2.3.2 Các câu lệnh Text 2.3.3 Các câu lệnh tổng thể trang web 2.4 Xác định đối tượng UI 2.4.1 Đối tượng UI - Locators 2.4.2 Xác định đối tượng UI với Selenium IDE 10 2.5 Các câu lệnh Selenium IDE Flow Control 11 2.6 Các tính Selenium IDE 11 2.7 Kiểm thử theo hướng Data Driven 12 2.7.1 Data Driven Testing gì? 12 2.7.2 Hướng dẫn cài đặt SelBlocks 12 2.7.3 Câu lệnh SelBlocks 13 2.8 Quy trình thực kiểm thử tự động với Selenium IDE 13 2.9 Hướng dẫn sử dụng Selenium IDE 13 2.9.1 Demo 13 2.9.2 Demo 16 2.9.3 Demo 18 Trang 1 Selenium 1.1 Selenium gì? • Selenium cơng cụ kiểm thử tự động miễn phí (mã nguồn mở) dành cho ứng dụng web trình duyệt tảng khác • Selenium chạy nhiều trình duyệt hệ điều hành kiểm sốt nhiều ngơn ngữ lập trình 1.2 Mục đích kiểm thử tự động Kiểm thử tự động giúp giảm bớt công sức thực hiện, tăng độ tin cậy, giảm nhàm chán, giảm chi phí cho tổng trình kiểm thử rèn luyện kỹ lập trình cho kiểm thử viên 1.3 Ưu nhược điểm Selenium 1.3.1 Ưu điểm • Là cơng cụ mã nguồn mở • Đơn giản, dễ cài đặt, dễ làm việc • Sử dụng miễn phí • Dễ dàng ghi phát lại thao tác người dùng với trình duyệt • Các lựa chọn trường thơng minh sử dụng ID, Name, XPath cần thiết • Tự động hoàn chỉnh cho tất lệnh Selenium thường gặp • Gỡ lỗi thiết lập điểm dừng • Lưu kiểm thử với định dạng khác nhau, ví dụ: HTML, PHP … • Hỗ trợ tệp tin selenium user-extensions.js • Dễ dàng điều chình thơng qua plugin 1.3.2 Nhược điểm • Không thể đảm bảo add-in yêu cầu selenium nhận đối tượng • Hỗ trợ cung cấp cho selenium Trang 1.4 Cấu trúc Selenium 1.4.1 Selenium IDE Selenium Integrated Development Enviroment (Selenium IDE) công cụ cho phép Record / Playback test script Đây add-on hỗ trợ cho Firefox, Record trình duyệt Firefox Ưu điểm Khuyết điểm Mã nguồn mở Không hỗ trợ biểu thức điều kiện/ vịng lặp Cộng đồng hỗ trợ Khơng hỗ trợ test report Hỗ trợ nhiều ngôn ngữ lập trình Khơng hỗ trợ win app kể win dialog download/upload – ngoại trừ browser alarm Hỗ trợ chạy nhiều OS khác với mức độ Thực kiểm thử chậm so với Selenium RC chỉnh sửa script khơng có WebDriver Chạy testcase backgroup Khơng hỗ trợ database/ mobile testing Khó khăn xử lý case/workflow phức tạp 1.4.2 Selenium RC Selenium Remote Control (Selenium RC) công cụ kiểm tra web tự động cho phép người dùng sử dụng ngơn ngữ lập trình Test script hỗ trợ ngơn ngữ lập trình khác như: java, C#, PHP, Python, Perl, Ruby Ưu điểm Nhiều trình duyệt đa tảng Khuyết điểm Cài đặt phức tạp IDE Có thể hỗ trợ việc lặp lại câu lệnh có điều kiện Yêu cầu phải có kiến thức lập trình cho tập lệnh kiểm tra Có thể hỗ trợ kiểm tra theo liệu Cần phải có Selenium RC Server để chạy Trang Đã hoàn chỉnh API API có lệnh thừa khó hiểu Có thể sẵn sang hỗ trợ trình duyệt Tương tác với trình duyệt thực tế Thực nhanh IDE Kết không phù hợp sử dụng javascript Thời gian thực thi chậm WebDriver 1.4.3 WebDriver WebDriver tốt Selenium IDE Selenium RC nhiều mặt WebDriver thực cách đại ổn định tự động hóa hành động trình duyệt WebDriver khơng giống Selenium RC khơng dựa vào javascript dành cho tự động hóa WebDriver điều khiển trình duyệt cách trực tiếp liên lạc với WebDriver Các ngôn ngữ hỗ trợ giống với ngôn ngữ Selenium RC Java, C#, PHP, Python, Perl, Ruby Ưu điểm Khuyết điểm Cài đặt đơn giản Selenium RC Cài đặt phức tạp Selenium IDE Giao tiếp trực tiếp với trình duyệt Yêu cầu kiến thức lập trình Sự tương tác trình duyệt thực tế Khơng thể sẵn sang hỗ trợ trình duyệt Không cần thành phần riêng biệt RC Server Khơng có chế tích hợp để ghi lại thông điệp thời gian chạy tạo kết kiểm tra Thời gian thực nhanh IDE RC 1.4.4 Selenium Grid Selenium Grid công cụ sử dụng với Selenium RC để chạy thử nghiệm song song máy khác trình duyệt khác lúc (thực song song có nghĩa chạy nhiều testcase lúc) Đặc biệt Selenium Grid cho phép thực thi kiểm thử với chế độ phân tán Đặc điểm: • Cho phép chạy đồng thời testcase nhiều trình duyệt mơi trường • Tiết kiệm nhiều thời gian • Sử dụng khái niệm hub-and-nodes Hub hoạt động nguồn lệnh Selenium cho kết nối với 1.5 So sánh Selenium QTP STT Tiêu chí Selenium QTP Chi phí Đây công cụ mã nguồn mở khơng quyền có chi phí quyền, hồn tồn miễn phí Rất mắc…khoảng 5000 USD cho máy Thực mô Selenium thực hành động QTP thực kiểm thử tự động tương Trang hành trình duyệt tức người sử dụng, thực đương với người thực thao động kiểm thử tự động với trình duyệt tác vào ứng dụng Vì vậy, trình duyệt người dùng thu nhỏ tối thiểu (minimized) khơng giảm thiểu (người sử cuối dụng khơng thể thực hành động khác máy tính kiểm thử chạy) Có Người sử dụng phải trả tiền Plug-ins Có hồn tồn miễn phí quyền Nỗ lực kỹ Địi hỏi nỗ lực h ơn để tạo kịch để sử kiểm thử, có mơi trường dụng cơng Người dùng cần phải có kỹ tốt lập phát triển tốt, thân thiện với người sử cụ trình coding điều kiện cần dụng Dễ dàng tạo Tốt Selenium IDE Recorder không mạnh mẽ kịch QTP cơng cụ miễn phí, kiểm nhiều hành động không ghi lại thử? IDE tự nhập vào Hồn hảo Windows, Linux, Unix Macintosh Windows Web based applications Web-based desktop applications Hỗ trợ HĐH Loại ứng dụng IE, Firefox, Safari, Opera vài trình Trình duyệt duyệt khác IE, Chrome Firefox Ngôn ngữ phát triển kịch Java, Ruby, Python, C#, Perl, Groovy nhiều kiểm thử ngôn ngữ khác VBScript và/hoặc JavaScript Tích hợp với cơng Khi phát triển kiểm thử (test case) sử dụng C# cụ quản lý VS sử dụng MTM để quản lý 10 thử nghiệm test cases HP Quality Center TestDirector 11 Mơi trường Kịch thử nghiệm phát triển Kịch thử nghiệm Trang 12 13 phát triển nhiều trình soạn thảo Eclipse, Visual phát triển QTP kiểm thử Studio, Netbeans… Hỗ trợ kỹ Vì cơng cụ m ã nguồn mở nên khơng có QTP cung cấp hỗ trợ kỹ thuật tốt qua thuật hỗ trợ kỹ thuật thức điện thoại, mail, web, forum Quản lý Khơng Đối tượng quản lý lưu trữ đối cách sử dụng giao diện người dùng mở rộn g tượng giao (UI-Element user extension) properties Có QTP xây dựng với Object diện (UI- files Tất phương pháp đểu phải sử Repository Quản lý Object repository Object) dụng code cứng (hard-code) dễ dàng QTP Hỗ trợ cho 14 hộp Chỉ hỗ trợ phần Không thể thực số thoại hành động lấy tiêu đề hộp thoại Có QTP hỗ trợ tất loại hộp thoại Hỗ trợ cho kịch 15 tải lên tập Không Selenium không hỗ trợ kịch tin hạn chế JavaScript QTP khơng có vấn đề Selenium lựa chọn hồn hảo nếu… • Developer chịu trách nhiệm phát triển bảo trì kiểm thử • Những kiểm thử bạn phát triển phần sở hạ tầng lớn • Chắc chắn bạn thử kiểm thử trình duyệt mà thơi • Bạn nghĩ bạn thực kiểm thử mơi trường khác ngồi Windows • Bạn muốn sử dụng cơng cụ miễn phí QTP có lẽ lựa chọn tốt nếu… • Bạn muốn phát triển trì kiểm thử cách nhanh chóng dễ dàng • Nếu bạn cần kiểm thử đáng kể bên ngồi trình duyệt Selenium IDE 2.1 Hướng dẫn cài đặt Selenium IDE Bước 1: Mở trang chủ Selenium https://www.seleniumhq.org/download/ → chọn trình duyệt mà bạn muốn để cài tiện ích Trang Bước 2: Cài đặt Selenium IDE giống cài đặt plugin trình duyệt Firefox Kết quả: Selenium IDE thêm vào Firefox Bước 3: Khởi động Selenium IDE cách click vào icon Selenium menu bar Firefox Trang 2.2 Các loại command Selenium IDE Các câu lệnh Selenium có loại: Actions, Accessors Assertions 2.2.1 Actions Actions (hành động): command tương tác trực tiếp với phần tử trang web (Page elements) • Click: click vào phần tử • Type: nhập liệu vào phần tử trang 2.2.2 Accessors Accessors (truy cập): lệnh cho phép lưu trữ giá trị cho biến Ví dụ: storeTitle command accessor đọc giá trị page title lưu giá trị vào biến Nó khơng có khả tương tác với element trang 2.2.3 Assertions Assertions (xác nhận): lệnh xác minh điều kiện thỏa mãn Tất Assertions Selenium sử dụng cách thức: assert: lệnh assert fail → trình test dừng verify: lệnh verify fail → selenium IDE ghi nhận kết failure tiếp tục trình test waitFor: tạo lệnh chờ điều kiện xảy tiếp tục lệnh Theo mặc định lệnh chờ có thời gian 30 giây (thời gian thay đổi option Selenium IDE) Nếu condition xảy tiếp tục lệnh khác, trường hợp condition không xảy ghi nhận kết Failure tiếp tục thực lệnh 2.3 Các câu lệnh kiểm tra Selenium IDE 2.3.1 Các câu lệnh đối tượng UI Đối với đối tượng UI, thơng thường có hai loại kiểm tra: tồn hay khơng tồn • verifyElementPresent/ assertElementPresent: hai câu lệnh dùng để kiểm tra đối tượng UI tồn trang web • verifyElementNotPresent/ assertElementNotPresent: hai câu lệnh dùng để kiểm tra đối tượng UI không tồn trang web Bên cạnh hai loại kiểm tra chính, Selenium IDE cịn hỗ trợ kiểm tra đối tượng UI mức chi tiết như: • Cách hiển thị đối tượng UI trang web o Chiều cao: verifyElementHeight/assertElementHeight – verifyNotElementHeight/assertNotElementHeight o Chiều rộng: verifyElementWidth/assertElementWidth – verifyNotElementWidth/assertNotElementWidth Trang o Toạ độ trái so với trang web: verifyElementPositionLeft/assertElementPositionLeft – verifyNotElementPositionLeft/assertNotElementPositionLeft o Toạ độ so với trang web: verifyElementPositionTop/assertElementPositionTop – verifyNotElementPositionTop/assertNotElementPositionTop • Các đối tượng UI thiết kế với thuộc tính đặc biệt cần kiểm tra thuộc tính đó: verifyAttribute/assertAttribute – verifyNotAttribute/assertNotAttribute • Đối tượng UI đặc biệt Checkbox hay RadioBox: verifyChecked/assertChecked – verifyNotChecked/assertNotChecked 2.3.2 Các câu lệnh Text Chúng ta không cần kiểm tra đối tượng UI, muốn biết dòng text có hay khơng có xuất trang web Lúc này, có câu lệnh kiểm tra Text: • verifyTextPresent/assertTextPresent: hai câu lệnh dùng để kiểm tra dịng text tồn trang web • verifyTextNotPresent/assertTextNotPresent: hai câu lệnh dùng để kiểm tra dịng text khơng tồn trang web Vì bốn câu lệnh kiểm tra text không tương tác với đối tượng UI nào, nên phần Target câu lệnh dịng text mà muốn kiểm tra Trong trường hợp đặc biệt, muốn kiểm tra text đối tượng UI xác định, có hai câu lệnh verifyText/assertText Lúc này, target đối tượng UI chúng ta, Value dòng text cần kiểm tra 2.3.3 Các câu lệnh tổng thể trang web Selenium IDE hỗ trợ câu lệnh làm việc với tồn trang web như: • verifyBodyText/assertBodyText: Kiểm tra tồn text trang web • verifyCssCount/assertCssCount: Kiểm tra số lượng đối tượng UI sử dụng chung thiết kế CSS • verifyXpathCount/assertXpathCount: Kiể m tra số lượng đố i tượng UI cố cù ng XPath 2.4 Xác định đối tượng UI 2.4.1 Đối tượng UI - Locators Selenium hỗ trợ xác định UI dựa thuộc tính gọi cách xác định đối tượng UI thơng qua thuộc tính locator, sau: o ID o Name o Link Text o CSS Selector ▪ Tag ID Trang ▪ Tag Class ▪ Tag Attribute ▪ Inner Text o XPath Đối với ID: thuộc tính đơn ổn định hệ thống phần mềm, sử dụng ID cho việc xác định UI tốt Nhưng tất biết, có nhà phát triển phần mềm lại gắn ID cho đối tượng UI, ID khơng phải thuộc tính bắt buộc khơng hiển thị lên giao diện Đối với Name: thuộc tính Name đơi khơng đơn nhất, khơng có ràng buộc bắt Name đơn Đối với Link Text: thuộc tính Link Text khơng đơn không ổn định Một trang web có nhiều liên kết đến trang khác hay thay đổi từ ngữ không đổi ý nghĩa Đối với CSS Selector: sử dụng CSS phụ thuộc vào cách thiết kế web nhà phát triền Và hiển nhiên, CSS Selector không đơn nhất, không nhà phát triền tạo CSS để dùng cho đối tượng Cho nên, phải kết hợp CSS với Tag/ID, Tag/class … Đối với XPath: xem thuộc tính hay dùng Selenium Tuy nhiên, cách lại thiếu xác, thiếu đơn thiếu ổn định tất cách xác định đối tượng UI Xác định đối tượng UI với Selenium IDE 2.4.2 Trong Selenium IDE, record testcase, IDE tự động xác định đối tượng UI cho Nhưng thuộc tính IDE lấy khơng thể sử dụng ví dụ: Google có đối tượng UI có ID Để xác định đối tượng UI với Selenium IDE, làm sau: • Bước 1: mở trang web mà muốn kiểm tra • Bước 2: mở selenium IDE • Bước 3: gõ locator đối tượng mà muốn xác định vào Target textbox • Bước 4: click Find button Lưu ý: Nếu locator đối tượng mà điền vào Target đúng, UI sáng nhấp nháy trang web Đây cách tạo locator với phương thức khác Phương thức Cấu trúc Ví dụ ID id= id_của_đối_tượng id=email Name name=name_của_đối_tượng name=username Name name=name_của_đối_tượng name=tripType Link Text link=link_text link=REGISTER Tag/ID css=tag#id css=input#email Tag/Class css=tag.class css=input.inputtext Tag/Attribute css=tag[attribute=giá trị] css=input[name=lastName] Trang 10 Tag/Class/Attribute css=tag.class[attribute=giá trị] css=input.inputtext[tabindex=1] XPath //html/body//bookstore/book/title XPath Ngoài ra, để xác định locator cách nhanh chóng xác hơn, bạn sử dụng hai công cụ mạnh Firefox FireBug XPath Finder • FireBug giúp đọc mã nguồn trang web cách rõ ràng • XPath Finder giúp lấy XPath đối tượng UI cách xác đơn giản 2.5 Các câu lệnh Selenium IDE Flow Control Trong Command Dropdown List Selenium IDE, có câu lệnh mới: • label | mylabel – Tạo nhãn • goto | mylabel – Di chuyển đến nhãn • gotoLabel | mylabel – Tương tự câu lệnh “goto” • gotoIf | expression – Đi đến nhãn thỏa điều kiện • while | expression – Lặp đoạn mã với điều kiện • endWhile – Kết thúc vịng lặp • push | value | arrayName – Điền giá trị vào bên mảng 2.6 Các tính Selenium IDE Menu chức Toolbar Danh sách testcase Thiết lập URL trang web cần kiểm tra Nội dung steps thực Chi tiết bước Lịch sử lần thực Trang 11 2.7 Kiểm thử theo hướng Data Driven 2.7.1 • Data Driven Testing gì? Data Driven Testing nghĩa dùng kịch test verify nhiều trường hợp khác với đầu vào/ đầu từ file data bên (.csv, txt, xls …) thay sử dụng data cứng lần chạy Ví dụ: 100 test scripts, scripts phải yêu cầu login (email/password) vào hệ thống để sử dụng, bạn set cứng biến email/password script lần thay đổi email/password phải sửa 100 lần cho 100 scripts Thay cần tạo file lưu trữ data biến đưa tên biến vào 100 scripts, cần sửa lần apply cho tồn • Chúng ta sử dụng add-on hỗ trợ cho Selenium IDE tên SelBlocks, cho phép thêm command vịng lặp, điều kiện data driven testing kịch test 2.7.2 Hướng dẫn cài đặt SelBlocks SelBlocks cài đặt tương tự Selenium IDE Kết Trang 12 2.7.3 Câu lệnh SelBlocks SelBlocks, bên cạnh việc hỗ trợ thực thi kiểm thử theo hướng data-driven, SelBlocks cung cấp số câu lệnh đặc biệt như: • if/elseIf/else • try/catch/finally/throw • for/foreach/while • continue/break • call/function/return • loadXmlVars/loadJsonVars • forXml/forJson • exitTest Nhưng hướng dẫn sử dụng kiểm thử tự động, tập trung vào phần Data-Driven 2.8 Quy trình thực kiểm thử tự động với Selenium IDE Để thực kiểm thử tự động với Selenium IDE ta thực theo bước sau đây: • Bước 1: Thiết lập base URL trang web muốn kiểm tra • Bước 2: Thực viết kịch kiểm thử (sử dụng command kết hợp với Element Webpage để tạo hành động tương tác theo testcase định nghĩa) • Bước 3: Thực kiểm thử, ghi nhận kết → Post Bug Chú ý: việc viết kịch kiểm thử làm tay sử dụng chức record Selenium để tự động ghi lại thao tác kiểm thử 2.9 Hướng dẫn sử dụng Selenium IDE 2.9.1 Demo Sử dụng chuột/ keyboard tương tác với trình duyệt tiến hành record playback ❖ Kịch Truy cập trang web Google Tìm kiếm từ khóa Selenium Nhấp vào đường dẫn đến trang chủ Selenium Nếu tiêu đề trình duyệt khơng phải Downloads nhấn nút Download Selenium Trang 13 ❖ Thực Selenium IDE RECORD Bước • Nhập URL: https://www.google.com/ nhấn Start Recording • Sau nhấn Start Recording, Firefox hiển thị trang Google chế độ recording Bước • Chúng ta sử dụng chuột/ keyboard tương tác với trình duyệt Nhập tìm kiếm “Selenium”, nhấn Enter → chọn “Selenium – Web Browser Automation” → nhấn “Download Selenium” Trang 14 W Bước • Nhấn “Stop Record” để kết thúc việc ghi • Kết Bước PLAY BACK Chọn “Run Current Test” → Chạy lại tương tác với trình duyệt Trang 15 2.9.2 Demo Sử dụng dòng lệnh nhập vào để tiến hành record playback Kịch bản: đăng nhập vào trang chủ ebook Bước 1: Nhập URL http://doc.edu.vn Bước 2: Nhập dịng lệnh • Dịng lệnh 1: tương ứng với việc vào trang chủ ebook o Open: http://doc.edu.vn/default.aspx • Dịng lệnh 2: set window size: 982x788 • Dòng lệnh 3: tương ứng với di chuyển chuột đến link đăng nhập menu bar o Command: mouse over o Target: linkText=Đăng nhập • Dịng lệnh 4: tương ứng với click vào “Đăng nhập” menu bar trang chủ o Command: click o Target: linkText=Đăng nhập • Dịng lệnh 5: tương ứng với textbox tên tài khoản o Command: type o Target: id=cphMain_ucLogin1_txtUserName o Value: phamthixuanhien2809 Trang 16 • Dòng lệnh 4: tương ứng với textbox mật o Command: type o Target: id=cphMain_ucLogin1_txtPassword o Value: phamthixuanhien2809 • Dịng lệnh 5: tương ứng với click vào button “Đăng nhập” o Click: id=cphMain_ucLogin1_btnLogin Bước 3: Nhấn “Run current test” để chạy Trang 17 Kết sau run 2.9.3 Demo Dựa vào TestCase đề ra, tạo TestSuite để test tự động TC1: Trang 18 TC2: Trang 19 TC3: TC4: Trang 20 TC5: TC6: Trang 21 TC7: TC8: Trang 22 TC9:  Kết quả: testcase Pass, testcase Fail Trang 23

Ngày đăng: 06/04/2023, 20:55

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

  • Đang cập nhật ...

Tài liệu liên quan