NextTest Commands & Help Download NextTest ZIP (Free) ↓
NEXTTEST/ COMMANDS & HELP
✳ THE AUTOMATION PLAYBOOK

Make your next
test make sense.

Learn the NextTest JSON format, find the right action, and start with examples you can adapt to your app.

✳A GUIDE FOR HUMANS & AITell it
what to test.
↓Get a
NextTest suite.
COMMANDS.MD · NEXTTEST JSON
01 — QUICK START

Your first browser check.

A NextTest suite is JSON. It describes the app, the test cases, and the ordered actions the runner should perform. Start with a URL and a check you can verify.

login-smoke.json
{
  "name": "Login page smoke check",
  "platform": "WEB",
  "engine": "SELENIUM",
  "data": { "baseUrl": "https://your-app.example" },
  "testCases": [
    {
      "testCaseId": "LOGIN-001",
      "Case": "Login page opens",
      "isRun": true,
      "hardStop": true,
      "testSteps": [
        {
          "steps": "Open the login page",
          "action": "openBrowserChrome",
          "value": "${baseUrl}",
          "isRun": true
        },
        {
          "steps": "Check the page title",
          "action": "validateTitle",
          "value": "Your app title",
          "isRun": true
        },
        {
          "steps": "Close the browser",
          "action": "closeBrowser",
          "isRun": true
        }
      ]
    }
  ]
}
Replace the example URL and title with values from your app.VALID JSON · NEXTTEST SUITE
✳

AI authoring tip Tell the assistant the target URL, the workflow, and the expected outcome. Provide selectors from the actual page (or inspect the DOM) so the generated steps can target real elements.

02 — SUITE STRUCTURE

The shape of a suite.

Suites contain test cases; each case contains ordered test steps. Most fields are optional unless the action needs them.

LEVELFIELDWHAT IT DOES
SuitenameHuman-readable suite name.
SuiteplatformWEB by default; platform tests need matching drivers and devices.
SuiteengineSELENIUM or PLAYWRIGHT; action support can differ by engine.
SuitedataValues referenced with placeholders such as ${baseUrl}.
SuitetestCasesThe test cases to run, in order.
CasetestCaseId, CaseStable ID and display name.
CaseisRun, hardStopEnable the case; optionally stop on a failure.
CasetestStepsOrdered action steps.
Stepsteps, actionHuman-readable intent and NextTest action name.
SteplocatorType, locatorTypeValueHow to find a target element.
Stepvalue, actualValueAction input/expected value and optional secondary value.
StepisRun, hardStopEnable the step; optionally stop the case on failure.
Generated suites should omit run results such as isPassed, status, and durationMs.
03 — ACTION REFERENCE

Find the action you need.

Search common browser, API, and assertion actions. Names are case-insensitive; prefer these canonical names and confirm specialized actions in the full guide or a shipped sample.

REST API

api-GET, api-POST, api-PUT, api-DELETE, api-PATCH

Execute REST API calls natively within any test suite with automated AES-GCM credential decryption.

endpoint URL · payload
SECURITY

enterEncryptedPassword

Decrypts AES-256-GCM encrypted passwords in memory and enters into field with zero plaintext leakage (••••••••).

locator · {{PASSWORD}}
BROWSER

openBrowserChrome, openBrowserFirefox, openBrowserEdge

Open a browser session. Set value to a URL to navigate on launch.

value: URL (optional)
BROWSER

enterUrl

Navigate the current browser to a URL; opens a session if needed.

value: URL
BROWSER

refresh, browserBack, browserForward, closeBrowser

Reload, navigate browser history, or close the current session.

no locator required
INTERACTION

click, doubleClick, contextClick

Click a located element using locatorType and locatorTypeValue.

locator required
INTERACTION

sendKeys, clearAndSendKeys, type, clear

Type into a field, clear then type, or clear a text field.

locator · value*
INTERACTION

typeAppend

Types text into an input or textarea element without clearing existing content.

locator · value
INTERACTION

selectDropdownByText, selectDropdownByValue, selectDropdownByIndex

Select a dropdown option by visible text, option value, or index.

locator · value
INTERACTION

markAsChecked, markAsNotChecked

Set the state of a checkbox or radio button.

locator required
INTERACTION

mouseHover, scrollIntoView

Move the pointer over an element or scroll it into view.

locator required
INTERACTION

switchToIFrame, switchToDefaultFrame

Switch execution focus into a target iframe element or return back to default document context.

locator (for iframe)
INTERACTION

acceptAlert

Accepts and confirms a native browser JavaScript alert, confirm, or prompt modal.

no locator required
BROWSER

windowSize

Set the browser window size.

value: 1280,800
EVIDENCE

takingScreenshot

Capture a screenshot. An optional value can provide a filename.

value: filename (optional)
ASSERTION

validateTitle

Check the current page title against the expected value.

value: expected title
ASSERTION

validateUrl

Check the current URL against the expected value.

value: expected URL
ASSERTION

validateText

Assert that a located element’s text matches the expected value.

locator · value
VISUAL

validateVisualBaseline

Perceptual visual diff assertion against saved golden baseline image.

locator (opt) · baseline
ASSERTION

validateContainsText, validateStartsWithText, validateEndsWithText

Assert a text value contains, begins with, or ends with the expected text.

locator · value
ASSERTION

isDisplayed, isEnabled, isDisabled, isSelected

Assert a located element’s visibility, enabled, or selected state.

locator required
ASSERTION

elementExistsAndThrow

Fail the step if the located element is missing.

locator required
TEST DATA

getText

Read text from a located element and store it under a data key.

locator · actualValue: key
TEST DATA

setModuleTextValue

Set a suite-level text value.

actualValue: key · value: text
TEST DATA

setModuleNumber, incrementModuleNumber

Set or increment a numeric suite-level value.

actualValue: key
TEST DATA

sleep

Pause for a fixed duration in milliseconds. Prefer explicit waits when possible.

value: milliseconds
These are common actions from the bundled guide. Action availability can vary by engine and platform. Check the implementation and matching sample for specialized features.
04 — LOCATORS

Point to the right element.

Use selectors from the actual DOM or app. Prefer stable IDs, accessible names, or test IDs when available.

idlogin-submit
nameemail
className / classprimary-button
css / cssSelectorform button[type='submit']
xpath//button[@type='submit']
linkTextForgot password?
partialLinkTextForgot password
tagName / tagbutton
accessibilityIdAppium accessibility label
Mobile-only locator strategies such as androidUIAutomator, iOSClassChain, and iOSNsPredicateString require the matching device and driver setup.
05 — VARIABLES & DATA

Reuse values safely.

Keep environment-specific values in suite data and refer to them in action values. Don’t hardcode secrets in generated suites.

${key}Substitute a suite, case, or step data value.
{{key}}Alternative placeholder syntax used in suites and recorded credentials.
!Data->keyRead a value from a data, locator, case, or step dictionary.
!D->row->ColumnRead a column from a data-driven row; follow the shipped table-loop examples.
!File->pathLoad file contents for supported step fields; resolve from the process working directory.
!Gen->...Generate synthetic test data using a matching shipped example.
!

Keep credentials out of the suite. Use a placeholder such as {{PASSWORD}} and provide the value securely at run time.

06 — API EXAMPLE

Make an API request.

For API actions, value is the endpoint and actualValue holds the request configuration. This shape is taken from the bundled token-chaining example.

request-step.json
{
  "steps": "Request protected students",
  "action": "api-GET",
  "value": "/api/students",
  "actualValue": "{\"BaseUrl\":\"https://your-app.example\",\"Url\":\"/api/students\",\"Headers\":{\"Authorization\":\"Bearer {{authToken}}\",\"Content-Type\":\"application/json\"}}",
  "isRun": true
}
Provide a valid token through suite data before execution.API STEP
07 — RUN A SUITE

Run it from the CLI with Auto-Healing.

From the published distribution folder, run tests headlessly with intelligent locator recovery enabled. Reports are generated in HTML and JUnit formats.

PowerShell
.\NextTest.bat --run .\sample-application\scenarios\01-browser-lifecycle-and-navigation.json --headless --self-healing --apply-healing --output-dir .\reports --report-formats junit,html
✦ Auto-healing enabled: Dynamic locator recovery automatically rescues broken selectors during execution.AUTO-HEALING CLI
Auto-healing in CI/CD: Running with --self-healing --apply-healing prevents broken locators from failing your automated build pipelines.