Skip to content

Releases: macbre/phantomas

phantomas v1.10.2

08 May 18:11
Compare
Choose a tag to compare

This minor release brings the following bug fixes:

phantomas v1.10.1

02 May 13:49
Compare
Choose a tag to compare

This minor release brings the following:

  • #508 - Count the number of window.addEventListener('scroll', ...)
  • #380 - Improved timeouts handling in multiple runs mode

phantomas v1.10

01 Mar 22:26
Compare
Choose a tag to compare

This release of phantomas brings bug fixes and...

Python

Python library for phantomas is now available on PyPI.

Latest Version Supported Python versions

import json
from phantomas import Phantomas

results = Phantomas(
    url="http://example.com",
    modules=['headers', 'requestsStats']
).run()

print('Generator: ' + results.get_generator())   # phantomas v1.10.0
print('\nMetrics: ' + json.dumps(results.get_metrics(), indent=True, sort_keys=True))
print('\nDomains: ' + json.dumps(results.get_offenders('domains'), indent=True))

# assertions
assert results.get_metric('notFound') == 0
assert results.get_metric('requests') < 5

All changes are listed below.

Changelog

Improvements

  • #496 - Change the default viewport to 1366x768
  • #489 - Use the latest engines
  • #358 - phantomas library for Python

Bug fixes

  • #499 - Make the date string compatible with windows file name restr... (by @vinvol)
  • #495 - Upgrading ascii-table version (by @sorensen)
  • #480 - Fix index of child node in getDOMPath (by @gmetais)
  • #479 - imagesScaledDown should probably not concern SVG
  • #478 - jQueryEventTriggers: error with jQuery 1.4.4
  • #476 - Negative cache (by @gmetais)
  • #467 - Scope problem with the spied version of eval() - introduce --spy-eval option

Internals

  • #473 - Add tests for phantomas scope helpers

phantomas v1.9

20 Jan 18:09
Compare
Choose a tag to compare

This release of phantomas brings the ability to measure number of repaints (currently supported by SlimerJS only - --engine=gecko - see #462).

A number of jQuery related metrics has been added:

  • functions bound to window onload event (#451)
  • the use of different jQuery versions (or copies of the same version) on the same page (yes, that does happen :)) - #435
  • events triggered (#440)
  • jQuery function calls that perform DOM reads and writes (#436)

Enjoy the new version of `phantomas! Let's make our websites even faster in 2015!

All changes are listed below.

Changelog

New metrics

  • #451 - Add jQueryWindowOnLoadFunctions metric
  • #462 - Number of times the current document has been painted to the screen
  • #440 - Measure the number of triggered events
  • #438 - Requests to...
  • #436 - Spy more jQuery functions
  • #435 - Report the use of different versions of jQuery

Improvements

  • #453 - Delay report until phantomas event
  • #443 - Show units next to metric name in ascii table output
  • #442 - Add the file name in analyze-css offenders

Bug fixes

  • #472 - Fix getDomPath with tab or new line separated class names (by @gmetais)
  • #470 - Add 'font/opentype' to contentType switch (by @william-p)
  • #468 - cachingNotSpecified reports files with the Expires header specified (by @unintelligible)
  • #457 - waitForSelector: do not report polling DOM queries
  • #454 - Illegal character in screenshot filenames under Windows
  • #399 - imagesWithoutDimensions should take in account CSS dimensions

Internals

  • #475 - Update dependencies
  • #460 - Core cleanup
  • #449 - analyze-css: upgrade to v0.9.0
  • #447 - Emit milestone event using core modules.
  • #441 - Update npm dependencies

phantomas v1.8

02 Dec 20:39
Compare
Choose a tag to compare

This release of phantomas brings the ability to analyze inline CSS styles (#397) - simply run phantomas CLI tool with --analyze-css option.

New metrics have been added:

  • DOMqueriesWithoutResults suggesting which DOM queries can be removed or improved as they return no results (#420)
  • port of @gmetais nodule that reports reconnections to fetch additional assets from the same domain - i.e. connection not being kept alive (#400)
  • reporting of small JS and CSS files that can be inlined or concatenated (#398)

To make the code style consistent in the project js-beautify has been introduced (#426).

While enjoying the new version of phantomas take a look at was is planned for the upcoming v1.9 ;)

All changes are listed below.

Changelog

New metrics

  • #420 - DOMqueriesWithoutResults
  • #400 - Keep-alive related metric (by @gmetais)
  • #398 - Count small JS and CSS files
  • #397 - Make analyze-css work on embedded styles

Improvements

  • #429 - Provide error message when a CSS is empty (by @gmetais)
  • #419 - Ignore case when counting duplicated getElementsByTagName()
  • #414 - Report offenders for DOMelementMaxDepth

Bug fixes

  • #427 - Fixed order of elasticsearch reporter parameters 'type' and 'index' (by @hstijns-coolblue)
  • #417 - analyze-css process not finishing

Internals

  • #426 - Introduce js-beautify

phantomas v1.7

11 Nov 11:50
Compare
Choose a tag to compare

This release brings a few new metrics: number of HTML elements with duplicated IDs (#392), number of avoidable DOM queries (#402) and number of CSS stylesheets analyze-css failed to parse (#404).

By defaulting --ssl-protocol PhantomJS option to "any" HTTPS pages should load fine using default phantomas settings (#423).

DOM queries module now takes context of the query into consideration (#395) when calculating duplicated queries and emitting offenders.

analyze-css has been upgraded to v0.8.0 which brings reporting of duplicated CSS properties and improved redundant selectors metric.

All changes are listed below.

Changelog

New metrics

  • #404 - Get a feedback when analyze-css fails to parse a file
  • #402 - New metric DOMidAvoidable (#396) (by @gmetais)
  • #392 - Report elements with duplicated ID

Improvements

  • #423 - ssl-protocol: use "any" by default (instead of sslv3)
  • #412 - Document troubleshooting HTTPS issues
  • #395 - Duplicated DOM queries: take context into consideration

Bug fixes

  • #422 - Strange radix=0 argument for parseInt (by @gmetais)
  • #411 - HTTPS pages are not working and throw error
  • #409 - SlimerJS: phantomas dies on listing extensions directory
  • #382 - Fulfilled promise with error code 1

Internals

  • #421 - analyze-css: use v0.8.0
  • #408 - npm: upgrade dependencies
  • #406 - Upgrade to analyze-css v0.6.0

phantomas v1.6

16 Sep 17:48
Compare
Choose a tag to compare

This release of phantomas brings the detection of images scaled down in HTML (#390) and the option to provide interval at which page's screenshots are taken (#174).

Internally, unit tests were greatly improved. Modules that do not emit any metric, but modify the behaviour of phantomas, were moved to /extensions directory. They will always be loaded, even when an arbitrary list of modules is provided via --modules option.

Last, but not least - YellowLabTools - online web performance testing tool (based on phantomas) has been released recently. Try it out!

All changes, as usual, are listed below.

Enjoy!

Changelog

New metrics

  • #390 - Detect images scaled down in HTML

Improvements

  • #174 - Allow to set --film-strip interval

Bug fixes

  • #363 - Statsd integration to use gauges
  • #383 - DOMelementsCount is smaller than it should

Internals

  • #138 - Improve phantomas tests
  • #375 - Move modules that do not emit metrics to /extensions

phantomas v1.5

01 Aug 19:44
Compare
Choose a tag to compare

This version of phantomas brings the support for YAML-formatted config files and some improvements in DOM timing related metrics (please note that metric names have changed to match Navigation timing spec).

--scroll option has been added to improve testing of lazy-loaded features - see #352 for details.

All changes, as usual, are listed below.

Enjoy!

Changelog

New metrics

  • #344 - Measure document height
  • #360 - windowPerformance: improve DOM timing metrics

Improvements

  • #339 - Support for YAML formatted config file
  • #352 - Allow page to be scrolled after it is loaded
  • #364 - Add support for ssl-protocol specification in engines (by @rsnickell)

Bug fixes

  • #350 - Ignore DOM inserts to DocumentFragments
  • #366 - Multiple runs do not support HTTP 50x errors
  • #374 - Some kinds of DOMqueries are ignored

Internals

  • #354 - Support UNIX socket as IPC channel

phantomas v1.4

24 Jun 21:13
Compare
Choose a tag to compare

This version of phantomas brings the experimental integration with SlimerJS.- not yet fully headless browser that runs on Gecko engine. Try it yourself by running phantomas with --engine=gecko option and remember to install all required dependencies:

sudo aptitude install xvfb libasound2 libgtk2.0-0

The introduction of secondary "rendering" engine allows phantomas to use the latest browser APIs like mutation observers (#87) and detect embedded vidoes (#325).

Handling of config files has been moved to NodeJS runner, so the JSON formatted config file can now define the results renderer - #209.

Changelog

New metrics

  • #87 - Use mutation observers to measure number of HTML changes
  • #325 - Detect embedded videos

Improvements

  • #209 - Move handling of config file to NodeJS runner
  • #313 - Support for running phantomas in SlimerJS
  • #342 - Add --colors to force ANSI colors when using less
  • #346 - Support --engine option

Bug fixes

  • #348 - Memory leak warning in events exposed by phantomas CommonJS module

Internals

  • #347 - fast-stats: make it work in SlimerJS

phantomas v1.3

01 Jun 18:48
Compare
Choose a tag to compare

This release of phantomas brings:

  • next set of reporter options (#318) like -R plain:no-color, -R tab:no-skip and -R statsd:localhost:8215:phantomas.
  • metric with number of static assets fetched from domains with cookie set (#92)
  • offenders are now added for DOMqueriesByQuerySelectorAll, eventsBound and domainsWithCookies metrics

phantomas CommonJS module now returns a promise (#314) and passes events triggered from phantomas modules (#322).

What's coming up with the next version? Support for running phantomas in SlimerJS (#313). Stay tuned :)

Changelog

New metrics

  • #92 - Add a metric with number of static assets fetched from domains with cookie set

Improvements

  • #283 - File name prefix for filmstrip screenshots
  • #318 - Implement next set of reporter options
  • #329 - Offenders: add for DOMqueriesByQuerySelectorAll and eventsBound
  • #331 - Cookies: add offenders for domainsWithCookies

Bug fixes

  • #326 - incrMetric: passing incr = 0 increases the metrics by 1
  • #335 - eventListener: events bound to window are not reported

Internals

  • #314 - Use promise pattern in CommonJS module
  • #320 - Internal API cleanup
  • #322 - Pass custom events from phantomas to CommonJS module
  • #330 - Use collection library
  • #332 - Add debug mode for phantomas runner
  • #334 - localStorage: cleanup