Skip to main content

BaseTest

BaseTest is the mandatory superclass for all TestFly tests. Extending it is the only setup required.


Usage​

import io.testfly.test.BaseTest;
import org.testng.annotations.Test;

public class LoginTest extends BaseTest {

@Test
public void loginTest() {
open(); // navigate to baseUrl
// test steps
}
}

What BaseTest does​

  • Registers SuiteExecutionListener (framework bootstrap, config loading, report generation)
  • Registers TestExecutionListener (driver creation, screenshot on failure, metrics recording)
  • Provides helper methods so tests never interact with WebDriver or config directly

Available methods​

open()​

Navigates the browser to the baseUrl configured in testfly.yml.

open();  // → browser.get(config.execution.baseUrl)

open(String path)​

Navigates to baseUrl + path.

open("/login");    // → browser.get("https://your-app.com/login")
open("/admin"); // → browser.get("https://your-app.com/admin")

getDriver()​

Returns the WebDriver instance bound to the current thread.

WebDriver driver = getDriver();
caution

Never call driver.quit() or new ChromeDriver() in your test code. The framework manages the driver lifecycle — creating it before each test and quitting it after.


Rules​

RuleReason
Do NOT create WebDriver manuallyFramework manages lifecycle
Do NOT call driver.quit()Causes session errors in subsequent steps
Do NOT use Thread.sleep()Use WaitEngine instead
Do NOT manage retry in @AfterMethodFramework handles retry automatically