Skip to content
This repository was archived by the owner on Jun 2, 2023. It is now read-only.
gen-codesPublic archive
forked from qawolf/cli

About

🐺Create browser tests 10x faster

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

2,390 Commits

Folders and files

Repository files navigation

qauto (qawolf fork)

QA Wolf

Create browser tests 10x faster

Free and open source library to create Playwright/Jest browser tests and run them in CI

tweet npm version

🚀 Get Started | 📖 API | 👋 Chat | 🗺️ Roadmap


🐺 What is QA Wolf?

QA Wolf is a Node.js library for creating browser tests. Run one command (npx qawolf init) 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

Documentation


Set up your project for browser tests:

cd /my/awesome/project
npm init qawolf
# or yarn create qawolf

Configure your test directory and CI provider:

? rootDir: Directory to create tests in (.qawolf)

? Choose CI Provider (Use arrow keys)
  Azure DevOps
  Bitbucket Pipelines
  CircleCI
❯ GitHub Actions
  GitLab CI/CD
  Jenkins
  Skip CI setup

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

Documentation


npx qauto create url [name]

💪 Convert your actions into Playwright code:

Action Status Example
Click ✅ page.click(selectors['0_submit'])
Type ✅ page.type(selectors['0_username'], 'username')
Scroll ✅ qawolf.scroll(page, 'html', { x: 0, y: 200 })
Select ✅ page.selectOption(selectors['0_ice_cream'], 'chocolate')
Replace text ✅ page.fill(selectors['0_username'], 'username')
Go back ✅ page.goBack()
Go forward ✅ page.goForward()
Go to ✅ page.goTo(url)
Go to ✅ page.goTo(url)
Add jest step ✅ it(name, async()=>{})
Paste ✅ page.type(selectors['password'], 'pasted')
Use a test attribute ✅ page.click("[data-qa='submit']")
Use a test attribute on an ancestor ✅ page.click("[data-qa='radio'] [value='cat']")
Use multiple pages/tabs ✅ qawolf.waitForPage(page.context(), 1)
Iframes 🗺️ Coming soon
Drag and drop 🗺️ Coming soon
File upload 🗺️ Coming soon
Back button 🗺️ Coming soon

As your test is created:

  • ✏️ Edit the code as you like
  • 🖥️ Use the REPL to try out commands

✅ Run your tests

Documentation


On Chromium:

npx qauto test [name]

On Firefox:

npx qauto test --firefox [name]

On Webkit:

npx qauto test --webkit [name]

On all browsers:

npx qauto 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.

About

🐺Create browser tests 10x faster

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages