https://github.com/dsheiko/puppetry
Web testing solution for non-developers on top of Puppeteer and Jest
https://github.com/dsheiko/puppetry
browser-automation ci-cd continuous-integration e2e-testing frontend-testing headless-testing no-code puppeteer qa-testing test-automation ui-testing visual-regression web-testing
Last synced: 10 days ago
JSON representation
Web testing solution for non-developers on top of Puppeteer and Jest
- Host: GitHub
- URL: https://github.com/dsheiko/puppetry
- Owner: dsheiko
- License: mit
- Created: 2018-11-01T15:11:47.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-31T08:25:27.000Z (23 days ago)
- Last Synced: 2025-04-03T20:11:32.735Z (19 days ago)
- Topics: browser-automation, ci-cd, continuous-integration, e2e-testing, frontend-testing, headless-testing, no-code, puppeteer, qa-testing, test-automation, ui-testing, visual-regression, web-testing
- Language: JavaScript
- Homepage: https://puppetry.app
- Size: 11.5 MB
- Stars: 870
- Watchers: 17
- Forks: 122
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
Puppetry
[](https://travis-ci.org/dsheiko/puppetry)
[](https://gitter.im/dsheiko/puppetry)
[](https://puppetry-app.slack.com)
[](https://github.com/dsheiko/puppetry/releases)
[](https://github.com/dsheiko/puppetry/releases/latest)CODELESS END-TO-END AUTOMATED TESTING
Puppetry is a powerful, no-code/low-code test automation tool for end-to-end (E2E) testing of web applications. Built on top of [Puppeteer](https://pptr.dev/), it provides a user-friendly UI for creating, managing, and running automated browser tests—without writing complex scripts. Designed for developers, QA engineers, and testers, Puppetry simplifies web automation while offering flexibility for advanced users.

- [:movie_camera: Recording Automated Tests with Puppetry](https://youtu.be/dfuNhTCRMRg "Recording Automated Tests with Puppetry")
- [:movie_camera: How to test Responsive Web Design with Puppetry](https://youtu.be/m1az-KLboG8 "How to test Responsive Web Design with Puppetry")# Welcome Puppetry
Puppetry offers you an easy-to-use UI where you choose browser methods and assertions from a predefined list, with predefined settings, guided by extensive tips.
Namely you can do the following:
- record user flow
- declare element targets as pairs `variable = locator`, where locator can be either CSS selector or Xpath.
- manage your test structure in BDD style (project, suite, test context, test case)
- manage page/element methods and assertions
- run the tests in Chromium/Chromium/Chrome/Firefox/Edge
- export the project as Jest/Puppeteer bundle ready to run in CLI (e.g. by a continuous integration server)# Key Features
- Can be used by QA engineers with no programming background
- Features Headless Chrome ([Puppeteer](https://pptr.dev)) and [Jest](https://jestjs.io/)
- Tests can run within the application as well as to be [exported e.g. for CI-server](https://docs.puppetry.app/exporting-tests-for-ci)
- Exporting
- as [Jest.js project](https://docs.puppetry.app/export/exporting-tests-for-ci), ready to plugin in CI/CD pipeline
- as [human-readable test specification](https://docs.puppetry.app/export/export-as-test-specification) provided with screenshots per test step.
- [Staging, template variables and expressions](https://docs.puppetry.app/template)
- [Reusable and configurable test scenarios](https://docs.puppetry.app/snippets)
- [Built-in automation recorder](https://docs.puppetry.app/suite#recording-suite-showcase)
- [Interactive mode](https://docs.puppetry.app/running-tests/interactive-mode), where one can navigate test steps similar to Cypress
- [Version control (GIT integration)](https://docs.puppetry.app/version-control)
- Support Allure test reports
- Support of distinct testing types:
- [Functional testing](https://docs.puppetry.app/getting-started)
- [Testing Dynamic Content](https://docs.puppetry.app/testing-techniques/testing-dynamic-content)
- [Exhaustive Testing](https://docs.puppetry.app/testing-techniques/exhaustive-testing)
- [Performance Testing](https://docs.puppetry.app/testing-techniques/performance-testing)
- [Visual Regression Testing](https://docs.puppetry.app/testing-techniques/css-regression-testing)
- [Mocking HTTP/S Requests](https://docs.puppetry.app/testing-techniques/mocking-http-s-requests)
- [Testing REST API](https://docs.puppetry.app/testing-techniques/testing-rest-api)
- [Testing Google Analytics tracking code](https://docs.puppetry.app/testing-techniques/testing-google-analytics-tracking-code)
- [Testing Chrome Extensions](https://docs.puppetry.app/testing-techniques/testing-chrome-extensions)
- [Testing Shadow DOM](https://docs.puppetry.app/testing-techniques/testing-shadow-dom)
- [Testing Transactional Emails](https://docs.puppetry.app/testing-techniques/testing-emails).## Download
You can download latest installers for your platform [from the releases page](https://github.com/dsheiko/puppetry/releases)
Current only the following OS are supported:
- Windows 7 and greater (64 bit)
- Ubuntu 14.04 and greater (64 bit)
- MacOS X 10.10 (Yosemite) and greater (64 bit)On Linux can be installed with [Snapcraft](https://snapcraft.io/docs/installing-snapd):
```
sudo snap install puppetry
```On Mac can be installed with [Homebrew](https://brew.sh/):
```
brew cask install puppetry
```
## FAQ- [Stackoverflow](https://stackoverflow.com/questions/tagged/puppetry)
## Feedback
- [Join Puppetry on Slack](http://puppetry.dsheiko.com) :coffee:
- [Chat](https://gitter.im/dsheiko/puppetry)
- [Facebook](https://www.facebook.com/pg/puppetry.testing/)
- [Feature requests](https://github.com/dsheiko/puppetry/issues)
- [Problem reports](https://github.com/dsheiko/puppetry/issues)## Contributing
- get acquainted with guides
- [the great document](https://github.com/firstcontributions/first-contributions) about first contributions
- examine the [Backlog](https://github.com/dsheiko/puppetry/projects), suggest new features
- look into existing Issues, come up with a fix (`master` branch)
- implement new features (`dev` branch)
- check [Developer Guide](https://github.com/dsheiko/puppetry/wiki/)Please adhere the coding style. We have one based on jQuery's JavaScript Style Guide. You can find the validation rules in `.eslintrc`
and lint the code by running `npm run lint`## Thanks
A special thanks to
[Monika Rao](https://github.com/monika-12),
[vteixeira19](https://github.com/vteixeira19),
[Gernot Messow](https://github.com/uvexgmessow),
[Carlos Mantilla](https://github.com/ceoaliongroo),
[kkmuffme](https://github.com/kkmuffme),
[Ravindra Jadhav](https://github.com/jadhavravindra)
for the ideas and support## Credits
- [Electron](http://electronjs.org/)
- [Puppeteer](https://pptr.dev)
- [Jest](https://jestjs.io/)## License
MIT