Kiến trúc về Selenium WebDriver

I. Giới thiệu chung

Selenium hỗ trợ chỉ tự động hóa web, và nó không hỗ trợ tự động hoá các ứng dụng máy tính để bàn. Chúng ta hãy hiểu những thành phần hiện diện trong kiến trúc của Selenium là gì.

Selenium WebDriver bắt chước hành vi người dùng thực tế càng gần càng tốt. Vì người dùng thực tế không thể tương tác với bất kỳ yếu tố vô hình nào hoặc các yếu tố chưa được hiển thị, nên webdriver cũng không.

Vì vậy, chúng ta cần phải luôn đảm bảo rằng các phần tử web đang ở trạng thái “đúng” trước khi chúng ta cố gắng tương tác với chúng.

 

II. Tại sao nên sử dụng Selenium WebDriver?

  • Nó hoàn toàn miễn phí
  • WebDriver có kiến trúc đơn giản: điều khiển trình duyệt từ hệ điều hành và bạn cần IDE cùng trình duyệt là xong.
  • Hỗ trợ nhiều ngôn ngữ lập trình cho bạn viết kịch bản kiểm thử.
  • So với các bộ công cụ khác của bộ Selenium thì đây là công cụ có tốc độ nhanh nhất trong số tất cả. Bởi nó có sự tương tác trực tiếp từ hệ điều hành đến trình duyệt.

III. Ưu, nhược điểm của Selenium WebDriver

Ưu điểm

  • Được biết đến là phần mềm mã nguồn mở (open-source), WebDriver được các Tester sử dụng là công cụ mặc định. Từ đó giúp bạn tiết kiệm được chi phí khi sử dụng cùng toàn bộ quá trình Test.
  • Bộ công cụ này tương thích với hầu hết các trình duyệt web phổ biến: irefox, Internet Explorer, Chrome,… Bạn có thể dễ dàng chạy các trình duyệt này ở bất kỳ hệ điều hành nào từ Windows, Mac hay Linux.
  • Với khả năng hỗ trợ nhiều ngôn ngữ lập trình hiện nay: Python, C+, C#, Ruby,… Khi làm việc với công cụ này thì người dùng không phải học thêm bất cứ ngôn ngữ lập trình nào. Bạn có thể viết các đoạn script một cách hiệu quả bằng ngôn ngữ lập trình mà bạn thông thạo.
  • Khi so sánh với các thành phần khác của Selenium thì WebDriver có giao diện thân thiện nhất. Sở hữu nhiều tài liệu bổ ích và cần thiết kết hợp với các câu lệnh dễ nhớ và thuận thiện cho việc kiểm thử. Nhờ đó bạn có thể tiến hành công việc nhanh chóng và đạt hiệu quả cao hơn.
  • Ngoài ra, bạn sẽ nhận được sự trợ giúp tối đa của cộng đồng Selenium Webdriver trên toàn cầu. Nếu trong suốt quá trình kiểm thử gặp bất cứ vấn đề khó khăn hay vướng mắc gì. Đây cũng chính là điểm nổi bật khiến phần mềm này ngày càng được đón nhận.
  • Selenium WebDriver có khả năng hỗ trợ tự động hóa các trình duyệt web. Từng trình duyệt sẽ có công cụ hỗ trợ riêng: ChromeDriver là của Chrome, Selenium FirefoxDriver của Firefox,… Chính vì vậy mà tốc độ thực thi của Selenium WebDriver sẽ nhanh hơn nhiều so với các công cụ khác trong Selenium.
  • Khắc phục được các hạn chế của Selenium v1: tải lên tệp, tải xuống, cửa sổ bật lên và hộp thoại.
  • Các thử nghiệm có thể thực hiện trên nhiều hệ điều hành khác nhau: Windows, Mac, Linux, Android, iOS.

Nhược điểm

Bên cạnh những ưu điểm nổi trội trên thì bộ công cụ này cũng có nhiều điểm hạn chế:

  • Đúng như tên gọi thì bộ cụ này chỉ hoạt động trên nền tảng Website. Bạn không thể tìm cách để mở rộng WebDriver trên nền tảng desktop applications hay mobiles.
  • Với xu hướng tự động hóa hiện nay thì các phần mềm kiểm thử tự động được ưa chuộng nhiều. Do đó bạn không cần phải có kiến thức quá cao siêu về code vẫn có thể làm tốt công việc này. Tuy nhiên Selenium WebDriver lại trái ngược hoàn toàn. Nếu bạn không nắm vững kiến thức thì sẽ không thể sử dụng các tính năng có trong công cụ này. Vì vậy, kiến thức nền tảng về một loại ngôn ngữ lập trình nhất định là cần thiết. 
  • Không có sự hỗ trợ về các giải pháp áp dụng cho các lỗi kỹ thuật đến từ hệ thống nếu sử dụng bộ công cụ này. Tuy nhiên nếu gặp vấn đề thì bạn có thể nhận sự trợ giúp từ cộng đồng người dùng sử dụng WebDriver trên toàn thế giới.
  • Mặc dù là công cụ dùng để kiểm thử nhưng Selenium WebDriver không được trang bị chức năng lập báo cáo tự động. Điều này khiến cho việc khắc phục sự cố và lỗi khó khăn cùng mất nhiều thời gian hơn. Nếu muốn tạo báo cáo bạn phải sử dụng công cụ bên thứ ba: TestNG, JUnithay Allure.

 

IV. Selenium WebDriver hoạt động như thế nào?

Selenium WebDriver hoạt động theo mô tả 6 bước sau:

  1. Một HTTP request sẽ được tạo ra ứng với mỗi dòng code trong script.
  2. HTTP request đó gửi đến browser driver.
  3. Mỗi browser driver sẽ có 1 HTTP server để nhận lấy HTTP request
  4. 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.
  5. HTTP server thực thi những bước ở trên như mở trang web, điền thông tin vào thẻ input…
  6. Sau đó, HTTP server trả lại trạng thái thực hiện những hành động cho client, nơi đang run automation script.