NỘI DUNG BÀI HỌC

✳️ Giới thiệu Maven project
✳️ Cài đặt thư viện hỗ trợ đọc file JSON
✳️ Cách đọc file JSON

✅ Maven project là gì?

Maven project là một project Java sử dụng công cụ Apache Maven để xây dựng nên một project Java mang nét đặc trưng kiểu Maven. Code sẽ được hỗ trợ bởi các thư viện trong Apache Maven và các quy tắc thiết lập vận hành bởi Maven.

🔆 Apache Maven là gì?

Apache Maven là một công cụ quản lý dự án và tự động hóa quy trình xây dựng (build) trong phát triển phần mềm. Maven giúp quản lý các phụ thuộc, quản lý vòng đời của dự án, và tự động hóa nhiều công việc liên quan đến quá trình phát triển, như việc biên dịch mã nguồn, quản lý thư viện, và tạo ra các bản phân phối của ứng dụng.

Maven sử dụng file cấu hình XML để định rõ cấu trúc dự án và các công việc cần thực hiện. Mỗi dự án Maven thường chứa một tập hợp các thư mục chuẩn và một hoặc nhiều file cấu hình POM (Project Object Model). File POM mô tả thông tin về dự án, các phụ thuộc, các plugin mà Maven sẽ sử dụng trong quá trình xây dựng, và nhiều thông tin khác.

Maven giúp đơn giản hóa quy trình phát triển và làm cho việc chia sẻ mã nguồn, quản lý thư viện, và triển khai ứng dụng trở nên dễ dàng hơn. Nó là một công cụ phổ biến trong cộng đồng phát triển Java và cũng có thể được sử dụng cho nhiều ngôn ngữ lập trình khác.

Đặc biệt hay của Maven project là khi cài đặt các thư viện thì chúng ta chỉ cần search trong kho có sẵn tại mvnrepository.com của Maven luôn không cần tải và add file JAR thuần tuý. Điều này giúp tiện lợi cả về thao tác và bộ nhớ. Nhẹ nhàng hơn và thuận tiện hơn nhanh hơn.

✅ Cài đặt môi trường Maven trên Windows


🔆 Cách tải và cài biến môi trường Maven trên windows

Để tải Apache Maven trên máy tính chạy hệ điều hành windows, điều đầu tiên chúng ta cần làm là tải file maven zip từ trang chủ và giải nén ra. Sau đó chúng ta cần cài biến môi trường cho Maven để có thể sử dụng trên máy.

Điều kiện cần

Để cài đặt và sử dụng Maven, trước tiên chúng ta cần đảm bảo máy tính đã cài sẵn JDK và đã cấu hình biến môi trường JAVA_HOME.

🔆 Tải Apache Maven

Apache Maven được tải miễn phí, các bạn có thể vào trang chủ của Apache Maven để tải xuống file zip. Chọn cái Binary zip archive

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Tại thời điểm soạn bài blog trước đây thì phiên bản 3.8.6 nhưng hiện tại ngày 14/11/2023 thì phiên bản 3.9.5 đang là phiên bản mới nhất của Maven. Các bạn cứ cài phiên bản mới nhất nhé.

Sau khi tải xong, các bạn tiến hành giải nén và đặt nó trong thư mục bất kỳ, nhưng hãy đặt trong thư mục ít đụng tới vì nếu lở các bạn xoá thì Maven sẽ không hoạt động được nữa. Sau khi giải nén thư mục sẽ trông giống như thế này.

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Bây giờ chúng ta move nó sang ổ đĩa C:\ cho an toàn vì cũng ít đụng đến. An suggest thôi nhé.

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

🔆 Cài đặt biến môi trường cho Maven

Bước cuối cùng để chúng ta có thể sử dụng Maven là cài biến môi trường cho nó bằng cách.

Vào thanh tìm kiếm của windows gõ View advanced system settings hoặc Variable nó sẽ ra như bên dưới:

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Trong System Properties dialog, chọn vào Advanced và chọn Environment Variables…

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester


Trong Environment variables dialog, vào phần System variables chọn New
Trong này chúng ta sẽ tạo biến môi trường MAVEN_HOME và trỏ đến thư mục mà chúng ta đã lưu trước đó. Y như JDK chúng ta từng làm.

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Nó sẽ như thế này

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Tiếp theo chúng ta sẽ trỏ cái biến MAVEN_HOME này vào biến Path của hệ thống

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Sau khi nhấn Edit thì sẽ hiện form tiếp tục nhấn New

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester

Chúng ta nhập giá trị như sau:  %MAVEN_HOME%\bin

[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester


Nghĩa là chúng ta chỉ định từ biến MAVEN_HOME trỏ đến thư mục bin của nó

Tiếp theo nhấn Ok Ok Ok là xong.


🔆 Kiểm tra phiên bản Maven đã cài đặt

Để kiểm tra quá trình cài đặt đã thành công hay chưa chúng ta cần mở CMD lên và chạy những lệnh sau:

mvn -version


[Selenium Java] Bài 4: Cài đặt môi trường Selenium với Java | Anh Tester


Nó sẽ hiển thị Maven version chúng ta vừa cài và cùng phiên bản JDK đã cài trước đó. Vậy là xong !!

Nếu các bạn check nó chưa ra thì ghi lệnh này thử nó có ra đường dẫn đúng chưa:  echo %MAVEN_HOME%

Khi nó ra đường dẫn rồi mà chưa hiểu biến môi trường thì chúng ta cần restart máy lại 😁


✅ Tạo Maven project trên IntelliJ IDEA


Bước 1: Mở IntelliJ IDEA và chọn File > New > Project

Bước 2: Chọn tab New Project và nhập thông tin như mẫu




🔆 Các bạn chú ý:

  • Số 5 nhớ chọn loại Maven
  • Số 7 nhập gì cũng được. Không biết nhập gì thì nhập theo mẫu. Những thông tin này sẽ nằm trong file pom.xml sau khi create project.

Cuối cùng nhấn Create là xong !!



Đặc trưng của Maven project mà có 2 package "main/java" và "test/java". Chúng ta sẽ biết code Java vào trong package "java" màu tím tím.


✅ Cài đặt thư viện vào Maven project trên IntelliJ IDEA

Để cài đặt thư viện vào Maven project thì các bạn sẽ cài nó vào file pom.xml

Thư viện sẽ được lấy tại đây:  https://mvnrepository.com/

Chúng ta cần cái gì thì search cái đó rồi copy bỏ vào file pom.xml sau đó nhấn build lại maven project là xong.

Ví dụ An add thư viện JSON Path hỗ trợ đọc data từ file JSON nhé.


✳️ Cài đặt thư viện hỗ trợ đọc file JSON

Tìm thư viện JSON Path trên mvnrepository.com



Chọn đúng thư viện (dựa vào tên công ty) và phiên bản phù hợp. Nên chọn version mới nhất.




Click tab Maven và copy hết thư viện JSON Path



Tiếp theo mở file pom.xml và dán vào cặp thẻ <dependencies>



Tuy nhiên thư viện JSON Path cần thêm thư viện bổ trợ là "slf4j" nên các bạn copy thêm 2 thư viện sau vào nhé.

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.9</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.9</version>
</dependency>


Lúc bấy giờ chúng ta có thư viện đầy đủ trong file pom.xml 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>com.anhtester</groupId>
    <artifactId>JavaForTester2023MavenProject</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/com.jayway.jsonpath/json-path -->
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>2.8.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.9</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>2.0.9</version>
        </dependency>

    </dependencies>

</project>



✅ Cách đọc data từ file JSON

Đầu tiên tạo file JSON trước với tên bất kỳ và có phần mở rộng là .json

Ví dụ configs.josn, users.json,... và đặt vị trí nào cũng được nhé.



Tiếp theo tạo class demo để gọi dùng, ví dụ class DemoReadJsonFile

public class DemoReadJsonFile {
    public static void main(String[] args) {
        try {
            // Đọc nội dung của tệp JSON thành một chuỗi
            String jsonContent = new String(Files.readAllBytes(Paths.get("src/test/resources/configs.json")));

            // Sử dụng JsonPath để trích xuất dữ liệu từ chuỗi data
            // Dùng kí hiệu $ để gọi các key trong file JSON
            // Thay thế bằng biểu thức XPath phù hợp với cấu trúc JSON của bạn
            String browser = JsonPath.read(jsonContent, "$.browser");
            String url = JsonPath.read(jsonContent, "$.url");

            System.out.println("BROWSER: " + browser);
            System.out.println("URL: " + url);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


- Khai báo biến jsonContent kiểu String để lưu trữ dữ liệu khi đọc data từ file JSON với thư viện đọc file của Java.

- Dùng hàm "read" từ class JsonPath để truyền vào cục data trên và đường dẫn chỉ định key cần lấy để get ra được giá trị thông qua key đó.

- Dùng kí hiệu $ để thiết lập đường dẫn đến các key. Các bạn có thể dùng tools online tại đây https://jsonpath.com/ nó hỗ trợ chúng ta check data qua cấu trúc đường dẫn dạng xpath.

- Dữ liệu trả về là chuỗi nên dùng biến để lưu bình thường. Sau này các bạn tìm hiểu thêm về dữ liệu dang mảng hoặc object nhé.


Kết quả:

BROWSER: chrome
URL: https://crm.anhtester.com/admin/authentication



🔆 Ví dụ khác đọc data từ file users.json nhé

public class DemoReadJsonUsers {
    public static void main(String[] args) {
        try {
            // Đọc nội dung của tệp users.json
            String jsonContent = new String(Files.readAllBytes(Paths.get("src/test/resources/users.json")));

            String message = JsonPath.read(jsonContent, "$.message");
            String username = JsonPath.read(jsonContent, "$.response.username");

            System.out.println("MESSAGE: " + message);
            System.out.println("USERNAME: " + username);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Hơi khác chút là lúc bấy giờ chổ key "username" nó thuộc object con và nằm trong key "response" nên các bạn cần chỉ đường dẫn là "$.response.username"

 

Kết quả:

MESSAGE: Success
USERNAME: anhtester

Teacher

Teacher

Anh Tester

Software Quality Engineer

Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu

Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Danh sách bài học