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

Báo cáo tìm hiểu công cụ selenium

20 3,5K 25

Đ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

Định dạng
Số trang 20
Dung lượng 779,05 KB

Nội dung

Báo cáo tìm hiểu công cụ selenium

Trang 1

Chương 1: Giới thiệu Selenium 1

1.1 Đặt vấn đề 1

1.2 Lịch sử và giới thiệu chung 1

1.2.1 Lịch sử phát triển 1

1.2.2 Giới thiệu chung 2

1.3 Selenium IDE 3

1.4 Selenium Core 4

Chương 2: Cài đặt và sử dụng 5

2.1 Cài đặt 5

2.1.1 Selenium IDE 5

2.1.2 Selenium Core 6

2.2 Selenese – Test case – Test suite 7

2.2.1 Selenese 7

2.2.2 Test case 9

2.2.3 Test suite 10

Chương 3: DEMO 11

3.1 Ứng dụng Selenium trong form login đơn giản 11

3.1.1 Thử nghiệm bằng Selenium IDE 11

3.1.2 Thử nghiệm bằng Selenium Core 13

3.2 Thử nghiệm với một số website phức tạp 15

Chương 4: đánh giá và tổng kết 16

4.1 Đánh giá chung 16

4.2 Tổng kết 16

Tài liệu tham khảo: 18

Trang 2

Nhận xét của giảng viên

Trang 3

Chương 1: Giới thiệu Selenium

1.1 Đặt vấn đề

Trong giai đoạn bùng nổ về công nghệ thông tin hiện nay, nhu cầu phát triển phần mềm nói chung và các ứng dụng xây dựng trên nền web nói riêng về chất lượng và

số lượng đang trở nên bức thiết Kéo theo đó là nhu cầu kiểm thử giao diện ứng dụng web

để đạt được chất lượng tối ưu trước khi đến tay khách hàng Vì thế mà các công cụ hỗ trợ kiểm tra tự động đang dần trở thành các trợ thủ đắc lực cho đội ngũ phát triển phần mềm Một trong số đó, công cụ tiêu biểu là Selenium Đây 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

1.2 Lịch sử và giới thiệu chung

1.2.1 Lịch sử phát triển

SELENIUM(SE) là một phần mềm mã nguồn mở, được phát triển 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

Vào năm 2006, một nhân viên của Google tên là Simon Stewart bắt đầu tiếp tục công việc được đặt tên là Webdriver Google đã có một lượng người rất đông sử dụng Selenium, nhưng các tester vẫn làm việc vất vả trước sự hạn chế của sản phẩm

Tới năm 2008, câu chuyện quan trọng của năm đó là sự kết hợp giữa Selenium và Web driver Selenium đã lớn mạnh nhưng Web driver là công cụ của tương lai Sự tham gia của hai công cụ này cung cấp một tập các tính năng cho người sử dụng Lời giải thích tại sao Webdriver và Selenium lại sáp nhập được chi tiết bởi Simon Stewart, tác giả của Web driver

Trang 4

“ Tại sao lại có dự án sáp nhập? Một phần vì web driver khắc phục những thiếu sót trong Selenium (bằng việc bỏ qua JS sandbox, và chúng ta đã có một API tuyệt vời) thêm nữa Selenium lại bổ sung thiếu sót cho Web driver ( hỗ trợ pham vi rộng hơn của các trình duyệt) và do những đóng góp của Selenium làm tôi cảm thấy đó là cách tốt nhất để mang tới framework hoàn hảo cho người dùng

1.2.2 Giới thiệu chung

Selenium gồm nhiều công cụ với cách tiếp cận khác nhau để hỗ trợ kiểm thử tự động Bộ công cụ này rất linh hoạt cho phép lựa chọn 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 Một trong những tính năng chính của Selenium là hỗ trợ kiểm thử trên nhiều trình duyệt Selnium 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 , 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,

Selenium có thể kết hợp thêm với một số công cụ khác như Bromien , Junit 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 cụ bổ trợ

Selenium bao gồm một bộ công cụ hỗ trợ kiểm tra tự động tính năng của ứng dụng web bao gồm: Selenium IDE, Selenium Remote control(RC), Selenium Core và Selenium Grid

- Selenium IDE được phát triển dưới dạng một ứng dụng mở rộng (add-on) cho Mozilla Firefox phiên bản 2.0 trở lên Công cụ cung cấp chức năng Record and Playback

- Selenium Remote Control với bộ công cụ này cho phép 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 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 tra trực tiếp trên trình duyệt đó Selenium RC còn cũng cấp khả năng

Trang 5

- Selenium Grid thực hiện phương pháp kiểm tra phân bố, phối hợp nhiều kết quả 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 Selenium Grid cũng cho phép lưu lại kết quả kiếm tra

- Selenium Core được tích hợp trong Selenium IDE, là một công cụ chạy các testscript viết bằng Selenese

Selenium có nhiều cách sử dụng khác nhau Chúng ta có thể dùng Test Runner mode(Bot mode) sử dụng Selenium Core, cách này dùng các test case và test suite dưới dạng hàng trong file html

Với Selenium Remote control (RC) là driven mode, ở đây các test case trong các ngôn ngữ lựa chọn (Java, C#, Python, Perl, Ruby…)

Record mode sử dụng Selenium IDE để thu lại các thao tác và giao diện web

1.3 Selenium IDE

Selenium IDE là công cụ giúp bạn phát triển ca kiểm thử được xây dựng dưới 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 bạn 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 minh để hiểu kịch bản Selenium

Bộ công cụ này cung cấp chức năng “thu và chạy lại”-Record and Playback Nhờ

đó Tester có thể nhanh chóng tạo 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ủ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ó dạng bản HTML ) 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 Browser và Web Server như hình:

Trang 6

Hình 1.1 Kiến trúc của Selenium IDE

1.4 Selenium Core

Đã được tích hợp trong Selenium IDE Selenium Core là một công cụ chạy các test script viết bằng Selenese Thế mạnh của công cụ này là có thể chạy test script trên hầu hết các trình duyệt , nhưng lại yêu cầu được cài đặt trên máy chủ của ứng dụng hay website cần kiểm tra Điều này là không thể khi Tester không có quyền truy cập đến máy chủ

Cấu trúc của Selenium Core:

Hình 1.2 Kiến trúc Selenium Core

Trang 7

Chương 2: Cài đặt và sử dụng

2.1 Cài đặt

2.1.1 Selenium IDE

Selenium IDE (Integrated Development Environment) được phát hành dưới dạng phần mềm bổ trợ (add-on) của Firefox , cho phép test , edit và debug code Selenium có thể sinh code tự động hoặc nạp các đoạn mã viết tay

Đề cài đặt Selenium IDE, ta vào tab Tools trên thanh công cụ của fire fox, phần Add ons, search Selenium IDE hoăc vào trang chủ http://Seleniumhq.org/download/

download và tiến hành cài đặt sau đó khởi động lại trình duyệt, lúc này ở phần Tools của Fire Fox có hiện thêm Selenium IDE

Hình 2.1 Add-on IDE trên Firefox

Sau khi cài đặt thành công thì giao diện của Selenium Ide như hình:

Trang 8

Hình 2.2 Giao diện của Selenium IDE

Trên thanh công cụ của Selenium IDE có các tab như File, Edit, Actions, Options, Help mỗi tab lại có nhiều lựa chọn khác nhau giúp người dùng dễ dàng sử dụng

2.1.2 Selenium Core

Có 2 cách để cài đặt Selenium Core Thứ nhất, Selenium Core được tích hợp trong Selenium IDE nên ta chỉ cần cài đặt IDE Cách thứ hai là download gói tin từ trang chủ

http://Seleniumhq.org/download/ và chạy như 1 website bình thường

Tất cả các test case và test suite đều phải được đặt vào trong thư mục tests của Selenium Core Để chạy chương trình, ta vào thư mục Core trong gói cài đặt Selenium Core, và chạy file TestRunner.hta hoặc chạy TestRunner.html như 1 trang web Màn hình giao diện chính của Selenium Core:

Trang 9

Hình 2.3.Giao diện của Selenium Core Màn hình chia làm 4 frame:

- Test Suite là nơi ghi đường dẫn đến test suite, sau khi nhấp đường dẫn đến test suite được đặt trong folder tests của gói cài thì ở đó sẽ hiển thị danh sách các test case

- Current Test: hiển thị từng test case

- Frame ở dưới dùng là nơi hiển thị giao diện ứng dụng web ta muốn test

- Control Panel: là cửa số chứa các nút điều khiển của Selenium Core

2.2 Selenese – Test case – Test suite

2.2.1 Selenese

Các câu lệnh của Selenium thường được gọi là Selenese, là tập hợp những commands chạy test của bạn Một chuỗi những commands là một test script Selenium cung cấp một tập phong phú các command đầy đủ cho việc test các ứng dụng web Các lệnh cơ bản tạo ra một ngôn ngữ testing

Trong Selenese có thể kiểm tra sự tồn tại của các Elements giao diện dựa trên các thẻ tag HTML, kiểm tra các nội dung cụ thể kiểm tra các link hỏng, các trường đầu vào, các tùy chọn selection, form submit và dữ liệu bảng, thêm vào nữa, commands Selenium

hỗ trợ kiểm tra size window, vị trí chuột, alert, các hàm ajax, cửa số pop up, event handling, và nhiều tính năng ứng dụng web khác

Selenese gồm có ba loại chính là Action, Accessors, Assertions:

Trang 10

Action: là commands thường thao tác với các state của ứng dụng, như “click this

link”, và “select that option” Nếu action fail, hoặc có lỗi, quá trình thực thi của test hiện tại sẽ bị dừng lại Nhiều actions có thể được gọi với “AndWait, thay thế luôn được sử dụng khi các hành động để trình duyệt điều hướng đến trang khác hoặc nạp lại trang hiện tại

Ví dụ:

- click():click ở vị trí chuột

- clickAt ( locator,coordString ) : click vào link, button, checkbox hoặc radio button Nếu việc click dẫn đến một trang khác thì gọi lệnh

waitForPageToLoad

- close ( ) : mô phỏng người sử dụng nhấn vào nút “close” trên thanh tiêu đề của một cửa sổ hoặc tab

Accessors: để kiểm tra trạng thái của ứng dụng và lưu trữ các kết quả trong các

biến ví dụ với storeTitle nó cũng được sử dụng tự động như Assertions Accessors được sử dụng do có được giá trị từ một phần tử và so sánh , đưa quyết định hợp lý

để thực hiện các bước kiểm tra, thực thi câu lệnh trong vòng lặp dựa trên giá trị được trả về bởi các phần tử

Ví dụ:

- assertErrorOnNext ( message ) : kì vọng một lỗi ở lệnh tiếp theo

- storeAlert ( variableName ) : Truy xuất tin nhắn của JavaSript alert trong

Assertions: giống như Accessors, nhưng có thể xác minh trạng thái của ứng dụng

phù hợp với những gì được mong đợi Selenium assertions có thể sử dụng theo 3 cách: assert, verify và waitFor

Ví dụ:

- assertText : Khi “assert” thất bại, kiểm tra bị hủy

Trang 11

- verifyText: Khi “verify” thất bại, kiểm tra vẫn sẽ tiếp tục thực hiện,

đăng nhập thất bại

- waitFor: chờ đợi đối với một số điều kiện để trở thành hiện thực Nó

thất bại và ngăn chặn kiểm tra nếu điều kiên không trở thành hiện thực trong thời gian thiết lập

2.2.2 Test case

Source code của Test case hiển thị ở tab Source thông thường ở dưới dạng HTML,

ở dạng 1 bảng gồm 3 cột được viết bằng các câu lệnh selenese Cột thứ nhất là các hành động được thực hiện trên đối tượng giao diện ứng dụng web Cột thứ hai là đối tượng của các phương thức Và cột thứ ba là giá trị truyền vào cho phương thức

Hình 2.4 Tab Source

Test case thường được xây dựng theo 4 bước lần lượt Recording, Adding Verifications and Asserts, Editing, Open and save

Sau khi tiến hành xây dựng test case thực hiện việc Running Test case qua một số nút điều khiển như Running test case, Stop and start, Stop/ start from middle, Run any single command để quan sát quá trình test Kết quả số test case pass và fail sẽ được hiển thị ở góc trái phía dưới danh sách các test case

Trang 12

2.2.3 Test suite

Khi đã có một hoặc một tập các test case ta cần tổng hợp chúng vào trong một test suite Test suite mặc định được viết theo ngôn ngữ HTML, là một bảng gồm một cột với ở mỗi cột là các test case Test case chỉ được liệt kê như một thành phần của test suite

Ngoài ra, Selenium cũng cung cấp khả năng export test case và test suite ra nhiều ngôn ngữ phục vụ cho các thành phần test khác nhau như Python, Ruby, Java, C# để test trên các công cụ unittest, Rspec, Junit tương ứng, và các thành phần khác của Selenium như WebDriver, Remote Control

Trang 13

Chương 3: DEMO

3.1 Ứng dụng Selenium trong form login đơn giản

Hình 3.1 Màn hình login

Nhóm xây dựng một số đoạn mã đơn giản là form Login viết bằng HTML và Javascript nhằm mục đích thử nghiệm các chức năng của Selenium IDE và Selenium Core

Khi đăng nhập với tên và mật khẩu hợp lệ (admin – admin) chương trình sẽ vào 1 trang welcome, trong đó có một dòng chào mừng đăng nhập thành công, và trong đó có 1 button, khi click vào button thì sẽ bật ra một cửa sổ “Hi, Admin”

Nhóm thực hiện test theo 2 cách: test bằng Selenium IDE trên trình duyệt Firefox

và test bằng Selenium Core trên các trình duyệt Firfox, Chrome, Safari, Opera, Internet Explorer

3.1.1 Thử nghiệm bằng Selenium IDE

- Tiến hành record lại một số thao tác: Nhập tên đăng nhập và mật khẩu hợp lệ (admin – admin) và submit Form đăng nhập thành công vào trang welcome, bôi đen dòng chữ

“Hello Admin, Have a nice day!!” click chuột phải và chọn “assertText css=font Hello

Trang 14

Admin, Have a nice day!!” để xác định phần tử font có giá trị là đoạn text trên Tắt record, lưu lại test case

open /web/login.html type id=textName admin type id=textPass admin clickAndWait css=input.button

assertText css=font Hello Admin, Have a nice day!!

Playback lại test case, form đăng nhập thành công Selenium thông báo 1 runs và 0 failures

- Tạo test case mới, nhập vào table các giá trị

open /web/login.html type id=textName admin type id=textPass 123456 clickAndWait css=input.button

assertText css=font Hello Admin, Have a nice day!!

Lưu và chạy test, chương trình báo 1 failures, chương trình dừng và báo lỗi ở assertText do không tìm thấy phần tử font có giá trị “Hello Admin, Have a nice day!!” trên page

- Tạo test case mới, thu các thao tác như trên, sau đó thêm 1 thao tác click vào button

“Click here” để bật ra cửa sổ alert “Hi, Admin”, dừng và lưu test case ta được bảng

Ngày đăng: 26/10/2014, 20:33

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Kiến trúc của Selenium IDE. - Báo cáo tìm hiểu công cụ selenium
Hình 1.1. Kiến trúc của Selenium IDE (Trang 6)
Hình 1.2. Kiến trúc Selenium Core - Báo cáo tìm hiểu công cụ selenium
Hình 1.2. Kiến trúc Selenium Core (Trang 6)
Hình 2.1. Add-on IDE trên Firefox  Sau khi cài đặt thành công thì giao diện của Selenium Ide như hình: - Báo cáo tìm hiểu công cụ selenium
Hình 2.1. Add-on IDE trên Firefox Sau khi cài đặt thành công thì giao diện của Selenium Ide như hình: (Trang 7)
Hình 2.2. Giao diện của Selenium IDE - Báo cáo tìm hiểu công cụ selenium
Hình 2.2. Giao diện của Selenium IDE (Trang 8)
Hình 2.3.Giao diện của Selenium Core  Màn hình chia làm 4 frame: - Báo cáo tìm hiểu công cụ selenium
Hình 2.3. Giao diện của Selenium Core Màn hình chia làm 4 frame: (Trang 9)
Hình 2.4. Tab Source. - Báo cáo tìm hiểu công cụ selenium
Hình 2.4. Tab Source (Trang 11)
Hình 2.5. Export test case - Báo cáo tìm hiểu công cụ selenium
Hình 2.5. Export test case (Trang 12)
Hình 3.1. Màn hình login - Báo cáo tìm hiểu công cụ selenium
Hình 3.1. Màn hình login (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w