A BASELINE FOR WEB PERFORMANCE WITH PHANTOMJS



Similar documents
A Baseline for Web Performance

Website Performance: Kyle Simpson

Web Performance. Sergey Chernyshev. March '09 New York Web Standards Meetup. New York, NY. March 19 th, 2009

Web Performance. Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 2014/15. Sérgio Nunes

Mobile Application Performance Report

Why Web Performance Matters Open Text Web Solutions Usergroup Anwendertagung Feb Tobias Dreyschultze Tobel Online Web Consultancy

Performance Report for: Report generated: Friday, April 24, 2015, 7:29 AM (via API)

HtmlUnit: An Efficient Approach to Testing Web Applications

Front-End Performance Testing and Optimization

WompMobile Technical FAQ

AUDIT REPORT EXAMPLE

Drupal Performance Tuning

Accelerating Wordpress for Pagerank and Profit

Performance Optimization For Operational Risk Management Application On Azure Platform

Website Optimization Tips for Speed

Performance testing Web 2.0

Enterprise Mobile Web Development. Robert Altland Principal Consultant, Mobility Neudesic, LLC

Web Caching and CDNs. Aditya Akella

Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014

Improving Magento Front-End Performance

Mobile Performance: for excellent User Experience

Checklist of Best Practices in Website

making drupal run fast

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

Programming in HTML5 with JavaScript and CSS3

79 Tips and Tricks for Magento Performance Improvement. for Magento Performance Improvement

Orion: Software Development in the Browser

Why Mobile Performance is Hard

Speed up your web site. Alan Seiden Consulting alanseiden.com

Practical Load Balancing

A Tool for Evaluation and Optimization of Web Application Performance

E-commerce is also about

The Devil is in the Details. How to Optimize Magento Hosting to Increase Online Sales

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

80+ Things Every Marketer Needs to Know About Their Website

Repeater. BrowserStack Local. browserstack.com 1. BrowserStack Local makes a REST call using the user s access key to browserstack.

Effects of Web Page Contents on Load Time over the Internet

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Varnish the Drupal way

Introduction to Mobile Performance Testing

Load and Performance Load Testing. RadView Software October

Web Tracking for You. Gregory Fleischer

Ajax Performance Tuning and Best Practice

Kentico Site Delivery Checklist v1.1

DATA COMMUNICATOIN NETWORKING

API documentation - 1 -

INFORMATION TECHNOLOGY STANDARD

Table of contents. HTML5 Data Bindings SEO DMXzone

85.1. Review of google.com. Your website score. Generated on Introduction. Table of Contents SEO. Iconography Pass

CONTENT DELIVERY WHITE PAPER proinity GmbH 1

Monitoring the Real End User Experience

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Browser tools that make web development easier. Alan Seiden Consulting alanseiden.com

Progressive Enhancement With GQuery and GWT. Ray Cromwell

1. Minimize HTTP Requests. 2. Put Stylesheets at the Top

Load Testing Ajax Apps using head-less browser tools. NoVaTAIG April 13, 2011 Gopal Addada and Frank Hurley Cigital Inc.

Magento Performance Optimization Whitepaper

Presentation tier performance optimization

Upgrade to Microsoft Web Applications

Datasheet - Sitekit CMS Performance Tips

WordPress Optimization

Informatica Data Director Performance

SiteCelerate white paper

Open Source and Commercial Performance Testing Tools

Performance Measurement Service Choice Browser Installation and Use

Art of Code Front-end Web Development Training Program

Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys

Modern Web Development From Angle Brackets to Web Sockets

Meeting the challenges of modern website performance Developments in monitoring strategies

Developing ASP.NET MVC 4 Web Applications MOC 20486

PageSpeed Insights. (expiration not specified)

Q: What is the difference between the other load testing tools which enables the wan emulation, location based load testing and Gomez load testing?

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Portals and Hosted Files

EECS 398 Project 2: Classic Web Vulnerabilities

Improved Speed on Intelligent Web Sites

Nginx 1 Web Server Implementation

Selenium 1.0 Testing Tools

How to start with 3DHOP

Step into the Future: HTML5 and its Impact on SSL VPNs

Administering Jive for Outlook

A Hybrid Visualization System for Molecular Models

CA APM Cloud Monitor. Scripting Guide. Release 8.2

End User Monitoring. AppDynamics Pro Documentation. Version Page 1

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Certified Selenium Professional VS-1083

Transcription:

2 WebSocket 3 Polling A BASELINE FOR WEB PERFORMANCE WITH PHANTOMJS @WESLEYHALES

DO YOU AUTOMATE BROWSER PERF?

You might occasionally test your sites using Firebug, Chrome DevTools, PageSpeed, YSlow, etc..

Abiding by these rules... Make Fewer HTTP Requests Use a Content Delivery Network Add an Expires Header Gzip Components Put Stylesheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript Remove Duplicate Scripts Make AJAX Cacheable

Check out browserdiet.com

How can we abide to these rules (or metrics you care about) and monitor changes over time?

@WESLEYHALES Developer at Apigee Atlanta HTML5 loadreport.js slidfast.js this article

Why should you be concerned with measuring client-side performance?

2:17

Many, many reasons, but user expectations, SEO, and $$ usually trump all.

The good parts...

CNN.COM REMOVED JQUERY AND PROTOACULOUS FROM CONCATENATION AND ADDED TO CDN IMPROVED SITE PERFORMANCE BY 17% REDUCED ALMOST 1TB OF BANDWIDTH PER DAY IMPROVED SITE PERFORMANCE BY 17% REDUCED ALMOST 1TB OF BANDWIDTH PER DAY

The hard parts...

Do you use/understand gzip, cdn, cache headers, and the like?

No prob, let's review...

The hard parts of monitoring client-side performance

DEVELOPER STANDPOINT Caching (headers, localstorage, appcache) When to gzip (don't gzip stuff that's natively compressed) When to pull from CDN, local, or break apart (single HTTP reqs aren't always a win)

SOME PERFORMANCE ISSUES REQUIRE MORE THOUGHT

AUTOMATION STANDPOINT Server(Browser) Location Browser Type Connection Speed CPU Activity

SERVER(BROWSER) LOCATION Will you be running tests on your LAN, Cloud, or elsewhere?

CONNECTION SPEED Speeds and latencies should be as consistent as possible.

BROWSER TYPE DIY options are limited

CPU ACTIVITY Affects all tests. Need as few (or consistent) processes running - that won't cause a spike during test.

AVAILABLE TOOLS AND SERVICES

CLIENT PERFORMANCE MEASUREMENT TOOLS Firebug Developer Tools

CLIENT PERFORMANCE MEASUREMENT SERVICES webpagetest.org

CLIENT PERFORMANCE MEASUREMENT AUTOMATION With a headless browser

A headless web browser is a browser without a graphical user interface.

There are many others like HtmlUnit (Java), EnvJS (JavaScript), Ghost (Python), WebDriver (for all)...

PHANTOMJS

TYPICAL HEADLESS BROWSER USAGE JavaScript Testing Navigation and submitting forms Clicking links Web Scraping...

PHANTOMJS GIVES US ACCESS TO Cookie and Local Storage related APIs SSL support DOM readystate Screen capture generate HAR files A ton more...

SIMPLE PHANTOMJS DEMO simple

LOADREPORT.JS (SERVICE DEMO) Measures things like Document Readystate, Resource load times and size, trouble makers, birdseye view for loading (in WebKit)

LOADREPORT.JS SCRIPT DEMOS Loadreport.js ( Basic, Filmstrip, Angular, Ember) Speedreport.js ( Basic)

LOADREPORT.JS SERVER ( FLUXUI ) Reporting is single threaded to maximize median accuracy

EXTRAS phantomas.js Yslow

Getting a baseline

Remember this... Make Fewer HTTP Requests Use a Content Delivery Network Add an Expires Header Gzip Components Put Stylesheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript Remove Duplicate Scripts Make AJAX Cacheable

From an opensource perspective, we can use Travis CI github OAuth token encryption with travis pushing your site with an automated travisci build Setup info here

From the enterprise side, we can run the scripts internally with no special setup. Bamboo Jenkins Barebone Linux system without X11 is not a problem for PhantomJS.

SUMMARY For simplicity, use phantomjs and build a script that works for you. For more advanced, host your own instance of webpagetest.org