Project Configuration
This section describes how to configure a Maven project to use Probato. It defines both the artifacts required for the build and the framework execution behavior.
The goal of this step is to prepare the project to run automated tests in a predictable, declarative, and extensible way.
The role of configuration in Probato
In Probato, configuration is explicitly separated from test code.
While the code describes what will be tested, configuration defines:
- How tests will be executed
- Which browsers will be used
- How evidences will be captured
- Which integrations will be enabled
This separation avoids conditional logic in code and allows changing project behavior without recompilation.
Build Configuration (Maven)
Probato is distributed in a modular way. Each framework capability is enabled through Maven dependencies.
Core Probato dependencies
Open the pom.xml file located at the project root and add the required dependencies.
<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.example.automation</groupId>
<artifactId>my-project-automation</artifactId>
<version>1.0.0</version>
<properties>
<probato.version>0.1.0</probato.version>
<selenium.version>4.33.0</selenium.version>
<playwright.version>1.57.0</playwright.version>
<postgresql.version>42.7.3</postgresql.version>
</properties>
<dependencies>
<!-- Probato Core -->
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-core</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<!-- Browsers -->
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-browser-chrome</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-browser-firefox</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-browser-edge</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<!-- Datasets -->
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-datasets-csv</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<!-- Database -->
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-database-sql</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<!-- Record -->
<dependency>
<groupId>org.probato</groupId>
<artifactId>probato-record</artifactId>
<version>${probato.version}</version>
<scope>test</scope>
</dependency>
<!-- UI executors -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>${playwright.version}</version>
</dependency>
<!-- Database driver -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Probato configuration file
Framework execution behavior is defined in:
This file centralizes all test execution settings.
Configuration example
execution:
engine: SELENIUM
target:
url: http://localhost:8099
version: 0.0.0
delay:
waitingTimeout: 5000
actionInterval: 500
video:
enabled: true
frameRate: 1000
quality: MEDIUM
manager:
submit: true
url: http://localhost:8080
token: [TOKEN]
browsers:
- type: CHROME
headless: false
dimension:
mode: FULLSCREEN
datasources:
probato:
url: jdbc:postgresql://localhost:5444/probato
driver: org.postgresql.Driver
username: root
password: root
Available configuration properties
Execution
| Property | Description |
|---|---|
| execution.engine | Execution engine (SELENIUM or PLAYWRIGHT) |
| execution.target.url | Target application URL |
| execution.target.version | Target application version |
| execution.delay.waitingTimeout | Maximum wait time |
| execution.delay.actionInterval | Interval between actions |
| execution.video.enabled | Enables video recording |
| execution.video.frameRate | Frame rate |
| execution.video.quality | Video quality |
| execution.manager.submit | Sends data to Probato Manager |
| execution.manager.url | Manager URL |
| execution.manager.token | Authentication token |
Browsers
| Property | Description |
|---|---|
| browsers[].type | Browser type |
| browsers[].headless | Headless mode |
| browsers[].dimension.mode | FULLSCREEN, MAXIMIZED or CUSTOM |
| browsers[].dimension.width | Width (CUSTOM) |
| browsers[].dimension.height | Height (CUSTOM) |
Datasources
| Property | Description |
|---|---|
| datasources.*.url | Connection URL |
| datasources.*.driver | JDBC driver |
| datasources.*.username | Username |
| datasources.*.password | Password |
Final checklist
- ✅ Dependencies configured in
pom.xml - ✅
configuration.ymlfile created - ✅ Properties adjusted for the environment
➡️ Next step: Browser Configuration