phantomas

PhantomJS-based web performance metrics collector and monitoring tool

Github stars Tracking Chart

phantomas npm Build Status Known Vulnerabilities

Headless Chromium-based modular web performance metrics collector. And why phantomas? Well, because :)

Requirements

Installation

npm install phantomas

This will install a recent version of Chromium supported by puppeteer module.

Usage example

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);
});

Development version

To get the latest development version of phantomas (and install all required dependencies):

git clone git@github.com:macbre/phantomas.git
npm install

Having problems?

Please refer to /Troubleshooting.md

Features

  • modular approach - each metric is generated by a separate "module"
  • phantomas "core" acts as an events emitter that each module can hook into
  • in-depth metrics such as: number of events bound via jQuery, calls to window.writeor complex and duplicated CSS selectors (via analyze-css)
  • JSON and CSV as available output formats for easy integration with automated reporting / monitoring tools
  • easy integration with Continuous Integration tools via TAP format and assertions handling
  • metrics can be sent via StatsD or stored in elasticsearch
  • easy integration with other nodejs projects via CommonJS module (see API docs)
  • metrics can be emitted from JavaScript code of the page phantomas is run against (thanks to helper functions available in window.__phantomas)
  • device profiles allow phantomas to emulate mobile or tablet (by setting a proper user agent and viewport)

Contributors

All the contributors

Usage

phantomas comes as a CommonJS module (see API docs) that you can use in your nodejs projects.

Metrics

Please refer to /docs/metrics.md file for a full, up-to-date list of all available modules and metrics that phantomas emits.

For developers

Let's make Web a bit faster!

Slides

Blogosphere

Introductions to phantomas and use cases:

Videos

Utilities

Use grunt to automate daily dev tasks, including your's application web performance, via these great tools:

Overview

Name With Ownermacbre/phantomas
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 5)
Platform
License:BSD 2-Clause "Simplified" License
Release Count58
Last Release Namev2.11.0 (Posted on )
First Release Name0.1 (Posted on 2012-10-17 23:40:08)
Created At2012-07-07 16:28:54
Pushed At2024-04-16 09:17:55
Last Commit At
Stargazers Count2.3k
Watchers Count66
Fork Count141
Commits Count3k
Has Issues Enabled
Issues Count446
Issue Open Count58
Pull Requests Count828
Pull Requests Open Count3
Pull Requests Close Count75
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top