Project Information
Learn why the TestNg, Maven, and Page Object Model tools are used in the automation project.
We'll cover the following
The project uses the following technologies:
- Programming language: Java
- Dependency management and test execution: Maven
- Unit-testing framework: Test NG
- Automation library: Selenium WebDriver
- Automation pattern: Page Object Model
A few details on each technology
The project is created using Maven for multiple reasons. Maven maintains the project dependencies (Selenium WebDriver and Test NG) through the pom.xml
file. With Maven, the project has a standard structure with src
and target
folders.
Maven commands can be used for compiling the code (mvn compile
), cleaning previous project artifacts (mvn clean
), and executing automated tests (mvn test
).
This is what the Maven pom.xml
file looks like:
<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>selenium</groupId><artifactId>selenium</artifactId><version>0.0.1-SNAPSHOT</version><name>selenium</name><dependencies><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>6.9.10</version><scope>test</scope></dependency></dependencies><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties></project>
Test NG is chosen as the unit-testing framework instead of jUnit because of its test listeners, which will be used for taking screenshots and logging exceptions/stack traces to a log file.
The automated tests are implemented as TestNG unit tests. They are short, independent, easy to understand, and split into groups. Each automated test implements a test case.
The automation code uses a few layers, each layer using the next one:
- Test classes
- Page object classes
- Automation framework
- Selenium WebDriver
The automation framework has components for creating the driver object, taking screenshots, and creating trace and exception logs.
The project’s code is introduced in the following order:
- The test class
- The base test class
- The page object classes
- The automation framework