Skip to content

Hooks ​

Hooks allow you to run setup and teardown templates automatically before and after your tests. They provide a way to execute common preparation or cleanup tasks without duplicating them in every test case.

Table of Contents ​

  1. What are Hooks?
  2. Types of Hooks
  3. Execution Order
  4. Configuring Hooks

What are Hooks? ​

Hooks are Templates that run automatically at specific points during test execution:

Key Benefits:

  • Consistency: Ensure the same setup/cleanup runs for all tests
  • Reduced Duplication: Define once, apply everywhere
  • Centralized Updates: Modify the template, all tests using the hook are updated
  • Flexible Overrides: Override hooks at the schedule or suite level when needed

Types of Hooks ​

There are two types of hooks:

Before Test Hook ​

Runs before the main test steps begin

Common uses:

  • Accept cookie consent banners
  • Close promotional popups
  • Set up application state
  • Navigate to a specific section
  • Wait for page elements to load

After Test Hook ​

Runs after all test steps complete, including any teardown steps. This hook runs in a "finally" block, meaning it executes even if the test fails.

Common uses:

  • Log out of the application
  • Clear shopping cart
  • Reset application state
  • Clean up test data
  • Take final screenshots

Execution Order ​

Understanding when hooks run is crucial for designing effective test flows:

1. Navigate to Starting URL
2. Login (if test account configured)
3. ▶ BEFORE TEST HOOK ◀
4. Main Test Steps
5. Teardown Steps (if any)
6. ▶ AFTER TEST HOOK ◀

Key points:

  • Before Test hook runs after login completes
  • After Test hook runs after teardown (in a nested "finally" block)
  • After Test hook runs even if the test fails
  • After Test hook runs even if teardown fails
  • If Before Test hook fails, the test stops but After Test hook still runs

Configuring Hooks ​

Configure hooks for individual test cases in the Environment Configuration:

  1. Navigate to the test Settings tab
  2. Click on an environment configuration to edit it
  3. In the Hooks section:
    • Select a template for Before Test
    • Select a template for After Test
  4. Click Update Config

Each environment configuration can have different hooks. For example, you might need different cookie consent handling for staging vs. production.

Next Steps ​

Released under the MIT License.