Dự án đầu tiên với Selenium va TestNG

Selenium và TestNG (Java) – Bắt đầu với dự án đầu tiên

Cài đặt môi trường

Để bắt đầu với dự án Selenium và TestNG các bạn cài giúp mình IntelliJ IDEA bản Community và JDK để có thể coding với Java được nhé. Các bạn có thể tải ở trang chủ:

  • IntelliJ IDEA: Tải và cài đặt IntelliJ IDEA từ trang web chính thức của JetBrains. Khi bạn truy cập link này thì phiên bản trả phí (IntelliJ IDEA Ultimate) sẽ nằm ở đầu, các bạn có điều kiện có thể dùng bản này để ủng hộ nhà phát triển nha. Còn không thì các bạn có thể scroll xuống bên dưới họ cũng có cung cấp bản miễn phí (IntelliJ IDEA Community Edition)
  • JDK: Đảm bảo bạn đã cài đặt JDK (Java Development Kit) phiên bản 11 hoặc cao hơn. Tại thời điểm mình viết bài (07/2024) thì có nhiều bài viết trên các diễn đàn đề cập đến việc phiên bản tối thiểu của Selenium hỗ trợ đó là JDK từ bản 11 trở lên. Các bạn có thể tìm kiếm thêm tại các diễn đàn, hoặc trang chủ về phiên bản JDK phù hợp.

Tạo dự án mới trên IntelliJ IDEA

  1. Mở IntelliJ IDEA và chọn “New Project”.
  2. Chọn “Java” từ danh sách các loại dự án.
  3. Đặt tên dự án (Name) và chọn thư mục lưu trữ code (Location)
  4. Để mặc định các trường, ở đây mình dùng Build systemMaven nhé. Maven có cộng đồng hỗ trợ lớn, tài liệu phong phú và được sử dụng phổ biến.
  5. Chọn “Create” để tạo dự án.

* Lưu ý: Giao diện phiên bản IntelliJ IDEA của bạn có thể khác ở thời điểm các bạn đọc bài viết khác nhau. Đối với các bạn sử dụng IntelliJ IDEA Ultimate trả phí sẽ có thể tạo 1 dự án Selenium với template có sẵn. Đối với bản Community, giao diện tạo dự án như hình bên dưới

Sau khi tạo, dự án sẽ có cấu trúc thư mục như hình bên dưới:

Thêm Thư Viện Selenium và TestNG

Để sử dụng được Selenium và TestNG vào dự án (Maven Project) của mình thì chúng ta cần cài nó vào file pom.xml. Bạn có thể truy cập https://mvnrepository.com/ để tìm kiếm thêm các thư viện cần cài.

Thêm dependency Selenium

Bạn truy cập vào mvnrepository.com tìm với từ khoá Selenium sau đó chọn Selenium Java (hiển thị đầu tiên của kết quả) hoặc vào link này.

Tôi sẽ chọn phiên bản mới nhất và có lượt sử dụng cao hơn. Hiện tại là 4.22.0

Chọn link đến phiên bản ở Cột version, sau đó copy hết code như hình bên dưới bỏ vô file pom.xml:

Thêm 1 cặp thẻ <dependencies></dependencies> vào file pom.xml sau đó bỏ dependency vừa copy vào, như sau:

Sau khi thêm thư viện vào xong, nhấn vào biểu tượng reload hoặc nhấn phải chuột > Maven > Reload project để cập nhật thư viện cho dự án.

Sau khi nhấn Reload, đợi 1 lát để thư viện được tải về và cài đặt. Đối với TestNG, bạn làm tương tự các bước tìm, thêm dependency như trên.

Thêm dependency TestNG

Bạn truy cập vào link sau để chọn phiên bản TestNG bạn muốn sử dụng, mình sử dụng phiên bản mới nhất (7.10.2).

Bạn tiếp tục copy dependency của TestNG và dán vào file pom.xml. Sau đó reload file pom.xml để cài đặt thư viện, tương tự với việc cài đặt Selenium ở trên.

Sau khi cài đặt Selenium và TestNG file pom.xml sẽ có các dependency như sau:

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.22.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.10.2</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

Tạo mã kiểm thử tự động đầu tiên

Ở ví dụ này chúng ta sẽ bắt đầu tạo bài kiểm thử đầu tiên với trang google search (https://gooogle.com/)

Ở thư mục src/test/java tạo 1 Class mới đặt tên là GoogleSearchTest, sau đó dán các dòng code sau vào:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.time.Duration;

public class GoogleSearchTest  {
    private WebDriver driver;

    @BeforeClass
    public void setUp() {
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    }

    @Test
    public void testGoogleSearch() {
        driver.get("https://www.google.com");
    // Thêm các kịch bản kiểm thử khác nếu bạn muốn tại đây
    }

    @AfterClass
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

Ở phiên bản selenium từ 4.11 nó đã tự động tải driver về tương ứng với trình duyệt hiện tại trên máy tính nên chúng ta không cần tải driver rời như những phiên bản cũ nữa nhé!

Cấu hình TestNG

Sau đó tạo 1 thư mục src/test/resources và tạo 1 file testng.xml, sao chép mã bên dưới và bỏ mã sau vào file này:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <test name="Test">
        <classes>
            <class name="GoogleSearchTest"/>
        </classes>
    </test>
</suite>

Chạy và kiểm tra

Để chạy Test này bạn có thể mở file testng.xml và nhấn vào nút RUN, mã sẽ được thực thi và trả kết quả như hình bên dưới:

Tuy kết quả trả về Total tests run: 1, Passes: 1, Failures: 0, Skips: 0. Tuy nhiên vẫn có dòng đỏ bên trên, chúng ta phải giải quyết để tránh lỗi về sau nhé!

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Thực ra lỗi này liên quan đến SLF4J (Simple Logging Facade for Java), một API ghi log phổ biến được sử dụng trong nhiều dự án Java. Thông báo lỗi này cho biết rằng SLF4J không thể tải lớp org.slf4j.impl.StaticLoggerBinder, điều này có nghĩa là không có trình triển khai ghi log nào được tìm thấy. Do đó, SLF4J sẽ sử dụng chế độ mặc định là “no-operation” (NOP), tức là không ghi log gì cả. Cách khắc phục đó là cài thêm thư viện SLF4J APISLF4J Simple vào dự án.

Mở lại file pom.xml và thêm thư viện 2 SLF4J vào (bạn tìm kiếm trên mvnrepository.com nhé)

Cuối cùng, file pom.xml của chúng ta sẽ như sau:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>selenium.thanhbinhbent.com</groupId>
    <artifactId>selenium-testng-thanhbinhbent</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.22.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.testng/testng -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.10.2</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.13</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>2.0.13</version>
            <scope>test</scope>
        </dependency>


    </dependencies>

</project>

Sau khi cài thêm SLF4J, hãy nhấn lại nút RUN và quan sát kết quả:

Hiện tại các lỗi đã được giải quyết. Đoạn Log màu đỏ chỉ là thông tin về việc TestNG đang chạy thôi nên các bạn có thể bỏ qua nha!

Tổng kết

Bài viết này chúng ta đã cùng nhau tìm hiểu về cách cài đặt và setup dự án đầu tiên với Selenium, TestNG sử dụng Maven project trên IntelliJ IDEA. Hy vọng bài viết giúp ích cho các bạn trong quá trình học về Selenium và TestNG (Java). Bài viết dựa trên quá trình tự tìm hiểu do vậy chắc chắn sẽ còn nhiều thiếu sót, mong các bạn sẽ đóng góp phản hồi tích cực.

Lượt xem: 67

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Lên đầu trang