Environment Data Management
Create ContextQA environments, manage variables and database connections, and reuse safe test data across test runs and deployment targets.
Quick answer
Use Environment & Data Management to keep deployment-specific environments, reusable test data profiles, and workspace-wide global data separate. This lets one test run safely across development, staging, or production-like targets without duplicating steps or hard-coding URLs and input values.
What this page covers
An environment is where the test runs. It contains deployment-specific variables, database connections, and links to data profiles.
A test data profile is what the test uses. It defines reusable columns and rows whose values can differ by environment.
Global data contains workspace-wide values that do not change between environments.
This separation lets one test run against development, staging, or production-like targets without duplicating the test steps or hard-coding URLs and input data.
What to notice in the demo
Environments keep deployment-specific URLs and configuration outside test steps.
Data profiles supply reusable test inputs without duplicating the test flow.
Separating configuration from data makes the same regression scenario easier to repeat across approved targets.
Open Environment & Data from the left navigation. The Environment & Data Management page opens on the Environments tab and provides three tabs:
Environments
Per-environment variables, database connections, and the test data profiles linked to each environment
Test Data Profiles
Data-driven tables whose structure is shared across environments and whose values are independent per environment
Global Data
Environment-agnostic variables available to every test case in the workspace
ContextQA inserts variables from the step editor's data picker. An environment variable named baseURL, for example, is referenced as *|baseURL|*. Choose the variable from the picker when possible so the name and syntax are inserted correctly.
Prerequisites
You have a workspace created with at least one environment.
You are a workspace member with permission to edit data (Editor or Admin role).
Permissions: read-only and read-write
Most values in this workspace carry a permission setting shown as a toggle:
RW (read-write) — test cases and team members can both read and update the value.
RO (read-only) — the value is visible and usable in test steps, but protected from edits.
Set a value to RO to lock down shared data — such as a stable account ID or a reference table — so that a test run or another team member cannot change it accidentally. Switch back to RW when you need to edit it.
Variable naming rules
Every name you enter in this workspace — environment variables, global variables, and test data profile columns — must be a valid variable identifier:
Start with a letter or an underscore (
_).Use only letters, numbers, and underscores after the first character — no spaces or special characters.
Names are case-sensitive.
A name cannot match a reserved keyword such as
os,path,fs,moment,get, orpost(matched case-insensitively).
ContextQA validates the name as you type and blocks saving until it is valid; if a name is rejected, the field explains which rule it broke. See Variable naming rules for the complete rules, the reserved-keyword list, and every error message.
Environments tab
The Environments tab lists every environment in the workspace. Each environment is a named deployment target (for example, Staging, QA, or Production) that holds its own variables, database connections, and linked profiles.
Browsing environments
Use the Search environments... box to filter by name.
Use the view toggle to switch between grid (cards) and list (table) views.
The environment marked DEFAULT is used when no other environment is selected. You cannot delete the default environment.

An environment keeps deployment-specific values together. This documentation example uses a fictional example.test URL and contains no production credentials.
Creating an environment
Click New environment.
Enter a Name and an optional Description.
Save the environment. It appears in the list, and you can open it to add variables, databases, and profiles.
Environment actions
From an environment card or the environment detail header, you can:
Clone — create a copy of the environment, including its configuration.
Edit details — change the name or description.
Delete — remove the environment. This is disabled for the default environment.
Working inside an environment
Click an environment to open its detail view. The detail view has three sub-tabs:
Environment variables
Key-value pairs scoped to this environment. Test cases read and write them according to each variable's RO/RW permission. Reference a variable by selecting it in the step editor's data picker; for example, baseURL is inserted as *|baseURL|*.
The table shows four columns — NAME, TYPE, VALUE, and PERMISSION — plus row actions.
To add a variable:
Click Add variable.
Enter the Name and Value.
Select the Type:
TypeUse forString
Plain text values such as URLs and labels
Number
Numeric values
Boolean
true/falseflagsPassword
Sensitive values that should be masked in the UI
Vault
Sensitive values handled as vault-backed secrets
Set the permission to RW or RO.
Save the variable.
Knowledge Base entries and literal step descriptions are not secret fields. A safe instruction names the protected variable—for example, “use stageAdminPassword from the selected environment”—without copying its value. See Knowledge Base: Referencing credentials safely.
Databases
The Data base configurations sub-tab connects SQL databases to the environment. You can attach multiple databases and use them alongside variables — there is no forced choice between the two.
To add a connection:
Click Add DB config.
Enter a Connection name.
Select the Driver (for example, MySQL).
Enter the Host and Port.
Save the configuration.
Database connections defined here are available to Database Steps running in this environment.
Profiles
The Linked test data profiles sub-tab lists the profiles visible to test cases running in this environment. Only linked profiles appear in the step picker for this environment.
Click New profile to create a profile and link it to this environment in one step.
Click Link profile to attach an existing profile.
When you link an existing profile, the Link profile dialog lets you search profiles, select one or more, and choose a source environment under Copy from which environment. The selected source's row values become the starting point for this environment and can be edited afterward. A profile with no existing data is linked with no rows.
Test data profiles
The Test Data Profiles tab manages data-driven test tables. A profile defines a set of named columns once; each linked environment then stores its own independent set of row values. The column structure is shared across environments, but the values are independent — so the same test logic can run against staging data and production data without duplicating the profile.
Browsing profiles
Use the Search profiles… field to filter by name.
Use the environment filter to show only profiles linked to a specific environment.
Use the permission filter to show only read-only or read-write profiles.
Creating a test data profile
On the Test Data Profiles tab, click New test data profile.
Enter the profile Name and optional Description.
Save the profile.
You can also create a profile directly from an environment's Data profiles sub-tab using New profile, which links the new profile to that environment automatically.

The profile structure is shared across environments, while each environment keeps independent row values.
Tutorial: create reusable registration data for a staging test
This example creates a staging environment, adds a base URL, builds a registration data profile, and connects the two. All names and values are fictional; replace them with safe values for your own non-production system.
1. Create the staging environment
Select Environment & Data in the left navigation.
On Environments, select New environment.
Enter
Stage Environmentas the name.Add a description that tells teammates what the environment is for.
Save the environment, then open it from the environment list.
2. Add the base URL variable
Open the environment's Environment variables tab.
Select Add variable.
Enter
baseURLfor Name.Select String for Type.
Select RW while you are setting up the example. Use RO later if the value should be protected from changes.
Enter a non-production URL, such as
https://example.test, for Value.Save the variable.
In a test step, use the data picker to insert the variable. ContextQA displays it as:
3. Create the registration data profile
Return to Environment & Data Management.
Select Test Data Profiles.
Select New test data profile.
Enter
Registration Dataas the profile name.Add a description explaining that the profile contains fictional registration inputs.
Set the permission to RW while you build the profile.
Assign the profile to Stage Environment, then save it.
4. Define the shared columns
Open the new profile.
Select Manage columns.
Add these columns:
ColumnTypeExample purposefirstNameString
User's given name
lastNameString
User's family name
emailString
Unique registration email
passwordPassword
Masked test-only password
Apply the changes.
Column definitions are shared across every assigned environment. If you change a column type later, review the confirmation carefully: converting to Number or Boolean replaces existing values, while converting to String or Password preserves them.
5. Add a row for the staging environment
Select the Stage Environment tab inside the profile.
Select Add row.
Enter a unique row name such as
registration_1.Add fictional values, for example
Avery,Tester,avery.tester@example.test, and a test-only password.Save the row.
The same profile can now be assigned to another environment. Its columns remain the same, but you can enter different row values for that environment.
6. Use the environment and profile in a test
Open or create a test case.
Select Stage Environment as its execution environment.
Attach or select Registration Data when configuring the test's data.
Insert environment and profile values with the step editor's data picker.
Run the test and confirm that the execution used the selected environment and expected data row.
If the profile is missing from the picker, confirm that it is assigned to the selected environment.
Editing profile data
Open a profile to view its detail page. The detail page shows one sub-tab per linked environment, each with that environment's row values.
The banner reads "Structure is shared across environments, values are independent" when you view an environment tab.
Click an environment sub-tab to edit that environment's rows.
Click Assign to more environments (the + tab) to link the profile to additional environments.
Click Manage columns to add, rename, remove, or set the data type of columns. Column changes apply across all environments because the structure is shared.
Click Add row to append a row to the active environment's data.
Column data types
Each profile column has a data type that controls how you enter its values and how they display in the table. Set the type when you add or edit a column in the Manage columns dialog — every column has a type selector, and new columns default to String. The type is part of the shared column structure, so it applies across all environments.
String
Free-text input. The default for new columns.
Number
Numeric input that accepts digits and a decimal point. New cells start at 0.
Boolean
A True / False dropdown. New cells default to True.
Password
A masked input. Select the reveal icon to show or hide the value. New cells start empty.
Changing a column's data type
When you change an existing column's type in the Manage columns dialog, the Confirm column type changes dialog appears before the change applies. For each affected column, it shows the current type, the new type, and what happens to existing values:
Changing to Number resets every value in the column to
0.Changing to Boolean resets every value to
true.Changing to String or Password keeps existing values unchanged.
Profile detail actions
The profile detail header provides:
A permission toggle to set the profile read-only or read-write.
Clone to environments — copies the profile's data into other environments.
Edit — changes the profile name and description.
Delete — removes the profile. If the profile is linked to test cases or environments, the confirmation dialog lists them first.
Global data
The Global Data tab manages workspace-wide variables. These variables are environment-agnostic: they are accessible from every test case regardless of which environment is selected, and their names must be unique across the entire workspace.
Creating a global variable
On the Global Data tab, click New global variable.
Enter the variable Name and Value.
Select the Type — String, Number, Boolean, or Password.
Optionally add tags to group related variables.
Save the variable.
Filtering and exporting
Use the Search global variables… field to filter by name.
Use the tag chip bar to filter by one or more tags.
Click Export all and choose Export as JSON or Export as Excel to download every global variable, or select rows and click Export to download only those. See Importing and exporting data for the full workflow.
Global variable vs environment variable
Global variable
Is the same across every environment (a standard test product name, a default search term).
Environment variable
Differs by environment (the base URL, credentials, or API keys for staging versus production).
Importing and exporting data
Environment Data Management supports JSON and Excel (.xlsx) export across its environments, database configurations, profiles, and global data. Import support varies by surface, as described below. Export data to back it up, move it between workspaces, or review it offline.
Exporting data
Export is available from these places:
Environments tab
One or more environments, with their variables and database configurations
Click Export all, or select environments and click Export
An open environment
That environment's data
Click Export in the header, then choose what to include and a format
Environment variables sub-tab
The environment's variables only
Click Export all
Data base configurations sub-tab
The environment's database configurations
Click Export all, or select rows and click Export
Test Data Profiles tab
Selected profiles
Select profiles and click Export
A profile detail page
The profile's rows, for all environments or specific ones
Click Export, then choose a scope and a format
Global Data tab
Every global variable, or a selection
Click Export all, or select variables and click Export
When you export an environment, a What to include step lets you choose:
All — variables and database configurations together.
Variables — environment variables only.
Database configs — database configurations only.
Exporting All across several environments produces a .zip file. A single, scoped export produces one .json or .xlsx file.
Importing data
Import is available for global variables, database configurations, test data profiles, and new environments. Direct import from an open environment's Environment variables section is not currently available.
Environments tab
Creates a new environment from separate variable and database-configuration files
Data base configurations
Imports into the open environment and provides duplicate-handling choices
Test Data Profiles
Imports profile data with the applicable environment and conflict choices
Global Data
Uploads global variables and reports the import result; it does not show a separate duplicate-handling step
The general import sequence is:
Click Import on the relevant tab or sub-tab.
Upload a
.jsonor.xlsxfile. To start from a correctly structured file, download the sample template offered in the wizard for the format you want.When the wizard provides a duplicate-handling step, choose the applicable strategy.
Confirm the import. The result step reports how many rows succeeded, how many failed, and the reason for each failure.
Test data profile file shape
Download JSON Template or Excel Template from the import dialog before preparing a file. The downloaded template is the contract for the portal version you are using; do not reuse the similarly named test-case import template.
For profile data, the fields map as follows:
Profile name
testDataName in a whole-profile export, or the Name field in the import dialog
Supplied by the import dialog or workbook metadata
Required when creating a profile; must be unique unless importing into an existing profile.
Data-set name
data[].name
One row-name cell per record
Required and unique within the profile.
Description
data[].description
Description cell
Optional text.
Expected failure
data[].expectedToFail
Expected-failure column
Boolean: true or false.
Profile values
data[].data object
One column per profile field
Object keys/column headers become case-sensitive profile variables and must follow the variable naming rules.
Example JSON exported for a profile:
When the import dialog asks for the profile name separately, keep the row structure from its downloaded template and enter the profile name in the dialog. Do not add an unrecognized wrapper merely to match the example above. For Excel, keep the template's system columns unchanged and add profile fields only where the template indicates. A duplicate column, invalid variable name, unsupported value type, or malformed JSON is rejected before import; the import summary identifies failed rows.
Handling duplicates
When a supported import wizard presents conflict handling, the available options depend on the surface:
Override
Updates records that match by name and adds new ones.
Replace all
Clears the existing records first, then imports the file.
Ignore
Keeps existing records and skips duplicates.
Importing a new environment
On the Environments tab, click Import to create a new environment seeded from files. Enter a name for the environment, then upload separate files for Environment variables and Database configs. A sample template is available for each.
Tips and best practices
Set a default environment early. The default environment is used whenever no other environment is selected, so configure it before your first run.
Use secret variable types for credentials. Store credentials, API keys, and tokens as Password or Vault environment variables, or Password global variables, and keep them out of screenshots and examples.
Keep profile structure stable, vary the values. Because a profile's columns are shared across environments, design the column set once and let each environment supply its own rows. Avoid one-off columns that only apply to a single environment.
Link only the profiles a test needs. Only profiles linked to an environment appear in that environment's step picker, so linking selectively keeps the picker focused.
Tag global variables. As the global variable list grows, tags make it fast to find related variables with the tag filter.
Frequently asked questions and troubleshooting
A variable or column name doesn't save and shows a validation error The name must start with a letter or underscore, contain only letters, numbers, and underscores, and must not match a reserved keyword such as os, path, or get. See Variable naming rules for details.
A test data profile doesn't appear in the step picker The profile must be linked to the environment the test case runs against. Open the environment's Data profiles sub-tab and link the profile, or open the profile and assign it to the environment.
A profile shows a "master data (deprecated)" tab with read-only rows These are legacy rows from before per-environment data. Assign the profile to an environment to create editable, per-environment rows.
Can't delete an environment You can't delete the default environment. Promote another environment to default first, then delete the original.
A global variable can't be saved because the name already exists Global variable names must be unique across the entire workspace. Choose a different name, or check whether the value belongs in an environment variable instead.
Related pages
Test Data Management — variable reference syntax and data-driven testing patterns
Importing and Exporting Data — move data in and out with JSON or Excel
Last updated
Was this helpful?
