# What Is an Environment in TestOwl?

An **Environment** defines how TestOwl runs your tests. It contains the configuration required to execute a test, such as the browser, device, viewport, location, timezone, network settings, and other runtime options.

A single test can be executed across multiple environments to verify that your application works consistently across different browsers, devices, and configurations.

:::quote{author="TestOwl Team"}
Build once. Test across every browser, device, and environment.
:::

## Creating an environment

To create an environment:

1. Open **Environments** from the sidebar.
2. Click **New Environment**.
3. Configure the environment details.

The environment editor opens as a side panel with several collapsible sections. Start with the **General** section:

| Field | Description |
| --- | --- |
| Name | A unique name used to identify the environment when running tests. Example: `Production Chrome` |
| Description | Optional information to help your team understand the purpose of the environment. |
| Type | Defines the environment category: `Development`, `Staging`, `Production`, or `Others`. |

The remaining options are organised into these sections (you can expand as many as you need):

::::cardgrid
:::card{title="Browser, Device & Viewport" href="/docs/environments/browser-device-viewport"}
Configure browser type, browser version, device settings, orientation, timezone, and screen size.
:::

:::card{title="Network, Proxy & Storage" href="/docs/environments/network-proxy-storage"}
Configure authentication, network conditions, request headers, proxy settings, and browser storage.
:::

:::card{title="Location & Locale" href="/docs/environments/location-and-locale"}
Configure language, locale, and simulated geolocation settings.
:::

:::card{title="Permissions, Appearance & Advanced" href="/docs/environments/permissions-appearance-advanced"}
Configure browser permissions, color scheme, user agent, cache settings, and execution behavior.
:::
::::

The **Masking Rules** section lets you pick which [Masking Rules](/docs/data/masking-rules) apply to this environment. Rules themselves are created under **Settings → Security & Privacy**.

## Marking an environment as Production

An environment is considered a **Production environment** when its **Type** is set to `Production` in the General section.

Production environments have an additional safety check: [Draft-status test cases](/docs/building-tests/test-cases) cannot be executed against them. This prevents unfinished tests from accidentally running against live applications.

## The Environments page

Open **Environment** in the sidebar to see every environment with its **Name**, **Browser**, **Viewport**, and **Device**. From each row you can **edit**, **duplicate**, or **delete** it, and you can search and filter the list.

## Duplicating an environment

You can duplicate an existing environment to quickly create a similar configuration.

This is useful when creating variations such as:

- The same staging setup with a different browser.
- A desktop environment with a mobile device configuration.
- Multiple environments that share most settings but differ in a few options.

After duplication, update only the settings that need to change.

## Deleting and restoring environments

Deleting an environment moves it to the [Recycle Bin](/docs/workspace/recycle-bin), together with any Variables and Secrets that were scoped only to that environment. You can restore them all together within 15 days. A [schedule](/docs/running-and-results/schedules) that uses a deleted environment shows it as deleted, so edit the schedule to choose another one.

## Environments and your plan

The number of environments you can create depends on your plan — 2 on Starter, 5 on Pro, and 15 on Scale, with no limit on the Trial. Some browsers and devices are also plan-based: **Safari / WebKit** and **mobile and tablet emulation** need Pro or above, and appear with a lock icon in the editor on plans that don't include them. See [Plans & Usage](/docs/team-and-account/plans-and-usage).

## Selecting an environment when running tests

When you [trigger a run](/docs/running-and-results/triggering-a-run), you can select one or more environments for execution.

Each selected environment runs independently and generates its own result. This makes it easy to identify environment-specific issues, such as a test failing only on mobile Safari or a particular browser version.

## Next steps

::::cardgrid
:::card{title="Browser, Device & Viewport" href="/docs/environments/browser-device-viewport"}
Configure the platform where your tests run.
:::

:::card{title="Triggering a Run" href="/docs/running-and-results/triggering-a-run"}
Run tests against one or more environments.
:::
::::