Skip to main content

Overview

Effective test automation requires flexible data management. Supatest provides tools to create, store, and use data in your tests—from environment variables to dynamic expressions.

Data Management Tools

Creating and Storing Data

First, set up your data sources in Supatest. Environments and Context Hub are where you add and store data.

Environments

Environments store variables for different testing contexts:
Development Environment:
├── BASE_URL = https://dev.myapp.com
├── TEST_EMAIL = [email protected]
└── API_KEY = dev-api-key-123

Staging Environment:
├── BASE_URL = https://staging.myapp.com
├── TEST_EMAIL = [email protected]
└── API_KEY = staging-api-key-456
Use environments to:
  • Run same tests against different URLs
  • Store credentials securely
  • Configure environment-specific settings
Learn more about Environments →

Context Hub

Context Hub stores documents that help AI understand your application:
  • Application structure
  • Business terminology
  • Test data conventions
  • User flows
AI features reference context to generate better tests and suggestions. Learn more about Context Hub →

Using Data in Tests

Once your data is set up, use expressions to access it in test steps.

Expressions

Expressions let you use dynamic values in steps:
{{ env.BASE_URL }}          → Environment variable
{{ vars.userId }}           → Extracted value from earlier step
{{ random.email() }}        → Generated random data

Where to Use Expressions

Step FieldExample
Navigate URL{{ env.BASE_URL }}/login
Fill value{{ env.TEST_EMAIL }}
Verify textWelcome, {{ vars.userName }}
API headersBearer {{ env.API_TOKEN }}
Learn more about Expressions →

Data Flow in Tests

1. Environment Variables (predefined)
   ↓ Used in steps via {{ env.NAME }}

2. Step Execution
   ↓ Extract values with Extract Value step

3. Runtime Variables ({{ vars.NAME }})
   ↓ Use in subsequent steps

4. Random Data ({{ random.* }})
   ↓ Generated fresh each run

Example Flow

Step 1: Navigate to {{ env.BASE_URL }}/products
Step 2: Click first product
Step 3: Extract price → save as "productPrice"
Step 4: Add to cart
Step 5: Verify cart shows {{ vars.productPrice }}

Best Practices

Environment Variables

  • Do store URLs, credentials, API keys
  • Do create separate environments for dev/staging/prod
  • Don’t hardcode values that change between environments

Extracted Variables

  • Do extract values needed for later verification
  • Do use descriptive variable names
  • Don’t extract values you won’t use

Random Data

  • Do use for unique identifiers (emails, usernames)
  • Do use when tests run multiple times
  • Don’t use when specific values are required

Common Patterns

Login with Environment Credentials

Navigate: {{ env.BASE_URL }}/login
Fill email: {{ env.TEST_EMAIL }}
Fill password: {{ env.TEST_PASSWORD }}
Click: Submit

Generate Unique User

Fill email: {{ random.email() }}
Fill name: {{ random.firstName() }} {{ random.lastName() }}
Fill phone: {{ random.phoneNumber() }}

Extract and Verify

Extract: Order ID → orderNumber
Navigate: Order confirmation page
Verify text: {{ vars.orderNumber }}

API with Auth Token

API Request:
  URL: {{ env.API_URL }}/users
  Header: Authorization: Bearer {{ env.API_TOKEN }}

Troubleshooting

Variable Not Found

  • Check variable name spelling
  • Verify environment is selected
  • Ensure extract step ran before usage

Expression Not Evaluating

  • Check syntax: {{ env.NAME }} not ${NAME}
  • Verify curly braces are correct
  • Check for typos in expression

Wrong Environment Used

  • Verify correct environment selected before run
  • Check test plan environment setting
  • Confirm CI/CD passes correct environment

Next Steps