For the complete documentation index, see llms.txt. This page is also available as Markdown.

Variables & data

The four mechanisms that hold a value in Drizz — Store, SET, dataset variables and placeholders — compared in one table.

Drizz holds values in four mechanisms: SET dataset variables and placeholders.

Platforms

Android · iOS

Naming

snake_case, case-sensitive

Lifetime

SET last one run. Dataset values come from outside the run

Reserved

ctx{{ctx.*}} is set by Drizz and you can't assign to it

Watch out

A dataset variable that shows red in the editor doesn't exist in the bound dataset. That run will fail

Prerequisites

None.

The four mechanisms

Written as
Where the value comes from
Lives for
Reference it as

SET

SET city = "Bangalore"

Assigned in the script — a literal, another variable, an API field, or a structured screen read

The test run

{{city}}

Dataset variable

{{phone}}

A dataset, bound when the test plan runs

The run, supplied externally

{{phone}}

Selecting a mechanism

Rows apply top to bottom. The first matching row wins.

Condition
Mechanism
Written as

The value is on the screen now and several fields are needed as one object

SET with a screen read

SET <var> = screen(...)

The value changes per environment, per account or per run

Dataset variable

{{var}}

The value is fixed for this one test

SET

SET <var> = "<literal>"

The value comes from an API step

SET

SET <var> = API.<name>.response

A dataset variable is what makes one script run against staging and production, or across ten user accounts. Syntax for SET is on Store & SET; dataset authoring is on Datasets & test data.

All four mechanisms in one ShopEase test:

{{app_package}}, {{phone}} and {{otp}} come from a dataset bound to the plan.

Naming

Rule
Detail

Case

snake_case for every mechanism — subtotal_amount, customer_name, app_package

Case sensitivity

Dataset variable names must match the dataset key exactly. {{Phone}} and {{phone}} are two different variables

Reserved namespace

ctx is reserved. {{ctx.*}} is populated by Drizz on every run, including inside modules. SET ctx… is rejected

One style per value

A value that lives in a dataset is always {{phone}}, never <phone>. A placeholder is inert text — Drizz types the literal characters <phone> into the field and the step passes

Common mistakes

What you write
What happens

<phone> for a value that's in the dataset

Drizz types the literal text <phone>. The step passes and the login fails

{{Phone}} when the dataset key is phone

Renders red in the editor, resolves to nothing at run time

Reusing one variable name for two different captures

The second write overwrites the first, permanently

A placeholder for a value managed centrally

It has to be edited by hand before every run. Use a dataset variable

Next


Last updated: 6 August 2026

Last updated

Was this helpful?