Variables & templates
Mobile flows use the same {{ }} templating as web — in any step value (typed text, an assertion, etc.).
Generators
Drop a generator token into a value and Trq produces it once per run and reuses it across every step, so a value you type and a value you later assert always match:
{{uuid}}— a random UUID{{randomNumber}}/{{randomNumber(10)}}— a random number (optionally N digits){{randomString}}— a random alphanumeric string{{timestamp}}— the run's start time
Add a :label to get a distinct instance (e.g. {{uuid:first}} and {{uuid:second}} differ), or {{uuid(8)}} for a short id.
Captured values
Capture a value off the screen while recording (see recording) and reference it downstream as {{var.NAME}}. Nothing is hard-coded — the value is read live on each run and substituted wherever you use the token.
Captured and generated values are both resolved fresh at the start of every run, so replays never depend on stale data.
Arithmetic on captured values — calc()
Just like on web, {{calc(…)}} computes an arithmetic expression over captured variables at replay time — assert a total equals fee + tax, or an amount converted at a live rate, without hard-coding the number:
{{calc(var.fee + var.tax, 2)}}
Reference variables bare inside calc (var.fee, not {{var.fee}}), combine with + - * / % and parentheses, and add an optional trailing integer for decimal places. Captured strings are normalized before parsing (currency symbols, thousands separators, and unit suffixes are stripped), and any error — unknown variable, non-numeric value, division by zero — resolves to the literal {{calc(…)}} text so the failure is visible. See the web guide for the full details.