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
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.
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
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
<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?