PA – Performance Analyser

http://pedroluisf.com/wp-content/uploads/2016/11/NCCLogo-1.jpg
NCC Logo
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Job_list.png
Job list
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Run_Test.png
Run test
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Test_Summary.png
Test summary
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Result_Breakdown.png
Result breakdown
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Domain_by_Requests.png
Domain by requests
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Waterfall.png
Waterfall
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Filmstrip.png
Filmstrip
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Video.png
Video
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Request_Map.png
Request map
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Heatmap.png
Heatmap

Project Description

Performance Analyser (PA) is a tool that allows automated and scheduled testing of websites across a number of real browsers as a way to check if content is being delivered to users in the optimal way and delivering consistent, reliable insight into a client’s website’s performance.

Using 3rd party tools to analyse the website’s requests and payloads, PA can perform tests and provide comparisons like single tests amongst different browsers, multi tests for a given browser or even scripted tests for a complete user journey experience.

It can also crawl websites, giving a global picture of overall performance, identify the worst performing pages and even offer performance optimisation advice.

Finally and after tests are complete, PA will offer insights into perceived performance, with metrics such as Speed Index and visualisations such as the Performance Heatmap.

WebPageTest (WPT) is the 3rd party tool used to analyse the website’s content. Currently being maintained by Pat Meenan from Google, WPT is an open source project developed initially by AOL and made publicly available in 2008.

The project is composed of several components, which include:

  • WPT agents – These are VM’s which include the WPT tool and will resend the results back to a central server.
  • Offline Processing – This is where all the information collection is handled, analysed and stored.
  • Admin area – Where the configuration of the tool is available.
  • Reporting area – This is the area exposed to the customers and is the place where all the reporting is done and the results are available.

I have worked in this project from May 2014 to October 2015.

Technology Stack

Different technologies were used in the different components of the project.

For the WPT agents, these were VM’s running Microsoft Windows with a local instance of WPT installed. These would eventually report back to a central server that was running a simple Silex API.

The offline processing was composed of PHP Daemon instances, running on top of a modular Symfony 2 application. Work assignment was retrieved by consuming RabbitMQ queues and data persistence was done using Doctrine 2.

For the admin area, an Silex application was chosen, which is a lightweight symfony based framework, mainly because of its simplicity.

For the reporting area, a Zend 1 MVC application was implemented. Using Bootstrap, Grunt as a task runner and a local repository of Bower for resource management, the frontend also had a certain degree of jQuery and jQueryUI, mainly for visualisation purposes.

Due to the complexity of the several components and their interaction, the development environment was build on top of a vagrant solution (a virtualization tool) for an easy deployment and allowing any new resource to be up to speed in the least amount of time possible.

Contacts

Company page

Facebook Page

Product page

Leave a Reply

Your email address will not be published. Required fields are marked *