Giter Club home page Giter Club logo

qawolf's Introduction

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)

? 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

Documentation


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')
Replace text βœ… page.fill('.username', 'username')
Use a test attribute βœ… page.click("[data-qa='submit']")
Use a test attribute on an ancestor βœ… page.click("[data-qa='radio'] [value='cat']")
Use iframes βœ… (await page.waitForSelector("#storybook-preview-iframe")).contentFrame()
Use multiple tabs βœ… qawolf.waitForPage(page.context(), 1)
Drag and drop πŸ—ΊοΈ Coming soon
File upload πŸ—ΊοΈ Coming soon
Back/Forward 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 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.

qawolf's People

Contributors

jperl avatar flaurida avatar aldeed avatar jamesgeorge007 avatar dependabot-preview[bot] avatar isy avatar chiefjester avatar gandie avatar kanziw avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.