Puth is a nice browser testing framework with focus on stability, performance and extensive feedback. Currently supporting: JS, TS, PHP and Laravel (next up is Java (Spring)).
Current features are:
- Native Javascript and PHP clients (also Laravel integration)
- Snapshots which can be drag & dropped into the GUI
- Live GUI where you can see what happened before and after each command
- Also captures console log and network activity
- Client exceptions can be appended to a test
- Client logs can be appended
- Client files can be appended (e.g. environment/config files)
- See for yourself in the Screenshot, and yes, what you see can be exported if a test fails (or whenever you want to) by your favourite CI/CD so you can simply drag it into you locally running GUI :)
Puth is a browser testing tool designed for development and CI/CD pipelines. Do not expose Puth to the public. The problem is not Puppeteer/Chrome, but Puth allows calling any function that exists on the remote object.
Using Puth with docker is recommended. Puth default port is 7345
.
You can find Puth on Dockerhub. Keep in mind, if you run Puth in a Docker
container, you can't access localhost domains. If you e.g. use Vite then you need to start Puth with the
--network host
flag and remove -p 127.0.0.1:7345:7345
so that it can access e.g. localhost:3000
.
docker run -it --rm -p 127.0.0.1:7345:7345 seuh/puth:0.6.4
You can install the puth
npm package into your project but this is not recommended. If you can't use docker, i
recommend you install puth
as a global package, but that might have some problems due to puppeteer not having enough
privilege to successfully install (you might have to sudo install).
npm install --global puth
puth start
Puth has a Laravel integration package. You can find more information in the package readme.
Puth has a client package for PHP. You can find more information in the package readme.
Puth has a JS/TS client package currently bundled in puth
. A standalone client package should be available soon.
You can find the javascript client instructions here.