PlayForge

Getting started

From a fresh account to a Playwright test running in your own CI, in about ten minutes.

Before you start

  • A PlayForge account. Sign up free. Signing up creates your organization, with you as its Admin; colleagues join it by invitation.
  • Chrome, Edge, Brave, Arc or another Chromium browser. Firefox and Safari aren't supported.
  • A site you're allowed to test. It can be public, on localhost, on your intranet or behind a sign-in.

The dashboard's Get started checklist follows these same steps and ticks each one off as you go.

1. Install the extension

The PlayForge Recorder extension records in a tab of your own browser and runs your tests there, on your network and with your sign-ins.

  1. Open PlayForge Recorder in the Chrome Web Store (the dashboard's Add to Chrome button goes there too) and click Add to Chrome.
  2. Reload the dashboard. The dot next to the extension turns green and shows its version.
Can't install from the Chrome Web Store?
  1. Download PlayForge and unzip the file.
  2. Open chrome://extensions and turn on Developer mode (top right).
  3. Click Load unpacked and choose the extension folder from the download.
  4. Reload the dashboard.

An extension loaded this way doesn't update itself: download it again when the dashboard asks for a newer version.

Install the extension in the same browser you use the dashboard in. If your company blocks extensions, use PlayForge Runner instead; everything else on this page works the same way.

Chrome updates the extension on its own. If the dashboard shows a banner asking for a newer version before that happens, open chrome://extensions, turn on Developer mode and click Update, then reload the dashboard.

2. Create a project

A project is the site or app you're testing. Go to Projects and click New project, then give it a name and the site's address, for example https://app.yourcompany.io. A description and repository are optional.

3. Record a flow

  1. Click Start recording. Choose the project and check the Application URL; it's where the test will start, so you can point it at a deeper page.
  2. Click Start recording in the dialog. A new tab opens on that address.
  3. Use the site as you normally would: click, type, choose options, open menus. Each action appears in the dashboard's Timeline as you go, and the site's API calls appear under Network.
  4. When the flow is done, click Stop Recording in the dashboard.

Tips for a good recording

  • One flow per recording. “Add a phone to the cart” makes a better test than a whole afternoon of clicking. Short tests are easier to read and to repair.
  • Do it the way a user would. Click the field before you type, and wait for each page to show before you move on. You don't need to rush or pause; the test waits for what it needs on its own.
  • Signing in. If you start already signed in, the test assumes you're signed in, which is fine when it runs in your browser. If it will run in CI, either record the sign-in as part of the flow or set up sign-in in your Playwright project (see Export).
  • Passwords are safe. Password fields and fields that look like secrets are masked before anything leaves your browser.

4. Add checks

Clicks alone only prove that nothing crashed. Checks prove the right thing happened. Add them while you record:

  1. Click Assertion Mode: OFF in the dashboard to turn it on.
  2. In the recording tab, click the thing that proves the step worked: a confirmation message, a cart count, a heading. That click isn't recorded as a click.
  3. PlayForge adds a check that the element shows that text, or that it's visible when it has no text. You'll see it under Assertions.
  4. Turn Assertion Mode off and carry on.

The AI also checks the outcome of each step on its own, such as the page a click leads to or the value a field holds. Your own checks are always kept.

Values that come from your API

When a value you clicked, typed or checked also appears in the site's API responses, it's listed in the Data tab. Choose how the test uses it:

ChoiceThe test…Use it for
Pinnedalways uses the exact value you recorded, and fails if it disappearsa specific product, account or record that should always exist
From APIreads the value from the API on every run, for example the first item the page showscatalogues, search results and lists that change

5. Generate the test

After you stop recording, click Generate Test. The AI turns the recording into a test plan, and PlayForge writes a standard Playwright .spec.ts from it, with getByRole, getByLabel and getByText locators and no fixed waits.

If generation fails, your recording is kept. Click Generate Test again.

6. Run and repair

  1. Open the test (the dashboard takes you there after generating, or find it under Generated) and click Run Test.
  2. If the test types a password or another secret, PlayForge asks you for it. It's used for that run only and never saved.
  3. A new tab opens and the test runs there with real mouse and keyboard input. Watch it, or carry on with something else.

If a step fails, the AI reads the error together with your recording, fixes the test and runs it again, up to three times. The code on the page updates with each repair. When a failure looks like a real problem in your app, such as data that's gone or a page that errors, it's reported instead of hidden.

The Execution logs show each step, how long it took, and the exact reason for any failure.

7. Export and run in CI

The test is yours. Go to Export and click Download (or Copy code). Nothing in the file depends on PlayForge.

Run it locally

In a project that already uses Playwright, put the file in your tests/ folder. If you don't have one yet, create one first:

npm init playwright@latest
# put the downloaded .spec.ts in tests/, then:
npx playwright test

Secrets

Recorded passwords become environment variables in the code, for example process.env.TEST_PASSWORD. Set them before running:

TEST_PASSWORD='your password' npx playwright test        # macOS, Linux
$env:TEST_PASSWORD='your password'; npx playwright test   # Windows PowerShell

GitHub Actions

Add the secret under your repository's Settings → Secrets and variables → Actions, then save this as .github/workflows/playwright.yml:

name: Playwright tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npx playwright install --with-deps chromium
      - run: npx playwright test
        env:
          TEST_PASSWORD: ${{ secrets.TEST_PASSWORD }}
CI machines aren't signed in to anything, and they can't reach localhost or your intranet unless your runners can. If you recorded while signed in, add sign-in to the test or use Playwright's authentication setup.

PlayForge Runner

For computers where Chrome extensions are blocked. The Runner is a small program that opens its own Chromium window with the PlayForge extension already inside, so recording and running work exactly the same way. It needs Node.js 18 or newer and git.

git clone https://github.com/Ramraju997/Playwright_Automation_App.git
cd Playwright_Automation_App/runner
npm install
  1. In the dashboard, open Settings → PlayForge Runner and click Get my start command.
  2. Run the command it shows in that folder. The Settings card turns green when the Runner is connected.
  3. Keep the terminal open while you use PlayForge. Next time, just run npm start.

Sign-ins you make in the Runner's window are remembered for next time. When the extension is installed in your browser, PlayForge uses the extension; otherwise it uses your Runner. To update, run git pull in that folder and restart it.

Team and roles

Go to Team, enter a colleague's e-mail, pick a role and click Send invite. They get a link to join your organization and see the same projects and tests.

AdminEverything, including the team, roles and AI cost per test
DeveloperCreate projects, record, generate, run and export tests
ViewerLook at projects, sessions and tests, and export them

What gets recorded

Everything a user does with the mouse and keyboard, written as the matching Playwright call:

You…The test…
click, double-click, right-click or middle-clickclick(), dblclick(), click({ button: 'right' })
Ctrl/Cmd-click or Shift-click, to select several itemsclick({ modifiers: ['ControlOrMeta'] }), which works on Windows, Linux and Mac
hover to open a menuhover(), then clicks the item
drag and dropdragTo()
type into a fieldfill() with what the field holds at the end, not every keystroke
choose from a list, tick a box, pick a styled radio buttonselectOption(), check(), or a click on its label
press Enter, Escape, Tab, arrows, Home/End, Page Up/Down, F1–F12 or a shortcut such as Ctrl+Kpress()
click a link that opens a new tabwaits for the new tab and carries on there
trigger an API callwaits for its response instead of a fixed delay

Only the tab you started recording in is recorded, and only until you stop.

Troubleshooting

The dashboard says to install the extension, but I already did

Reload the dashboard page. Check that the extension is turned on at chrome://extensions and that you're using the dashboard in the same browser and profile.

A banner says my extension is out of date

Open chrome://extensions, turn on Developer mode and click Update. If you loaded it unpacked, download it again and click the reload icon on PlayForge Recorder. Then reload the dashboard. Older versions can't run some newer tests.

“Recording ended: the browser could not open or keep the page”

Check the Application URL, and that the site opens in a normal tab. Closing the recording tab also ends the recording.

“Could not generate the test”

Your recording is kept. Click Generate Test again. If it keeps failing, write to us with the time it happened.

The test still fails after three repairs

Open the execution logs: the last line says which step failed and why. If your app changed since you recorded, record the flow again. If it looks like PlayForge got it wrong, send us the log; every fix we make is added to our regression tests so it stays fixed.

The exported test passes in PlayForge but fails in CI

Usually the CI machine isn't signed in, can't reach the site, or is missing a secret's environment variable. See Export and run in CI.

Still stuck? Write to eramrajurr@gmail.com with the page you were on and what you saw.