Releases: macbre/phantomas
Fantômas contre Fantômas
This release adds a completely new use case to phantomas - web performance monitoring.
Using a simple "asserts framework" you can specify maximum values for metrics (#108). After setting up asserts, you can render results of phantomas run using TAP format (#94 and #127). And then plug them into Continous Integration system of your choice (e.g. Jenkins) or use simple command-line program to report metrics not meeting the limits.
Support for JUnit format is planned for the upcoming releases - #93.
Two experimental feature were added:
- passing
--film-strip
option will create a serie of screenshots when page is being loaded (#89). onDOMReadyEnd
andwindowOnLoadTimeEnd
metrics were added (#88). They report when handling of onDOMReady and windowOnLoad events is completed.
Oh, one more thing. You can provide --disable-js
and see how faster your site loads with JavaScript disabled (#115). And what needs to be improved in your JS code ;)
New metrics
- #88 - Add onDOMReadyEnd and windowOnLoadTimeEnd metrics
Improvements
- #89 - Register film strip when page is loading
- #94 and #127 - Add TAP format with details using YAMLish format
- #107 - Reporting jsErrors backtrace for format json and plain
- #108 - Introduce "metrics asserts"
- #115 - Make it possible to disable JavaScript on the page
- #120 - Simple phantomas asserts runner
Bug fixes
- #105 - "False error" when running performance on a site without jQuery?
- #117 -
onDOMReadyTime
andwindowOnLoadTime
should be calculated relative to the first response being received - #122 - Requests to blocked domains are included in stats
Internals
- #113 - Introduce formatters interface
Trivia
Monsieur Fantômas - bug fixes
Monsieur Fantômas
This release brings an experimental feature: phantomas will analyze CSS when --analyze-css
option is passed. CSS improvements hints are reported in notices section. More details can be found in #14.
phantomas now contains a set of unit tests and our GitHub repository is integrated with Travis CI. Let's hope that this means less bugs :)
Duplicated DOM queries are now reported in notices section (#73) as well as the list of all domains sorted by number of requests (#67).
A number of new metrics have been added - phantomas now returns 90 of them. More details can be found below.
New metrics
- #68 - Add a metric with maximum and median number of requests from a single domain
- #73 - Report duplicated DOM queries
- #79 - Proposal: Console.* and alert() warnings/count (by @sjhcockrell)
- #81 - Add a metric with number of HTTPS requests
- #83 - Proposal: Page Errors Metric (by @sjhcockrell)
- #91 - add cssEmptyDeclarations metric
Improvements
- #57 - Prepare a foundation for writing unit tests for phantomas modules
- #67 - Sort list of requests per domain by no of requests in descending order
- #69 and #90 -
phantomas.log
andphantomas.addNotice
now support messages formatting - #72 - Integrate with Travis CI
- #80 - Show redirects location
Bug fixes
- #74 - FE-BE Stat Numbers Accuracy
- #78 - Automatic cookie domain does not return root view on subpage URLs (fixed by @sjhcockrell)
Trivia
Le Faux Magistrat
This release brings support of cookies that can be passed to phantomas, thanks to #49 implemented by @sjhcockrell.
Recent release introduced an issue caused by experimental implementation of communication between browser and phantomas. It's caused numerous PhantomJS crashes. Hopefully, #62 fixes this issue. Many thanks to @sjhcockrell for great help in debugging this one.
New module called javaScriptBottlenecks
tracks calls to known JavaScript bottlenecks - eval
(explicit or indirect by calling setTimeout
and setInterval
) and document.write
. In debug mode backtraces are logged to ease debugging of slow parts of your site's JavaScript code.
Using --skip-modules
option you can skip given module(s) and customize your metrics set.
An information about the percentage of time spent on backend vs frontend side of your application is emitted as a notice after the metrics (see #60).
More details can be found below.
New metrics
- #48 - Track the use of document.write
- #50 - Measure the number of eval calls in JavaScript code
- #59 - Add support for JSON and SVG responses
- #52 - Add new CSS metrics: selectors using wildcards and by attributes
Improvements
- #49 - Allow cookies to be passed to phantomas, thanks @sjhcockrell!
- #53 - Use http.get() instead of request npm module
- #55 - Catch IE7- CSS "fix": * html
- #60 - Compare time spent on backend vs frontend
- #66 - Allow certain modules to be skipped
Bug fixes
Trivia
Fantômas Contre Fantômas - bug fix
Bug fixes
#54 - scope.js: Requested keys of a value that is not an object
Fantômas Contre Fantômas
This release brings an improved phantomas browser's scope, tracking of number of events bound to DOM nodes and plenty of code cleanup.
Using --no-externals
option you can now measure the performance of your site excluding all 3rd party assets. You can whitelist or block requests to additional domains via --allow-domain
and --block-domain
respectively.
From within your page's JavaScript code you can call window.__phantomas.setMetric
and incrMetric
methods to perform custom measurements.
New metrics
- #37 - Add a metric: number of event listeners bound (events details can be found in log)
- #44 - Add jQuery related metrics: jQueryVersion and jQueryOnDOMReadyFunctions (backtrace can be found in log)
- #45 - Add new metrics: number of querySelectorAll() and getElementsByTagName() calls
- #47 - jQuery: add jQuerySizzleCalls metric
Improvements
- #38 - Phantomas browser's scope cleanup
- #35 - Expose setMetric and incrMetric functions to phantomas browser scope
- #41- Improve colors in verbose log
- #42 - Cleanup of phantomas notices
- #43 - Cleanup of domQueries module
- #11 - Support for JSON config files (via
--config
) - #34 - Abort requests to external resources or given domains
Bug fixes
- @0a49bdeb - count calls to
document.getElementById()
anddocument.getElementsByClassName()
as well when reporting "DOMqueries" metric - #40 - i, len global JS variables are reported for every URL
Trivia
Le Mort Qui Tue
This release brings a helper script analyzing complexity of CSS files, metrics for tracking web font requests, improved logging and global installation of phantomas main script.
Improvements
- #6 - Adding command line option to only run certain modules (thanks @jmosney)
- @67d0ad9 - User agent string now includes OS name (
phantomas/0.4.1 (PhantomJS/1.9.0; linux 64bit
) - #17 - Adding
--format
option torun-multiple.js
(thanks @jmervine) - @67544c9 - huge code linting using jshint
- #21 - Add
analyze-css
helper script - #22 - Add new metrics: time to first CSS, JS and image
- #15 - Report multiple requests to the same asset
- #24 - Add new metric: web font requests
- #26 - Improve logging
- #29 - Install phantomas "binary" into the PATH
Bug fixes
- #20 - Phantomas doesn't work correctly when executed from another directory (thanks @wladekb for pointing this out)
- @b622b13 - complain about missing gzip compression only when getting HTTP 200
Trivia
Juve Contre Fantômas
Improvements
- @bdf6cd6 - Add
imagesWithoutDimensions
metric - @4880012 - A default user agent is now set
- @d1ca0a7 -
phantomas.js
is now an executable script - #9 - A custom user agent string can now be passed using
--user-agent
option (thanks @umaar) - phantomas is on npm! Simply run
npm install phantomas
and voilà
Bug fixes
- @ff836c7 - Better detection of path to nodejs in
run-multiple.js
script
Trivia
Upcoming releases of phantomas will use Phantomas movie titles as code names 😄 - let's start with Juve Contre Fantômas