Selenium Webdriver là gì? Cách thức hoạt động

Hoa Nhài

Nhiều công cụ kiểm thử xuất hiện nhằm hỗ trợ tối đa cho Tester trong quá trình kiểm thử phần mềm. Một trong số đó phải kể đến Selenium Webdriver với nhiều ưu thế nổi trội. Vậy Selenium Webdriver là gì? Cách thức hoạt động và ưu, nhược điểm của công cụ này ra sao? Hãy cùng Testerpro tìm hiểu câu trả lời trong bài viết dưới đây nhé!

Selenium WebDriver

Selenium WebDriver là gì?

Selenium WebDriver hay còn gọi là WebDriver là một automation framework của web cho phép bạn thực hiện các kiểm thử trên nhiều trình duyệt: Firefox, Chrome, Internet Explorer,… Nó là một thành phần không thể thiếu trong bộ kiểm thử tự động Selenium.

Đây là một bộ công cụ kiểm thử tự động nổi tiếng với mã nguồn mở và có khả năng hỗ trợ nhiều ngôn ngữ lập trình: Java, .Net, PHP, Python, Perl, Ruby,… WebDriver có công cụ hỗ trợ bạn trong việc coding để tạo ra test scripts. Bạn có thể sử dụng các phương thức điều kiện: if-then-other, switch-case, vòng lặp do-while,…

Được tạo dựng trên nền tảng cơ bản của một Client độc lập được tạo cho mỗi trình duyệt web và không yêu cầu JavaScript nặng. Nó là một framework hướng đối tượng hoàn toàn, hoạt động trên tầng hệ điều hành.

Selenium WebDriver

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

  • Sử dụng 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ử. Bạn có thể sử dụng các điều kiện if else và vòng lặp để tăng tính chính xác cho kịch bản.
  • 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.

Selenium WebDriver

 

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

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.

Selenium WebDriver

 

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 ứng dụng của Windows. Điều này sẽ khiến bạn gặp khó khăn trong việc kiểm tra tốc độ kết nối với ứng dụng Windows.
  • 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. Ngoài ra bạn cần phải biết cách sử dụng thành thạo các công cụ kiểm thử tự động.
  • Khác với các công cụ khác thì WebDriver khó bảo trì và mở rộng quá trình kiểm thử. Bởi sự cứng nhắc trong công cụ này khi nó chỉ sử dụng một identifier (mã định danh) duy nhất trong suốt quá trình test. Vì vậy mà bộ công cụ này thực sự không phù hợp với các doanh nghiệp có quy mô lớn.
  • 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, JUnit hay Allure.

Selenium WebDriver

Cách Selenium Webdriver làm việc?

Selenium WebDriver

Điều kiện sử dụng Webdriver

  • Áp dụng khi sử dụng một ngôn ngữ lập trình nhất định trong việc thiết kế Test case.
  • Kiểm tra các ứng dụng có nhiều chức năng dựa trên AJAX.
  • Tiến hành các kiểm thử trên trình duyệt HtmlUnit.
  • Tạo kết quả kiểm thử tùy chỉnh.

Xây dựng Test cript theo testcase

  • Nếu bạn muốn Webdriver mô phỏng được các hành động: click chuột hoặc điền giá trị. Trước tiên nó cần xác định được vị trí của element (phần tử) trên trang web mà nó sẽ tương tác. Dựa trên css Selector hoặc Xpath để xác định.
  • Khi đã xác định được vị trí thì bạn cần xác định được hành động đối với element đó. Bằng các API được viết sẵn trong các gói thư viện của Webdriver.
  • Sau khi bạn hoàn thành trình tự hành động theo trình tự trên thì bạn hãy kiểm tra xem trang web có thực hiện đúng hay không?

Kiểm tra chức năng

  • Cụ thể ở đây là chức năng Login thì bạn cần xác định được vị trí của các element gồm: Username, Password, Submit Button. Từ đó truyền đến Webdriver để nó biết được vị trí của từng phần tử.
  • Hành động nhập dữ liệu được áp dụng với Username và Password. Còn với Submit Button thì ta sẽ dùng phương thức mô phỏng Click chuột.
  • Tiếp đó viết câu lệnh kiểm tra xem dữ liệu nhập vào thì login có thành công không. Bằng việc xem nó có chuyển hướng sang Page khác? Với thao tác đơn giản là bạn có thể xem Login đúng hay sai. Nhưng với automation thì nó được check tự động và phải chọn những điểm làm căn cứ đánh dấu Pass/Fail.

Kiểm tra Testcase fail hay pass

  • Khi đã viết xong script thì bạn sẽ tiến hành chạy để kiểm tra xem Testcase đúng hoặc sai. Trong quá trình khởi chạy thì Selenium WebDriver sẽ tương tác trực tiếp với trình duyệt quá driver của trình duyệt đó. Bây giờ thì các hành động trên script sẽ được thực thi.
  • Với mỗi hành động từ script, một HTTP request sẽ được tạo ra. Tiếp đó thì HTTP request đó gửi đến browser driver. Tương ứng với browser driver sẽ có 1 HTTP server để nhận lấy HTTP request.
  • Khi nhận xong thì 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. Tiếp đó thực thi các bước: mở trang web, điền thông tin vào Input,… Sau cùng thì HTTP server trả lại trạng thái thực hiện những hành động cho client, nơi đang run script.

Selenium WebDriver

Một số lệnh phổ biến trong Selenium WebDriver

  • Để điều hướng đến một trang web ta dùng lệnh: driver.get(“URL”)
  • Nhập một số văn bản vào input box sử dụng lệnh: element.sendKeys(“inputtext”)
  • Xóa bỏ nội dung trong input box nhập lệnh: element.clear()
  • Bỏ chọn tất cả Option đến Select đầu tiên trên trang nhập lệnh: select.deselect All()
  • Chuyển từ frame này sang frame có tên hoặc id là “frameName” dùng lệnh: driver.switchTo().frame(“frameName”)
  • Di chuyển con trỏ chuột từ cửa sổ này sang cửa sổ khác dùng lệnh: driver.switchTo().window(“windowName”)
  • Đóng trình duyệt hiện tại và các liên kết đến driver: driver.close()
  • Xử lý alert sử dụng lệnh: driver.switchTo().alert()
  • Chọn Option với đầu vào được chỉ định bởi người dùng dùng lệnh: select.selectByVisibleText(“some text”)
  • Thoát driver và đóng tất cả các cửa sổ liên quan đến driver đó thì nhập lệnh: driver.quit()
  • Tải lại trang hiện tại: driver.refresh()
  • Chuyển hướng về trang trước nhập lệnh: driver.navigate().back()
  • Để chuyển hướng đến URL thì dùng lệnh: driver.navigate().to(“URL”)
  • Nếu muốn chuyển hướng đến trang tiếp theo dùng lệnh: driver.navigate().forward()

Những điều cần chuẩn bị khi học Selenium Webdriver

Bên cạnh những kiến thức nền tảng thì bạn cần phải chú ý một số điểm sau khi học Webdriver:

  • Máy tính để học cần có hiệu năng tốt và ổn định đã cài sẵn ngôn ngữ Java 8 cùng chuẩn bị thêm bộ IDE code soạn thảo.
  • Bạn cần chuẩn bị tốt các cơ sở kiến thức nền tảng về Java cơ bản.
  • Cần cài đặt sẵn Add – on trên trình duyệt Google Chrome trong máy tính.
  • Tiến hành tải và lưu các file dữ liệu driver trên trình duyệt quen thuộc gồm: Firefoxdrive, chromedrive,…

Selenium WebDriver

Các trang web giúp học Selenium WebDriver nhanh và hiệu quả

Để trau dồi và tích lũy thêm nhiều kiến thức khi sử dụng bộ công cụ kiểm thử tự động Selenium. Bạn có thể tham khảo, học thêm ở một số trang web sau:

www.seleniumhq.org

Đây là trang web hàng đầu chuyên cung cấp các tài liệu về WebDriver dành cho những bạn mới bắt đầu. Bạn có thể tìm hiểu rõ hơn về cách thức sử dụng của công cụ kiểm thử tự động này một cách chi tiết. Với thao diện thân thiện cùng những tính năng nổi trội chắc chắn bạn sẽ nắm rõ được các kiến thức cần thiết về WebDriver một cách nhanh chóng.

Selenium WebDriver

http://www.seleniumeasy.com

Ngoài website trên thì bạn có thể tham khảo và học hỏi từ trang web này. Để nắm vững hơn các kiến thức về Selenium WebDriver. Với nhiều bài học bổ ích cùng ví dụ thực tế áp dụng với những ngôn ngữ khác nhau. Đây là kênh học tập hiệu quả dành cho người mới bắt đầu và những chuyên gia.  

https://www.guru99.com/selenium-tutorial.html

Trang web này cung cấp cho bạn nhiều kiến thức hữu ích về các thủ thuật WebDriver từ đơn giản đến phức tạp. Bạn có thể tham khảo trang web này để học hỏi thêm nhiều kiến thức mới thông qua những bài hướng dẫn chi tiết và dễ hiểu.

Qua những nội dung đã chia sẻ ở trên thì bạn đọc đã hiểu rõ hơn về Selenium WebDriver. Đồng thời trau dồi nhiều thêm các kiến thức trong lĩnh vực kiểm thử phần mềm. Nếu có bất cứ vấn đề gì cần giải đáp thì hãy để lại bình luận phía dưới nhé!

 

5/5 - (2 votes)
Từ khóa:
Bình luận
Icon Phone Icon Zalo