Hướng dẫn code tool selenium bằng java

Selenium là một tập hợp nhiều thành phần đơn lẻ để tự động hóa việc kiểm thử ứng dụng Web, các công cụ đơn lẻ này có thể được sử dụng riêng biệt hoặc kết hợp với nhau trong dự án. Selenium bao gồm các công cụ sau:

  • Selenium IDE: Là một công cụ hoàn chỉnh để viết kịch bản kiểm thử cho website, có khả năng ghi lại các thao tác của người dùng để chuyển thành test script. Được phát triển dưới dạng extension của Firefox và Chrome.
  • Selenium Client API: Là một thư viện để hỗ trợ lập trình tự động hóa ứng dụng Web. Nó hỗ trợ các ngôn ngữ: Java, C#, Python, Ruby, JavaScript. Bắt đầu từ phiên bản Selenium 2 thì Client API được tích hợp luôn vào Selenium WebDriver.
  • Selenium Remote Control: Đây là một HTTP Server để nhận các lệnh điều khiển trình duyệt từ mã lập trình và chuyển đến các browser. Hỗ trợ tập hợp các ngôn ngữ giống như Client API.
  • Selenium WebDriver: Đây là thành phần thay thế cho Selenium RC. Nó không cần dựng lên HTTP Server nữa mà có thể trực tiếp điều khiển các trình duyệt.
  • Selenium Grid: Thành phần cho phép chạy song song các kịch bản kiểm thử trên nhiều máy tính ở xa và nhiều trình duyệt khác nhau, thường được sử dụng kết hợp với Selenium WebDriver.

Ở bên dưới đây tôi sẽ giới thiệu với các bạn làm quen với Selenium WebDriver, thành phần cốt lõi nhất của bộ công cụ Selenium. Trong các dự án kiểm thử tự động sử dụng Selenium, thì WebDriver và Grid được sử dụng nhiều nhất do bộ đôi này phù hợp với quy mô kiểm thử lớn về số lượng test script cũng như số lượng môi trường kiểm thử.

WebDriver Cơ Bản Với Java

Tại sao tôi lại chọn Java? Vì đơn giản là những thứ liên quan đến việc lập trình Java thường miễn phí và Selenium nguyên thủy được viết bằng Java, cũng như việc Java có thể thực thi trên nhiều nền tảng khác nhau. Ta sẽ ít gặp rắc rối về bản quyền hay tính tương thích của test script hơn là các tổ hợp ngôn ngữ, framework khác.

Cài Đặt Các Công Cụ Cần Thiết

Để bắt đầu chúng ta cần cài đặt các ứng dụng sau lên máy tính:

  • JDK 8. Cú pháp hiện đại của JDK 12 sẽ khó hiểu với một số bạn mới bắt đầu lập trình, do đó tôi chọn Java 8 để bắt đầu.
  • Eclipse Kepler hoặc mới hơn.
  • Maven. Tham khảo cách cài đặt tại đây: https://mkyong.com/maven/how-to-install-maven-in-windows/
  • Plugin m2eclipse cho Eclipse. Tham khảo cách cài đặt tại đây: https://ibytecode.com/blog/installing-m2eclipse-maven-plugin-for-eclipse/
  • Chrome version 80 (Nếu dùng phiên bản Chrome khác thì bạn cũng phải sử dụngluôn phiên bản chromedriver.exe và WebDriver tương thích)

Khởi Tạo Dự Án

Để khởi tạo dự án, bạn hãy mở Eclipse lên và chọn New Maven Project như hình minh họa sau:

Hướng dẫn code tool selenium bằng java

Cấu trúc khung cơ bản của một dự án maven sẽ được tạo ra, sau đó bạn cần thêm Selenium vào danh sách dependency như sau:

  • Nhấn phải chuột vào tên dự án hoặc bất kỳ folder/file nào trong dự án
  • Chọn Maven > Add Dependency

Hướng dẫn code tool selenium bằng java

Nhập các thông tin như hình dưới đây sau đó nhấn OK:

Hướng dẫn code tool selenium bằng java

Test Script (Kịch Bản Kiểm Thử) Cơ Bản

Nếu hoàn tất các bước ở trên thì các bạn đã có được cấu trúc cơ bản của một dự án Java Maven. Tiếp theo các bạn có thể bắt đầu tạo test script đầu tiên để làm quen với các chức năng của Selenium WebDriver. Lưu ý với các bạn là cấu trúc của test script này đang đi theo cấu trúc cơ bản của một chương trình Java, không phù hợp với việc test tuy nhiên vẫn có thể sử dụng để làm quen với Selenium. Sau này tôi sẽ giới thiệu với các bạn cấu trúc theo định hướng chương trình kiểm thử.

  1. Ứng dụng mà chúng ta sẽ sử dụng để thử ở link sau: http://demo.guru99.com/test/newtours/

Hướng dẫn code tool selenium bằng java

  1. Tải về driver cho trình duyệt Chrome ở link sau và đặt trên một thư mục bất kỳ trên ổ cứng: https://chromedriver.storage.googleapis.com/index.html?path=80.0.3987.106/
  2. Tạo 1 java class mới, mình đang đặt tên là selenium.java
  3. Đầu tiên bạn cần thêm các class sau vào danh sách import để sử dụng

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

  • Sau đó chúng ta sẽ viết mã mở trình duyệt lên như sau sau ở bên trong hàm main của class selenium:

System.setProperty("webdriver.chrome.driver","D:\\driver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();

Hàm setProperty bên trên sẽ thiết lập đường dẫn đền file chromedriver.exe mà ta đã lưu ở bước trước đó.

Hàm new ChromeDriver() sẽ khởi tạo giá trị cho driver và đồng thời mở trình duyệt lên.

  • Tiếp đến chúng ta cần khai báo các locator như sau:

 String baseUrl = "http://demo.guru99.com/test/newtours/";
 String expectedTitle = "Welcome: Mercury Tours";
 String submitButtonXpath = "//input[@name='submit']";
 String loginSuccessMessageXpath = "//h3[text()='Login Successfully']";
 String actualTitle = "";

Locator là các chuỗi ký tự để xác định vị trí các thành phần (element) trên giao diện web, có tất cả 8 loại locator mà tôi sẽ giới thiệu trong bài viết kế tiếp.

  • Kế tiếp chúng ta sẽ nhấn vào nút Submit:

//get the submit button element
WebElement submitButtonElement = driver.findElement(By.xpath(submitButtonXpath));
//click submit button
submitButtonElement.click();

  • Kế tiếp chúng ta sẽ kiểm tra xem việc click nút Submit có thành công hay không bằng cách tìm dòng chữ "Login Successfully" trên màn hình:

//Verify that login successfully message is exist
        boolean loginSuccessMessageExisted = false;
        WebElement loginSuccessMessageElement;
        try {
          loginSuccessMessageExisted = driver.findElement(By.xpath(loginSuccessMessageXpath)) != null;
        } catch (NoSuchElementException e) {
          System.out.println("Login success message does not exist");
        }
        if (loginSuccessMessageExisted) {
          System.out.println("Test 2 Passed!");
        }  else {
            System.out.println("Test 2 Failed");
        }

  • Và cuối cùng chúng ta cần đóng trình duyệt và hủy biến driver sau khi test xong:

        driver.close();

Sau đó bạn có thể lưu class này lại và chạy thử test script bằng cách nhấn phải chuột vào file selenium.java > Run As > Java Application, và xem nó chạy trên trình duyệt như thế nào. Selenium khi chạy không chiếm dụng con chuột và bàn phím của bạn như một số công cụ khác, do đó khi Selenium đang chạy.

Các bạn có thể tải file test script này ở địa chỉ sau: https://gitlab.com/anhthuyz/selenium-training/-/raw/master/selenium?inline=false

Tạm kết

Như vậy chúng ta đã cùng nhau làm quen với những viên gạch đầu tiên của Selenium WebDriver. Các bạn nhớ đón đọc bài viết tiếp theo về WebDriver nhé.