Block keywords
Platform, Driver, OS, Device, Package, Activity, Group, Scenario, Feature
Block keywords define structure and platform targeting. They appear at the start of a line, followed by a value. Header lines are not executed as steps.
Suite structure
| Keyword | Meaning | Example |
|---|---|---|
Group: | Top-level suite wrapper | Group: Checkout Tests |
Scenario: | Single test case (may include @tag) | Scenario: Guest checkout @smoke |
Feature: | Same as Scenario: | Feature: Guest checkout |
Platform headers
| Keyword | Meaning | Notes |
|---|---|---|
Platform: | Backend target: web, mobile, or api | Default web |
Driver: | Mobile driver: native or flutter | Default native when Platform: mobile; ignored when web / api |
OS: | Android or iOS | Required when Platform: mobile |
Device: | Appium device name, USB serial, or simulator name | Required when mobile |
Package: | Android appPackage or iOS bundleId | Required when mobile |
Activity: | Android launcher activity (e.g. .MainActivity) | Required when mobile + Android; ignored on iOS |
Web example
Platform: web
Group: Authentication
Scenario: User login
Given I navigate to "https://example.com/login"
When I click on "Login"Mobile example
Platform: mobile
Driver: native
OS: Android
Device: emulator-5554
Package: com.example.app
Activity: .MainActivity
Group: Smoke
Scenario: Open home
Then I should see "Welcome"API example
Platform: api
Group: Orders API
Scenario: Create order
When I api set header "Authorization" to "Bearer $API_TOKEN"
When I api post "/orders" with body '{"item":"book"}'
Then I api should status "201"One file = one platform for v1. Do not mix web, mobile, and api backends in a single matrix run.