20 Jan 2014

Announcing WebPerfM

WebPerfM ((WebPerfM project page on Github)) (horrible name I know) is a performance test tool for websites.

The idea came from the need for reliable performance test to know if a given site can handle a certain number of concurrent users.

For it to be a reliable performance test, it must act as close to real user behavior as possible.
The presents the problem of writing these tests, there have to be many different tests and they all have to be written like real user behavior.

Luckily we can create these tests without having to invent them.
Open Web Analytics (OWA) ((http://www.openwebanalytics.com/)) is a analytic tool like Google Analytics that you can host on your own server. OWA stores complete real life user sessions on the site in a accessible MySQL database.

So the idea is that WebPerfM reads the OWA database and crawls the website just the users did.

Each session is a list of what pages the user visited and what the delay between each pageview were.
WebPerfM runs multiple sessions at a time.

So far WebPerfM is just over the proof-of-concept stage and there a few things missing:

  • Scaling of how many concurrent sessions
  • Set number of sessions
  • Set age of session from the tests are created
  • Statistics
  • Proper caching of js-, css- og image-files with handling of ETAG, expire-date etc.

There are some limitations:
I can't simulate logged in users.
No JavaScript from the pages are not executes during the test, this means no AJAX requests.

WebPerfM is written in JavaScript and runs on NodeJS, using various libraries available through NPM.