- Visual flow Checkout smoke test
- Locator capture Cart, email, payment selectors
- Reusable step Sign in and complete purchase
- Local run Chromium execution
Home
Open source visual test automation
Bridge QA and Engineering with visual tests you can actually version control.
Visually author browser flows and generate reviewable Playwright/Cucumber artifacts your team can run locally, inspect in git, and carry into CI.
npx create-appraisejs@latest Curious how it works?
See the workflowEvaluate in 15 minutes
Prove it to yourself in 15 minutes.
Scaffold the local project and open the generated workspace.
npx create-appraisejs@latest Author a small browser journey with locators and assertions.
Open creating-tests guide 03 Inspect generated Playwright/Cucumber outputReview the feature, step code, locator data, and report shape.
Open generated output sampleTeam handoff
Anyone authors flows, engineers review files, CI runs normal automation.
AppraiseJS gives the whole team a visual authoring layer while preserving the Playwright/Cucumber artifacts engineers expect to inspect, version, and run in existing pipelines.
Generated Output
Inspect what gets committed to your repo beforehand
Start with the files. A visual checkout smoke test becomes Gherkin, Cucumber steps using Playwright, locator data, and report evidence your team can review before adopting the tool.
- features/checkout.feature Readable Gherkin feature file with scenario
- locators/checkout.locators.json Repo-owned locators with mapping to page routes
- steps/checkout.steps.ts Playwright step definition with reusable parameters
- /reports/checkout/report.json Cucumber report with timing, debug evidence, and scenario details
- Visual flow Checkout smoke testfeatures/checkout.feature Readable Gherkin feature file with scenario
- Locator capture Cart, email, payment selectorslocators/checkout.locators.json Repo-owned locators with mapping to page routes
- Reusable step Sign in and complete purchasesteps/checkout.steps.ts Playwright step definition with reusable parameters
- Local run Chromium execution/reports/checkout/report.json Cucumber report with timing, debug evidence, and scenario details
checkout-smoke.feature
Gherkin# tests/appraise/features/checkout-smoke.featureFeature: Checkout smoke Scenario: Returning buyer completes a card checkout When I add "Everyday Hoodie" to the cart And I use the saved shipping address And I pay with "visa_success" Then the order confirmation should be visible And the confirmation total should equal "$64.00" checkout.steps.ts
TypeScriptimport { expect } from "@playwright/test";import locators from "../locators/checkout.locators.json";When("I add {string} to the cart", async ({ page }, itemName) => { await page.getByRole("link", { name: itemName }).click(); await page.locator(locators.product.addToCart.selector).click(); await expect(page.locator(locators.cart.summary.selector)).toBeVisible();});When("I pay with {string}", async ({ page }, cardName) => { await page.locator(locators.payment.savedCard.selector).selectOption(cardName); await page.locator(locators.payment.submit.selector).click();});Then("the confirmation total should equal {string}", async ({ page }, total) => { await expect(page.locator(locators.order.total.selector)).toHaveText(total);}); checkout.locators.json
JSON{ "addToCart": "[data-testid='add-to-cart']", "paymentSubmit": "[data-testid='submit-payment']", "orderTotal": "[data-testid='confirmation-total']"} report.json
JSON{ "status": "passed", "browser": "chromium", "durationMs": 18420, "startedAt": "2026-05-24T10:32:08.842Z", "artifacts": [ "trace.zip", "screenshots/order-confirmation.png", "run-evidence.json" ], "steps": [ { "name": "open storefront", "status": "passed" }, { "name": "complete checkout", "status": "passed" } ]} What to inspect before adopting
- Review the generated Gherkin, step code, and locator data.
- Confirm the Playwright output fits your existing CI shape.
- Check reports for enough failed-run debugging evidence.
Anyone can model flows
Browser journeys start as visual steps, locators, and assertions before they become automation.
Engineers review generated code
The output lands as repo-owned Playwright/Cucumber files instead of trapped recorder scripts.
CI runs normal automation
Run locally first, then carry the same generated artifacts into your existing CI loop.
Workflow proof
One workflow, concrete artifacts at every step.
Follow a single visual flow as it becomes locator context, generated test files, and local run evidence.
Author the login journey as a saved flow definition.
Attach selectors and assertions to the locator map.
Save the test flow and AppraiseJS conversion engine automatically coverts the flow to relevant artifacts(feature files, step definitions, locator entries)
# features/login.feature
Feature: Login smoke
Scenario: Valid user signs in
When I open the login page
And I submit valid credentials
Then the dashboard should be visible Run the flow and keep report/log evidence in the project.
Inspect run evidence, timing, and failure details.
What engineers keep
Visual authoring without giving up the engineering loop.
AppraiseJS should fit a serious test stack: generated artifacts stay portable, execution stays local-first, and the evaluation path starts with one real smoke test.
Tradeoffs
Use AppraiseJS when visual authoring and repo-owned automation both matter.
It is not a replacement for every testing tool. It is a bridge for teams that need non-code authoring without losing Playwright, Cucumber, git review, and local execution.
Open source
No hidden runner. No generated-code black box.
AppraiseJS is built around local projects, pull requests, and automation artifacts that remain useful outside the visual editor.