Test Creation Reference
Every way to create a test, and a complete reference for step types and conditions.
There are four ways to create a test in SmoothDeploy. New to the platform? Start with Your First Test, then return here for the full reference.
Creating via the Form
In the sidebar, click Tests.
Then click:
- Create Test in the empty-state prompt, or
- New Test in the top-right navbar (keyboard shortcut:
/).
Both open the form with the heading Create New Test.
Form Fields
| Field | Required | Notes |
|---|---|---|
| Test Name | yes | |
| Description | no | |
| Test Type | yes | Visual (step-based) or Script (Playwright spec file) |
| Status | yes | Draft or Active; defaults to Draft |
For a Script test, upload or paste a .spec.ts or .spec.js file. The test name is prefilled from the filename if left blank.
Click Create Test to save.
Recording
Recording is available in the desktop app only. A real Chromium browser window opens and every interaction is captured as a step.
From the desktop app, the recorder is accessible from:
- The new-test form — a Go to Recording link appears when no steps have been added yet.
- The test editor — a Record button in the steps panel opens the recorder for the current test.
- The tests table toolbar — a Record test icon button opens the recorder. When the project has no tests yet, the empty state shows a Record button instead.
After recording, click Create New Test on the Record page to open the new-test form with the recorded steps pre-filled. See Recording for the full flow.
Importing Code
In the tests table toolbar, click Import code to create a test from a Playwright spec file or pasted raw script. This creates a Script-type test.
Duplicating
Each row in the tests table has a Duplicate button. It copies the test (or directory) with a new name. Members, admins, and owners can duplicate tests.
Step Types
Steps are added in the test editor. Each step has an action type that determines its fields.
Built-in Actions
These actions map directly to Playwright API calls.
| Display name | Action |
|---|---|
| Assert Checked | assertChecked |
| Assert Snapshot | assertSnapshot |
| Assert Text | assertText |
| Assert Value | assertValue |
| Assert Visible | assertVisible |
| Check | check |
| Click | click |
| Close Page | closePage |
| Fill | fill |
| Hover | hover |
| Navigate | navigate |
| Press | press |
| Select | select |
| Set Input Files | setInputFiles |
| Uncheck | uncheck |
Custom Actions
Custom actions are SmoothDeploy extensions built on top of Playwright.
| Display name | Action |
|---|---|
| Assert Class | assertClass |
| Assert Count | assertCount |
| Assert CSS Property | assertCssProperty |
| Assert Disabled | assertDisabled |
| Assert Enabled | assertEnabled |
| Assert HTML Attribute Value | assertHtmlAttribute |
| Assert No Text | assertNoText |
| Assert Not Visible | assertNotVisible |
| Assert No Value | assertNoValue |
| Assert Title | assertTitle |
| Assert URL | assertURL |
| Clear | clear |
| Code | code |
| Debug | debug |
| Drag To | dragTo |
| Email Validation | emailValidation |
| Extract Cookie | extractCookie |
| Extract Text | extractText |
| Fetch | fetch |
| Focus | focus |
| Generate Date | generateDate |
| Generate String | generateString |
| Go Back | goBack |
| Go Forward | goForward |
| Inspect Downloaded File | inspectDownload |
| Inspect Element | inspectElement |
| Locator Handler | locatorHandler |
| Press Sequentially | pressSequentially |
| Reload | reload |
| Script | script |
| Scroll | scroll |
| Set Viewport Size | setViewportSize |
| Tap | tap |
| Wait | wait |
Shared Steps
Any step marked as shared can be inserted into any test. See Shared Steps.
Step Conditions
Every step has a Run with condition section that controls whether the step executes.
| Condition type | What it does |
|---|---|
| Always run | Runs unconditionally (default) |
| Skip step | Never runs |
| Custom condition | Runs only if a JavaScript expression returns truthy |
| Element visibility | Runs based on whether a Playwright locator is visible |
| Element text | Runs based on whether a Playwright locator contains a specified text |
Tokens in Step Fields
Step fields that accept dynamic values support three token prefixes:
| Token | Resolves to |
|---|---|
{{params.key}} | A value from the current test parameter set |
{{vars.key}} | A variable seeded in the Variables editor or written at run time by a previous step |
{{secrets.NAME}} | A secret injected into the run |
Open the reference picker on a step field to browse and insert tokens. See Parameters, Variables, and Secrets.
Frames
Steps can target content inside iframes. When a step is configured to run in a specific frame, the frame selector is stored alongside the step. The test editor shows frame information on each step that targets a nested frame.