Skip to content

Folder Structure & Config

How test directories and config.yaml files are organized in ZeniTest.

All ZeniTest tests and settings are organized inside a single zenitests/ directory in your project root.


Here is the standard folder layout:

your-project/
├── zenitests/
│ ├── web/
│ │ ├── config.yaml # Web configuration (browser, URLs, concurrency)
│ │ ├── tc_login.yaml # Web test case
│ │ └── tc_checkout.yaml # Web test case
│ ├── ios/
│ │ ├── config.yaml # iOS configuration (device, bundlePath)
│ │ └── tc_ios_checkout.yaml # iOS mobile test case
│ └── android/
│ ├── config.yaml # Android configuration (device, bundlePath)
│ └── tc_android_checkout.yaml # Android mobile test case
├── secrets.yaml # Passwords and credentials (gitignored)
└── ...
  • web/: Contains browser tests and default web settings.
  • ios/: Contains iOS native app tests and default simulator/device settings.
  • android/: Contains Android native app tests and default emulator/device settings.
  • secrets.yaml: Stored at the project root (not inside zenitests/). Keeps passwords and tokens out of your test files.

Each platform folder can contain a config.yaml file. This lets you set default options so you don’t have to type command-line flags every time you run zenitest run.

# Browser to use: chromium (default), chrome, firefox, or safari
browser: chromium
# Local dev server URL — used when running with --local
localURL: http://localhost:3000
# Production or staging URL — used when running with --prod (default)
prodURL: https://www.saucedemo.com
# How many tests to run at the same time (default: 5)
parallel: 2

Each test is a .yaml file containing basic metadata and a sequence of steps:

id: tc_login # Unique ID for the test (snake_case)
title: User Login Flow # Plain English title
priority: high # P0/P1/P2 or high/medium/low (optional)
expectedResult: Dashboard is open # Expected outcome (recommended)
steps:
- navigate: /login
- act: Type 'john_doe' into 'Username'
- act: Click 'Sign In'
- validate: Verify 'Dashboard' is visible

Field Description Required?
id Unique identifier (e.g. tc_login) Yes
title Short summary describing the test Yes
priority Importance level: P0, P1, P2 or high, medium, low Optional
variables Reusable variables referenced as ${varName} Optional
expectedResult Plain English description of expected outcome Recommended
steps Ordered list of actions (navigate, act, validate) Yes