I. Tại sao phải cài đặt Maven ?
- Maven giúp chúng ta có thể chạy có thể chạy được các test suite ở trong cửa sổ console, mà không cần mở eclipse lên giúp cho quá trình test tự động được hoàn chỉnh hơn, loại bỏ một số thao tác test manual.
II. Cài đặt Maven
Bước 1: Cài JDK và Java_Home
Để cài được Maven thì trước tiên chúng ta phải cài JDK và Java Home, tuy nhiên phần đã được hướng dẫn quá nhiều lần, mình không viết lại ở đây nữa, các bạn có thể tự google cách cài hoặc tìm lại trong các bài viết trước của mình.
Bước 2: Download Apache Maven
Các bạn vào trang https://maven.apache.org/download.cgi download bản maven mới nhất về. Tại thời điểm mình viết bài viết này maven đang ở bản apache-maven-3.8.4-bin.zip. Sau khi download về thì chúng ta giải nén file này ra.
Bước 3: Sau khi giải nén file này ra thì chúng ta sẽ tạo biến M2_HOME để cấu hình maven giống như JAVA_HOME vậy. Chúng ta vào This PC - Chọn properties - Advanced system settings - Enviroment Variables - Chon new Variale name điền: M2_HOME, Variable value thì trỏ đến thư mục Maven vừa giải nén.
Bước 4: Vào path thêm %M2_HOME%\bin, mục đích của việc tạo biến M2_HOME này là để chúng ta có thể dùng maven mà không cần phải cd vào thư mục chứa maven đã giải nén.
Hình 3, 4: Thêm biến M2_HOME trong path
Bước 5: Kiểm tra xem đã cấu hình maven thành công hay chưa bằng cách mở cửa sổ console gõ mvn -version nếu có kết quả như hình dưới đây là đã cấu hình thành công maven.
Hình 5: Thông tin maven version
III. Maven Project
Để tạo maven project chúng ta sẽ mở eclipse và làm như sau:
Bước 1: Đóng toàn bộ các folder Project cũ để tránh trường hợp Maven Project sẽ trỏ vào location của Project cũ đó.
Hình 6: Maven Project
Bước 2: chọn File - New - Other - Maven - Maven Project - Chọn Next - Click chọn Create a simple project để nó bỏ archetype
Có một điều lưu ý là mục Use default Workspace location phải trống và không được trỏ đến bất kỳ location của một project cũ nào.
Hình 7: Giao diện tạo Maven Project
Bước 3: Tiếp tục nhấn Next - Điền thông tin của Artifact - Điền Group Id và Artifact Id, Artifact Id chính là tên Maven Project của chúng ta - Chúng ta chỉ cần điền hai cái đó thôi - Sau đó chọn Finish - Sau đó máy sẽ tự động tạo ra một Maven Project.
Hình 8: Điền thông tin tên Maven Project
- src/main/java: Phần này sẽ chứa code dành cho app chính.
- src/main/resources
- src/test/java : Phần này sẽ chứa code dành cho những phần test, chúng ta sẽ tạo những package test trong mục này.
- src/test/resources
Hình 9: Thành phần thư mục Maven Project sau khi được tạo
Bước 4: Do Maven Project sử dụng thư viện thông qua file cấu hình pom chứ không import trực tiếp thư viện vào thông qua build path, vậy nên chúng ta phải edit cái file pom.xml trước để có thể tải toàn bộ thư viện cần dùng về.
Nội dung của file pom.xml này sẽ như sau:
- Đầu tiên là phần plugin:
maven-compiler-plugin giúp chúng ta biên dịch.
Hình 11: Nội dung phần plugin trong file pom.xml
- Thứ hai là config <dependencies> là các thư viện cần import vào project của chúng ta như kiểu selenium, testNG, poi, log4j, common io.... thì chúng ta phải cấu hình làm sao để cho maven biết được là chúng ta cần sử dụng cái thư viện này.
Hình 12: Nội dung phần dependencies trong file pom.xml
- Vậy làm thế nào để có thể có được thông tin của các dependencies này. Chúng ta sẽ mở trang https://mvnrepository.com/ và tìm kiếm thông tin các dependencies ở đây.
- Chúng ta sẽ search thư viện cần dùng vào dán các dependencies vào trong file pom.xml.
Hình 13: Giao diện website để lấy cấu hình của các thư viện cần sử dụng trong Maven Project
- Sau khi edit các dependencies lên bản mới nhất thì chúng ta sẽ tiếp tục edit maven-surefire-plugin và maven-surefire-plugin, sau đó chỉnh cả thẻ <release> trùng với version của JDK, hiện tại thì mình đang dùng JDK 17 thì mình sẽ chỉnh <release> thành 17, sau đó nhất CTRL + SHIFT + F để căn chỉnh là định dạng file.
Và đây là nội dung file pom.xml cuối cùng sau khi chúng ta chỉnh sửa.
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>MavenTestProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.9.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>5.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>
</project>
- Sau đó chúng ta sẽ nhấn save thì Maven Project sẽ tự động download toàn bộ các thư viện này về.
- Mục đích của sử dụng file pom.xml này khi mà chúng ta di chuyển server, môi trường test hay máy khác thì chúng ta phải xóa toàn bộ build path cũ đi và import lại toàn bộ đường dẫn thư viện mới vào nếu không thì project sẽ không tìm thấy đường dẫn đến build path. Tuy nhiên khi sử dụng file pom.xml này chúng ta không cần phải config lại build path nữa mà Maven Project sẽ tự động download toàn các thư viện cần dùng về server, nó có thể chạy được ở mọi máy, mọi môi trường.
- Nếu sau khi download môi trường mà project vẫn báo đỏ thì chúng ta chuột phải vào project chọn maven - Update Project - Nhấn OK, lúc này thì project sẽ hết báo đỏ. Thực ra thì nó báo đỏ nhưng Project vẫn chạy được bình thường thôi.Tuy nhiên thường thì mình sẽ update để project hết báo đỏ.
Bước 5: Sau khi cấu hình xong các thư viện thì chúng ta bắt đầu code các testcase trong mục src/test/java như bình thường sau đó sẽ chạy project bằng test suit hay test case tùy ý.
- Để là clean project và download toàn bộ lại thư viện, sau đó chạy lại project đó thì chúng ta sẽ mở cửa sổ console di chuyển vào thư mục chứa project Maven và chạy câu lệnh mvn clean install. Thông thường với lần chạy đầu tiên thì chúng ta nên chạy lệnh này, còn từ lần thứ hai trở đi, máy đã download đủ thư viện thì chúng ta có thể chạy bằng câu lệnh mvn install hoặc mvn test(câu lệnh này thì nó sẽ chỉ chạy trong phần test của chúng ta thôi) Sau khi chạy xong thì trên màn hình console sẽ thông báo kết quả, case nào test, case nào fail....
- Để tối ưu thêm về quá trình kiểm thử tự động thì chúng ta nên tạo file run.bat với nội dung file chứa câu lệnh mvn test trong thư mục của Maven Project, khi mà chạy project thì chúng ta chỉ cần chạy mỗi file run.bat mà không cần phải mở eclipse lên để chạy nữa.
0 Bình luận:
Đăng nhận xét