Headless Chromium-based modular web performance metrics collector. And why phantomas? Well, because :)
npm install phantomas
This will install a recent version of Chromium supported by
puppeteer
module.
You can use phantomas Docker image:
docker pull macbre/phantomas:latest
Or you can fetch from GitHub's Containers registry
docker pull ghcr.io/macbre/phantomas:latest
You can get support for phantomas via xs:code.
const phantomas = require('phantomas'),
promise = phantomas('http://example.com/');
promise.
then(results => {
console.log('Metrics', results.getMetrics());
console.log('Offenders', results.getAllOffenders());
}).
catch(res => {
console.error(res);
});
// events handling
promise.on('recv', response => {
console.log('Response: %s %s [%s]', response.method, response.url, response.contentType);
});
// including the custom one emitted by phantomas modules
promise.on('domQuery', (type, query) => {
console.log('DOM query by %s - "%s"', type, query);
});
Or run ./examples/index.js
.
To get the latest development version of phantomas (and install all required dependencies):
git clone git@github.com:macbre/phantomas.git
npm install
First you need to start a local nginx container that will serve static assets used by integration tests suite. Then simply run npm t
:
./test/server-start.sh
npm t
All pull requests that are filed for this repository will have tests run via GitHub Actions.
Please refer to /Troubleshooting.md
window.write
or complex and duplicated CSS selectors (via analyze-css)All the contributors
phantomas comes as a CommonJS module (see API docs) that you can use in your nodejs projects.
You can also use it as a command line tool. Run phantomas -h
for more details.
Please refer to
/docs/metrics.md
file for a full, up-to-date list of all available modules and metrics that phantomas emits.
Introductions to phantomas and use cases:
Use grunt to automate daily dev tasks, including your's application web performance, via these great tools: