Skip to content

Releases: macbre/phantomas

Fantômas contre Fantômas

10 Nov 18:59
Compare
Choose a tag to compare

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 and windowOnLoadTimeEnd 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 and windowOnLoadTime 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

Fantômas contre Fantômas

Monsieur Fantômas - bug fixes

03 Oct 22:32
Compare
Choose a tag to compare

Bug fixes

  • #96 - Analyzing CSS fails for some URLs
  • #99 - Logging from phantomas scope is broken

Monsieur Fantômas

29 Sep 21:20
Compare
Choose a tag to compare

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 and phantomas.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

Monsieur Fantômas

Le Faux Magistrat

17 Sep 16:40
Compare
Choose a tag to compare

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

  • #61 - Possible Issue on HTTPS default home pages
  • #62 - window.callPhantom causes PhantomJS crash

Trivia

Le Faux Magistrat

Fantômas Contre Fantômas - bug fix

05 Sep 20:48
Compare
Choose a tag to compare

Bug fixes

#54 - scope.js: Requested keys of a value that is not an object

Fantômas Contre Fantômas

21 Aug 18:21
Compare
Choose a tag to compare

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() and document.getElementsByClassName() as well when reporting "DOMqueries" metric
  • #40 - i, len global JS variables are reported for every URL

Trivia

Fantômas Contre Fantômas

Le Mort Qui Tue

14 Aug 19:14
Compare
Choose a tag to compare

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 to run-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

The Dead Man Who Killed

Juve Contre Fantômas

12 Aug 20:41
Compare
Choose a tag to compare

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