Giới thiệu Selenium WebDriver
Bài viết được sự cho phép của tác giả Lê Chí Dũng
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-in 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-in 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 cấp 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 ứng dụng 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 – để thiết kế test case. Tuy nhiên, về cá nhân thì mình thích bạn Selenium WebDriver hơn bạn Selenium RC. Đơn giản vì cái nào ra sau sẽ mạnh mẽ hơn cái trước
Đùa thôi, nghiêm túc mà nói thì mình nhận thấy Selenium WebDriver có các thế mạnh so với Selenium RC như sau:
Kiến trúc
Kiến trúc của Selenium WebDriver đơn giản hơn rất nhiều so với Selenium RC. Selenium WebDriver làm việc trực tiếp với trình duyệt ở mức độ hệ điều hành trong khi Selenium RC làm việc với trình duyệt thông qua một hệ thống Server ảo – Selenium Remote Control (RC) Server. Nó cứ như có một người trung gian để chuyển lệnh từ test case của mình lên trình duyệt vậy.
Tốc độ
Tất nhiên, khi làm việc trực tiếp giữa hai người (Selenium WebDriver – trình duyệt) thì nó phải nhanh hơn làm việc thông qua người trung gian (Selenium RC – Selenium RC Server – trình duyệt) rồi hen.
Tương tác như đời thật
Với Selenium WebDriver, chúng ta không thể tương tác với các đồi tượng UI ẩn (hidden)/vô hiệu (disable) trong mã nguồn web. Ngược lại, với Selenium RC, chúng ta có thể làm mọi đồi tượng UI có trong mã nguồn, bất kể đồi tượng UI đó nó như thế nào trên UI. Điều này thực sự không tốt cho việc kiểm thử phần mềm vì nó bỏ qua các lỗi UI có thể có. Hơn nữa, trong đời thực, chúng ta không thể tương tác với các đồi tượng UI ẩn/vô hiệu.
Giao diện lập trình ứng dụng API – Application Programming Interface
Các APIs mà Selenium WebDriver cung cấp trong thư viện đơn giản hơn so với Selenium RC. Ví dụ như, với Selenium WebDriver, chúng ta chỉ có click; còn với Selenium RC, chúng ta có click, mouseDown, or mouseDownAt. Quá phức tạp phải không? Hơn nữa, khi sử dụng Selenium RC, chúng ta xác định hành động trước rối mới đền đối tượng UI (làm gì trên đối tượng nào); ngược lại, với Selenium WebDriver, chúng ta xác định đối tượng UI trước rồi mới nói đến làm gì trên nó (với đối tượng này chúng ta sẽ làm gì).
Bên cạnh đó, Selenium WebDriver không phải không có điểm yếu. Thứ mà mình không thích nhất của Selenium WebDriver đó là mã nguồn của nó không chạy trên Selenium Grid được. Cho nên, khi muốn thực thi test case với Selenium WebDriver trên nhiều trình duyệt khác nhau, chúng ta phải cấu hình bằng tay. Buồn là vậy….
Bài viết gốc được đăng tải tại vntesters.com
Có thể bạn quan tâm:
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?