Syntax rules
Quotes, comments, environment variables, and wildcard * semantics
Quotes
All values must be wrapped in quotes. Single (') and double (") quotes are both valid.
When I fill "username" with 'chamodh'
Given I navigate to "https://example.com"Reserved words outside quotes are syntax (fill, with, Given). Data always goes in quotes.
Comments
Lines starting with # are ignored:
# Login happy path
Given I navigate to "https://example.com/login"Environment variables
Put $VAR_NAME inside quotes. Resolved at runtime from context variables, project .env, or CI env:
Given I navigate to "$BASE_URL/login"
When I fill "api-key" with "$API_KEY"Wildcard * — match vs payload
After slots / env / faker resolve, a * in a match/lookup string is a glob (* = any run of characters — not full regex). No * → exact match.
| Role | Examples | * meaning |
|---|---|---|
| Match / lookup | click on "Save*", fill target, should see "Welcome*", containers, row keys | Glob — labels must match exactly one visible target |
| Payload / literal | fill … with "a*b", navigate to, press, upload filename, option text, dialog fragments | Literal * |
When I click on "Save*"
Then I should see "Order #*"
When I fill "search" with "a*b"Does not change see containing or URL-contains (be on / wait for url contains) semantics.
Labels, not selectors
Quoted labels are plain language. Never put CSS, XPath, or Playwright locators in .stk files.
Related
- Slots and dynamic values
- Find hints
- Qualifiers — match vs payload overview