Get in touch
or send us a question?
CONTACT

Bài 1.Selenium Webdriver là gì?

thumbnail

I. Giới thiệu chung

Selenium Webdriver (Se driver) là một tool open source giúp việc thực thi các hành động lên trang web một cách tự động, tất nhiên là tùy vào mục đích và yêu cầu của người viết. Selenium driver hỗ trợ viết script trên nhiều ngôn ngữ khác nhau: Java, C#, python, PHP… nhưng trong series này mình chỉ giới thiệu Selenium driver qua ngôn ngữ Java

Về mặt bản chất, Selenium driver là một 1 package trong đó có chứa rất nhiều các class, cung cấp các API hay gọi nôm na là thư viện. Vì nó là thư viện nên cách sử dụng nó cũng chả khác gì việc sử dụng nhữngng thư viện khác mà Java đã cung cấp sẵn như java.util hay java.lang.

II. Để học được Selenium Webdriver thì cần những gì?

  • Máy tính đã cài Java 8 trở lên và có sẵn 1 bộ IDE soạn thảo code (mình dùng Intellij IDEA).
  • Biết Java cơ bản (nếu không biết thì học :v) Mình có mở lớp Java for tester cho những người chưa biết gì về lập trình.
  • Cài sẵn các add-on như Chropath / Selector trên Chrome để giúp lấy locator các element trên trang web.

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

1. TEST CRIPT VIẾT THEO TESTCASE

  • Để Se driver có thể mô phỏng hành động như click chuột hay điền giá trị, đầu tiên nó phải 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 vào css Selector hoặc Xpath)
  • Sau khi đã xác định được vị trí, thì sẽ xác định hành động đối với element đó. (thông qua các API được viết sẵn trong các gói thư viện của Webdriver, như đã nói ở trên)
  • Sau khi hoàn thành 1 list các hành động theo trình tự ( giống như thực hiện với manual test), ta sẽ kiểm tra xem trang web có thực hiện đúng hay không

2. VÍ DỤ: KIỂM TRA CHỨC NĂNG LOGIN

  • Ta cần phải xác định được vị trí của các element: [Username], [Password] và [Submit Button] và nói cho Webdriver biết vị trí của từng thằng.
  • Hành động đối với [Username] và [Password] là nhập dữ liệu, ta sẽ dùng các phương thức nhập dữ liệu. Với [Submit Button] thì ta dùng phương thức mô phỏng Click chuột.
  • Viết câu lệnh kiểm tra xem với dữ liệu nhập vào thì login có thành công hay không bằng cách xem nó có chuyển sang page khác hay vẫn ở lại page Login … Với thao tác bình thường, ta rất dễ có thể kiểm tra được xem Login như thế là Fail hay Pass nhưng với automation, việc này sẽ được check tự động và phải chọn những điểm làm căn cứ để đánh dấu Pass/Fail.

3. KHI RUN SCRIPT, ĐIỀU GÌ SẼ XẢY RA?

Khi viết xong script, mình muốn run để xem thử có bao nhiêu TC fail hay pass. Khi run, Se driver sẽ gọi trực tiếp (direct call)  trình duyệt thông qua driver của chính trình duyệt đó. Sau đó các hành động trên script sẽ được thực thi.

Chi tiết của direct call:

  1. Với mỗi 1 hành động từ script, một HTTP request sẽ được tạo ra
  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 script.
selenium-webdriver-architecture

IV. Những trang web giúp học Selenium Webdriver nhanh hơn

–  www.seleniumhq.org
–  http://www.seleniumeasy.com
–  https://automationfc.com/category/selenium/selenium-webdriver/
–  https://www.guru99.com/selenium-tutorial.html

V. Tổng kết

Đây chỉ mới là bài giới thiệu về công cụ kiểm thử tự động mà nhà nhà nói, người người nói. Sẽ còn rất nhiều điều phải học, phải làm nhưng mình tin là nó không quá khó, kể cả với những người còn kém lập trình như mình. 

Nguồn: https://giangtester.com/bai-1-selenium-webdriver-la-gi/