Free and open source library to create Playwright/Jest browser tests and run them in CI
π Get Started | π API | π Chat | πΊοΈ Roadmap
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.
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
npx qawolf create [url] [name]
πͺ Convert your actions into Playwright code:
Action | Status | Example |
---|---|---|
Click | β | page.click('#login') |
Type | β | page.fill('.username', '[email protected]') |
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
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]
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.
QA Wolf is licensed under BSD-3-Clause.
department | related to | name | license period | material / not material | license type | link | remote version | installed version | defined version | author |
---|---|---|---|---|---|---|---|---|---|---|
WMS-test | Web-test | @qawolf/jest-reporter | perpetual | material | BSD-3.0 | https://registry.npmjs.org/@qawolf/jest-reporter/-/jest-reporter-0.1.0.tgz | 0.1.0 | 0.1.0 | ^0.1.0 | QA Wolf |
WMS-test | Web-test | an-array-of-english-words | perpetual | material | MIT | git+https://github.com/words/an-array-of-english-words.git | 2.0.0 | 2.0.0 | ^2.0.0 | Zeke Sikelianos [email protected] http://zeke.sikelianos.com |
WMS-test | Web-test | await-outside | perpetual | material | MIT | git+https://github.com/nfcampos/await-outside.git | 3.0.0 | 3.0.0 | ^3.0.0 | Nuno Campos [email protected] https://github.com/nfcampos |
WMS-test | Web-test | callsites | perpetual | material | MIT | git+https://github.com/sindresorhus/callsites.git | 3.1.0 | 3.1.0 | ^3.1.0 | Sindre Sorhus [email protected] https://sindresorhus.com |
WMS-test | Web-test | chokidar | perpetual | material | MIT | git+https://github.com/paulmillr/chokidar.git | 3.5.3 | 3.4.2 | ^3.4.2 | Paul Miller https://paulmillr.com |
WMS-test | Web-test | commander | perpetual | material | MIT | git+https://github.com/tj/commander.js.git | 6.2.1 | 6.1.0 | ^6.1.0 | TJ Holowaychuk [email protected] |
WMS-test | Web-test | create-qawolf | perpetual | material | BSD-3-Clause | https://registry.npmjs.org/create-qawolf/-/create-qawolf-1.7.0.tgz | 1.7.0 | 1.3.6 | ^1.3.6 | QA Wolf |
WMS-test | Web-test | debug | perpetual | material | MIT | git://github.com/debug-js/debug.git | 4.3.3 | 4.1.1 | * | TJ Holowaychuk [email protected] |
WMS-test | Web-test | glob | perpetual | material | ISC | git://github.com/isaacs/node-glob.git | 7.2.0 | 7.1.6 | ^7.1.6 | Isaac Z. Schlueter [email protected] http://blog.izs.me/ |
WMS-test | Web-test | html-tags | perpetual | material | MIT | git+https://github.com/sindresorhus/html-tags.git | 3.1.0 | 3.1.0 | ^3.1.0 | Sindre Sorhus [email protected] sindresorhus.com |
WMS-test | Web-test | inquirer | perpetual | material | MIT | git+https://github.com/SBoudrias/Inquirer.js.git | 7.3.3 | 7.3.3 | ^7.3.3 | Simon Boudrias [email protected] |
WMS-test | Web-test | kleur | perpetual | material | MIT | git+https://github.com/lukeed/kleur.git | 4.1.4 | 4.1.1 | ^4.1.1 | Luke Edwards [email protected] https://lukeed.com |
WMS-test | Web-test | open | perpetual | material | MIT | git+https://github.com/sindresorhus/open.git | 7.4.2 | 7.2.1 | ^7.2.1 | Sindre Sorhus [email protected] https://sindresorhus.com |
WMS-test | Web-test | playwright | perpetual | material | Apache-2.0 | git+https://github.com/Microsoft/playwright.git | 1.20.0-alpha-mar-1-2022 | 1.20.0-alpha-feb-25-2022 | ^1.20.0-alpha-feb-25-2022 | Microsoft Corporation |
WMS-test | Web-test | playwright-video | perpetual | material | BSD-3-Clause-Clear | git+https://github.com/qawolf/playwright-video.git | 2.4.0 | 2.4.0 | ^2.4.0 | QA Wolf |
WMS-test | Web-test | split | perpetual | material | MIT | git://github.com/dominictarr/split.git | 1.0.1 | 1.0.1 | ^1.0.1 | Dominic Tarr [email protected] http://bit.ly/dominictarr |
WMS-test | Web-test | tempy | perpetual | material | MIT | git+https://github.com/sindresorhus/tempy.git | 0.7.1 | 0.7.0 | ^0.7.0 | Sindre Sorhus [email protected] https://sindresorhus.com |
WMS-test | Web-test | update-notifier | perpetual | material | BSD-2-Clause | git+https://github.com/yeoman/update-notifier.git | 4.1.3 | 4.1.1 | ^4.1.1 | Sindre Sorhus [email protected] https://sindresorhus.com |
WMS-test | Web-test | @ffmpeg-installer/ffmpeg | perpetual | material | LGPL-2.1 | git+https://github.com/kribblo/node-ffmpeg-installer.git | 1.1.0 | 1.0.20 | ^1.0.20 | Kristoffer LundΓ©n [email protected] |
WMS-test | Web-test | @qawolf/sandbox | perpetual | material | https://registry.npmjs.org/@qawolf/sandbox/-/sandbox-0.1.26.tgz | 0.1.26 | 0.1.26 | 0.1.26 | ||
WMS-test | Web-test | @types/debug | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 4.1.7 | 4.1.5 | ^4.1.5 | |
WMS-test | Web-test | @types/fs-extra | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 9.0.13 | 9.0.1 | ^9.0.1 | |
WMS-test | Web-test | @types/glob | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 7.2.0 | 7.1.3 | ^7.1.3 | |
WMS-test | Web-test | @types/inquirer | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 7.3.3 | 7.3.1 | ^7.3.1 | |
WMS-test | Web-test | @types/jest | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 26.0.24 | 26.0.14 | ^26.0.14 | |
WMS-test | Web-test | @types/lodash | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 4.14.179 | 4.14.161 | ^4.14.161 | |
WMS-test | Web-test | @types/node | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 14.18.12 | 14.11.2 | ^14.11.2 | |
WMS-test | Web-test | @types/update-notifier | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 4.1.1 | 4.1.1 | ^4.1.1 | |
WMS-test | Web-test | @types/ws | perpetual | material | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped.git | 7.4.7 | 7.2.6 | ^7.2.6 | |
WMS-test | Web-test | @typescript-eslint/eslint-plugin | perpetual | material | MIT | git+https://github.com/typescript-eslint/typescript-eslint.git | 4.33.0 | 4.2.0 | ^4.2.0 | |
WMS-test | Web-test | @typescript-eslint/parser | perpetual | material | BSD-2-Clause | git+https://github.com/typescript-eslint/typescript-eslint.git | 4.33.0 | 4.2.0 | ^4.2.0 | |
WMS-test | Web-test | concurrently | perpetual | material | MIT | git+https://github.com/kimmobrunfeldt/concurrently.git | 5.3.0 | 5.3.0 | ^5.3.0 | Kimmo Brunfeldt |
WMS-test | Web-test | eslint | perpetual | material | MIT | git+https://github.com/eslint/eslint.git | 7.32.0 | 7.9.0 | ^7.9.0 | Nicholas C. Zakas [email protected] |
WMS-test | Web-test | eslint-config-prettier | perpetual | material | MIT | git+https://github.com/prettier/eslint-config-prettier.git | 6.15.0 | 6.11.0 | ^6.11.0 | Simon Lydell |
WMS-test | Web-test | eslint-plugin-jest | perpetual | material | MIT | git+https://github.com/jest-community/eslint-plugin-jest.git | 24.7.0 | 24.0.2 | ^24.0.2 | Jonathan Kim [email protected] jkimbo.com |
WMS-test | Web-test | fs-extra | perpetual | material | MIT | git+https://github.com/jprichardson/node-fs-extra.git | 9.1.0 | 9.0.1 | ^9.0.1 | JP Richardson [email protected] |
WMS-test | Web-test | jest | perpetual | material | MIT | git+https://github.com/facebook/jest.git | 26.6.3 | 26.4.2 | ^26.4.2 | |
WMS-test | Web-test | jest-mock-process | perpetual | material | MIT | git+https://github.com/EpicEric/jest-mock-process.git | 1.4.1 | 1.4.0 | ^1.4.0 | Eric Rodrigues Pires [email protected] |
WMS-test | Web-test | playwright-webkit | perpetual | material | Apache-2.0 | git+https://github.com/Microsoft/playwright.git | 1.7.0 | 1.7.0 | 1.7.0 | Microsoft Corporation |
WMS-test | Web-test | prettier | perpetual | material | MIT | git+https://github.com/prettier/prettier.git | 2.5.1 | 2.1.2 | ^2.1.2 | James Long |
WMS-test | Web-test | rimraf | perpetual | material | ISC | git://github.com/isaacs/rimraf.git | 3.0.2 | 3.0.2 | ^3.0.2 | Isaac Z. Schlueter [email protected] http://blog.izs.me/ |
WMS-test | Web-test | ts-jest | perpetual | material | MIT | git+https://github.com/kulshekhar/ts-jest.git | 26.5.6 | 26.4.0 | ^26.4.0 | Kulshekhar Kabra [email protected] https://github.com/kulshekhar |
WMS-test | Web-test | ts-loader | perpetual | material | MIT | git+https://github.com/TypeStrong/ts-loader.git | 8.3.0 | 8.0.4 | ^8.0.4 | John Reilly [email protected] https://blog.johnnyreilly.com |
WMS-test | Web-test | ts-node | perpetual | material | MIT | git://github.com/TypeStrong/ts-node.git | 9.1.1 | 9.0.0 | ^9.0.0 | Blake Embrey [email protected] http://blakeembrey.me |
WMS-test | Web-test | typescript | perpetual | material | Apache-2.0 | https://github.com/Microsoft/TypeScript.git | 4.6.2 | 4.0.3 | ^4.0.3 | Microsoft Corp. |
WMS-test | Web-test | webpack | perpetual | material | MIT | git+https://github.com/webpack/webpack.git | 4.46.0 | 4.44.2 | ^4.44.2 | Tobias Koppers @sokra |
WMS-test | Web-test | webpack-cli | perpetual | material | MIT | git+https://github.com/webpack/webpack-cli.git | 3.3.12 | 3.3.12 | ^3.3.12 | |
WMS-test | Web-test | webpack-virtual-modules | perpetual | material | MIT | git+https://github.com/sysgears/webpack-virtual-modules.git | 0.3.2 | 0.3.1 | ^0.3.1 | SysGears INC |