Skip to content

Mask passwords and other secrets

Login and signup tests put real credentials in your test data. By default those values appear in plain text everywhere Marriska records a run — the report, the live runner, step logs. Marking a variable sensitive hides its value (••••••) in everything we store or stream, while Playwright still types the real value into the page so the test works exactly as before.

  1. Open a test and go to the Variables tab.

  2. In the variables table, click the lock icon on a column header (e.g. password). The icon turns solid to show it’s now sensitive, and every cell in that column shows •••••• instead of the value.

  3. That’s it — the change saves automatically. The next run masks that variable’s value everywhere it would otherwise be recorded.

To edit a masked value, click the cell — it reveals the input while you type, then re-masks. To un-mark, click the lock icon again.

When a variable is sensitive, its resolved value is replaced with •••••• in:

  • Run reports — step descriptions, the saved step log, and the per-iteration values shown next to a run.
  • The live runner — the same masked text streams in real time.
  • Runner history — past runs render the already-masked report.
  • The generated step preview and YAML shown during a run.
  • Screenshots — any form field holding a secret value is boxed out at capture (using Playwright’s screenshot masking), so the value isn’t visible in stored screenshots or in visual comparison.

The masking is done by replacing the literal value, the same way CI systems mask registered secrets in their logs. Very short values (1–2 characters) aren’t masked in free-flowing text, because they’d collide with ordinary words — use a real secret value.

  • The real value is still typed into the page. Masking only changes what Marriska records, never what the browser does — your login still logs in.
  • Non-sensitive variables are untouched — only the columns you lock are masked.

The CLI runner and local agent honor sensitivity too: the test spec they fetch includes which variables are sensitive, so their relayed events, local report, and screenshots are masked the same way as a cloud run.