Skip to content

Home

Open source visual test automation

Build browser tests visually. Ship them as code.

Design test flows in a visual workspace, then export clean Playwright and Gherkin your team can run locally, review in git, and trust in CI.

Get Started See how it works
npx create-appraisejs@latest

How it works

From visual design to reviewable code in four steps.

A visual IDE built for the modern testing loop. No black boxes, no lock-in.

Step 01

Build flows by defining steps

Create test cases visually by chaining steps together. Define user actions, assertions, and navigation in an intuitive flow builder.

Step 02

Generate locators from the builder

If locators are required, generate them directly from the visual builder on your live application—no hand-written selectors required.

Step 03

Save and generate artifacts

Save your flow to automatically generate standard, reviewable artifacts like Gherkin feature files, Playwright step definitions, and locator JSON.

Step 04

Run tests and view reports

Execute tests locally with zero cloud latency and view rich, interactive reports. Everything is stored as plain text, making it easy to version control.

Review in PRs

The output looks like code your team already writes.

Every visual flow becomes Gherkin features, Playwright steps, and locator JSON in your repo—ready for normal code review, not a 5 MB proprietary diff.

feat: add checkout visual smoke test #42

Open
jamil2018 wants to merge visual-checkout into main
tests/appraise/features/checkout-smoke.feature Gherkin Diff
@@ -1,3 +1,11 @@ Feature: Checkout smoke -  # TODO: Write manual test steps+  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"
tests/appraise/steps/checkout.steps.ts TypeScript Step Definition Diff
@@ -0,0 +1,15 @@+import { 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();+});
tests/appraise/locators/checkout.locators.json JSON Locator Diff
@@ -4,4 +4,7 @@   "cart": {     "summary": "[data-testid='cart-summary']"   },+  "product": {+    "addToCart": "[data-testid='add-to-cart']"+  },+  "payment": {+    "savedCard": "[data-testid='saved-card']",+    "submit": "[data-testid='submit-payment']"+  }
SR senior_dev_reviewer
5 minutes ago

Readable scenario structure—QA can follow this without opening the visual tool. The steps map cleanly to a smoke test I'd sign off on.

Approved.

Standard Playwright step definitions importing locators from JSON. I can debug these locally and extend them when we need custom logic.

Approved.

Selectors live in version-controlled JSON, not a hosted database. When a `data-testid` changes, it's one file to grep and patch.

Approved.

Built for engineering teams

Everything you need to adopt visual testing without giving up code control.

Local-first execution

Run your full suite on your machine in seconds. No cloud queues, no per-seat runners.

Repo-owned artifacts

Features, steps, and locators live in git. Review them in PRs like any other code.

Extensible step library

Add custom TypeScript steps in seconds and wire them into visual flows.

Try it in 15 minutes

Install locally and prove the workflow yourself.

npx create-appraisejs@latest
  1. 01 Scaffold the workspace Quick start guide
  2. 02 Build your first flow Creating tests guide
  3. 03 Run and inspect output Viewing reports

AppraiseJS is fully open source. Your tests, locators, and reports are plain files in your repository—inspect them locally, review them in PRs, and run them in any CI pipeline.

Quick start npx create-appraisejs@latest