QA Wolf
Create browser tests 10x faster
Free and open source library to create Playwright/Jest browser tests and run them in CI
๐บ What is QA Wolf?
QA Wolf is a Node.js library for creating browser tests. Run one command (npm init qawolf@latest
or yarn create qawolf
) to configure your project and set up CI.
- Skip writing boilerplate: Your browser actions are converted to Playwright/Jest code.
- Create stable tests: Your tests automatically wait for elements. Element selectors use test attributes when possible, and CSS/text otherwise.
- Edit your tests: Edit your code as it is created and add steps to existing tests. Re-run your tests automatically with watch mode.
- Run tests in CI: A workflow file for your CI provider is automatically created for you.
- Debug with ease: Each test run includes a video and browser logs.
๐ฅ๏ธ Install
Set up your project for browser tests:
cd /my/awesome/project
npm init qawolf@latest
# or yarn create qawolf
Configure your test directory and CI provider:
? rootDir: Directory to create tests in (.qawolf)
? Set up CI with GitHub Actions? (y/N)
This will install qawolf
, jest
and playwright
as dev dependencies and create a CI workflow file to:
๐ Run tests in parallel๐น Record a video of each test๐ Capture browser logs
๐จ Create a test
npx qawolf create [url] [name]
Action | Status | Example |
---|---|---|
Click | page.click('#login') |
|
Type | page.fill('.username', 'spirit@qawolf.com') |
|
Scroll | qawolf.scroll(page, 'html', { x: 0, y: 200 }) |
|
Select | page.selectOption('.ice_cream', 'chocolate') |
|
Paste | page.fill('password', 'pasted') |
|
Reload | page.reload() |
|
Replace text | page.fill('.username', 'username') |
|
Go back | page.goBack() |
|
Use iframes | (await page.waitForSelector("#storybook-preview-iframe")).contentFrame() |
|
Use multiple tabs | context.newPage() |
|
Use a popup | qawolf.waitForPage(context, 1) |
|
Use a test attribute | page.click("[data-qa='submit']") |
|
Use a test attribute on an ancestor | page.click("[data-qa='radio'] [value='cat']") |
|
Drag and drop | Coming soon | |
File upload | Coming soon |
As your test is created:
โ๏ธ Edit the code as you like๐ฅ๏ธ Use the REPL to try out commands
โ
Run your tests
On Chromium:
npx qawolf test [name]
On Firefox:
npx qawolf test --firefox [name]
On Webkit:
npx qawolf test --webkit [name]
On all browsers:
npx qawolf test --all-browsers [name]
๐ Get help
We want QA Wolf to work for you, so please reach out to get help!
If you have a feature request or feedback, please open an issue or chat with us.
๐ License
QA Wolf is licensed under BSD-3-Clause.