SlideShare a Scribd company logo
1 of 13
Download to read offline
MAKING FEP TESTING
…..A PART OF CONTINUOUS INTEGRATION
(BROWSER-PERF/PERFJANKIE DETAILS)
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
2
Contents
OBJECTIVE.................................................................................................................................................................................. 3
BROWSER-PERF INTRODUCTION................................................................................................................................... 4
BROWSER-PERF METRICS.................................................................................................................................................. 5
1) CHROME TIMELINE METRICS....................................................................................................................................... 5
2) CHROME TRACING METRICS ........................................................................................................................................ 6
3) REQUEST ANIMATION FRAME METRICS .................................................................................................................... 6
4) RUNTIME PERFMETRICS............................................................................................................................................... 6
5) NAVTIMINGMETRICS..................................................................................................................................................... 7
BROWSER-PERF METRICS FOR XYZ ............................................................................................................................... 9
APPROACH TO INSTALL/INCORPORATE BROWSER-PERF/PERF-JANKIE..................................................10
1) TOTAL INSTALLATIONS REQUIRED............................................................................................................................10
2) STEPS FOR INSTALLATION ..........................................................................................................................................10
3) CONFIGURATION OPTIONS FOR PERF-JANKIE IN GRUNTJS...................................................................................10
REFERENCES...........................................................................................................................................................................13
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
3
Objective
This document intends to further the initial document for the technologies –
Browser-Perf and Perf-Jankie
This document will list the various performance metrics; segregate the ones required for the Site
Dev projects and will have a basic to-do to start the process.
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
4
Browser-perf Introduction
http://nparashuram.com/perfslides/#presentation&10
Install browser-Perf from (NPM)
Run it from the (CMD) or add it to a CI system
like (Jenkins)
 Browser-perf is a NodeJS based tool
 For measuring browser performance metrics (like layout, paint, dom load or frame times)
 For Web pages, Cordova/Phonegap and other Hybrid applications.
 Metrics are measured when scrolling the web page, or during a Checkout workflow defined
using Selenium.
 Tool collects the metrics from sources like about:tracing, Chrome Devtools timeline, IE UI
Responsiveness tab, Xperf, etc.
 Monitor this information regularly by integrating the tool with continuous integration
systems.
https://github.com/axemclion/browser-perf
Screenshots for Browser-perf
From https://gist.github.com/axemclion/8620794
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
5
Browser-Perf Metrics
1) Chrome Timeline Metrics
Name Unit Description
CompositeLayers ms
The time spent compositing rendering layers into a
screen image
DecodeImage ms The time spent decoding images
EvaluateScript ms The time spent evaluating the page's scripts
EventDispatch ms The time spent executing event handlers
FireAnimationFrame ms
The time spent handling scheduled animation frame
events
FunctionCall ms
The time spent executing calls to top-level Javascript
functions
GCEvent ms
The time spent doing garbage collection during script
execution
Layout ms
The time spent on (re)flow, or constructing the
rendering tree from the DOM tree
Paint ms The time spent rasterizing the page into bitmaps
PaintSetup ms
The time spent converting DOM elements into a
display list of drawing commands to paint
ParseHTML ms
The time spent executing the engine's HTML parsing
algorithm
Program ms The total time for all actions to render the page
RecalculateStyles ms
The time spent recalculating element styling, when a
reflow occurs
TimerFire ms The time spent executing timer-triggered handlers
XHRReadyStateChange ms
The time spent handling handling changes to the
ready state of XMLHTTPRequest's
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
6
2) Chrome Tracing Metrics
Name Unit Description
Mean Frame Time ms Average time taken to render each frame
3) Request Animation Frame Metrics
Name Unit Description
droppedFrameCount count
The number of frames produced by the GPU were
over 16.6ms apart
numFramesSentToScreen count The number of frames the GPU sent to the screen
numAnimationFrames count
Total number of times requestAnimationFrame
was called
4) Runtime PerfMetrics
Name Unit Description
ExpensiveEventHandlers count
The number of event handlers that took more
than 16ms
ExpensivePaints count The number of paints that took more than 16ms
GCInsideAnimation count
The number of times Garbage was called during
the scroll
Layers count The number of layers used for rendering
NodePerLayout count
The number of nodes that need to be updated
during layout
PaintedArea sq.pixels The amount of space painted during paints
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
7
5) NavTimingMetrics
These are calculated from window.performance.timing API in NavTimingMetrics. For more
information about each metric, please the W3C Specification
Each of these numbers in the metrics indicates the time elapsed after the previous event.
The order of the event flow is
Name Unit Description
connectStart ms
The time immediately before the user agent
started establishing the connection to the
server to retrieve the document
connectEnd ms
The time immediately after the user agent
finished establishing the connection to the
server to retrieve the document
domComplete ms
The time immediately before the user agent set
the document's readiness to complete
domContentLoadedEventStart ms The time immediately before the user agent
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
8
Name Unit Description
fired the DOMContentLoaded event
domContentLoadedEventEnd ms
The time immediately after the document's
DOMContentLoaded event completed
domInteractive ms
The time immediately before the user agent set
the document's readiness to interactive
domLoading ms
The time immediately before the user agent set
the document's readiness to loading
domainLookupStart ms
The time immediately before the user agent
started the domain name lookup for the
document
domainLookupEnd ms
The time immediately after the user agent
finishes the domain name lookup for the
document
fetchStart ms
The time immediately before the user agent
checks caches for resources OR starts fetching
resources
firstPaint ms
The time immediately before the first paint
occurred
loadEventStart ms
The time immediately before the load event
was fired for the document
loadEventEnd ms
The time the load event for the document
completed
requestStart ms
The time immediately before the user agent
started requesting the document from the
server
responseStart ms
The time immediately after the user agent
received the first byte of the server's response
to the document request
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
9
Browser-perf metrics for XYZ
Weekly Build Daily Build Dev build
Chrome Timeline Metrics
CompositeLayers
DecodeImage
EvaluateScript  
EventDispatch  
FireAnimationFrame
FunctionCall
GCEvent  
Layout   
Paint
PaintSetup
ParseHTML   
Program
RecalculateStyles   
TimerFire
XHRReadyStateChange   
Chrome Tracing Metrics
Mean Frame Time
Request Animation Frame Metrics
droppedFrameCount
numFramesSentToScreen
numAnimationFrames
Runtime PerfMetrics
ExpensiveEventHandlers  
ExpensivePaints
GCInsideAnimation
Layers
NodePerLayout  
PaintedArea
NavTimingMetrics
connectStart
connectEnd
domComplete   
domContentLoadedEventStart
domContentLoadedEventEnd
domInteractive   
domLoading
domainLookupStart
domainLookupEnd
fetchStart  
firstPaint  
loadEventStart
loadEventEnd   
requestStart
responseStart   
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
10
Approach to install/incorporate Browser-Perf/Perf-Jankie
1) Total installations required
a. Browser-perf
b. Perf-jankir
c. Selenium
d. Selenium Drivers for Chrome
e. Selenium Drivers for IE
Note: Selenium comes with Safari and Firefox drivers built-in.
2) Steps for Installation
a. Click here for the step by step Instructions for browser-perf/Selenium and the
Selenium drivers
b. Perfjankie can be used as a node module, from the command line, or as a Grunt
task and can be installed from npm using,
npm install perfjankie
(https://github.com/axemclion/perfjankie)
3) Configuration options for Perf-Jankie in GruntJS
Click here for all the list of options
Here below is an example of a GruntJS configuration Option for PerfJankie
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
11
perfjankie: {
options: {
suite: 'perfSlides - Performance Analysis',
urls: ['http://localhost:8080']
},
local: {
options: {
selenium: 'http://localhost:4444/wd/hub',
browsers: 'chrome',
couch: {
server: 'http://localhost:5984',
username: 'admin_user',
pwd: 'admin_pass',
database: 'perfslides',
updateSite: true
}
}
},
remote: {
options: {
repeat: 3,
selenium: {
hostname: "ondemand.saucelabs.com",
port: "80",
user: process.env.SAUCE_USERNAME,
pwd: process.env.SAUCE_ACCESSKEY
},
browsers: [{
browserName: 'chrome',
version: 34
}],
couch: {
server: 'http://axemclion.cloudant.com',
username: process.env.COUCH_USER,
pwd: process.env.COUCH_PWD,
database: 'perfslides',
updateSite: true
}
}
}
}
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
12
XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie)
13
References
1. http://4waisenkinder.de/blog/2013/12/22/how-to-measure-frontend-performance-with-
phantomas-and-grunt/
2. http://aaron.jorb.in/blog/2012/07/automating-your-front-end-development-workflow/
3. http://blog.maxcdn.com/behind-scenes-tools-maxcdn-com/
4. http://blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/
5. http://calendar.perfplanet.com/2013/phantomas/
6. http://embersherpa.com/articles/introduction-to-ember-app-kit/
7. http://fourword.fourkitchens.com/article/automated-frontend-tools
8. http://fourword.fourkitchens.com/article/performance-design-budget-and-test
9. http://internetmarketing-readme.pricemaniacs.com/category/website-performance/
10. http://isobar-idev.github.io/code-standards/
11. http://jeremyckahn.github.io/blog/2012/07/01/treating-javascript-like-a-30-year-old-
language/
12. http://nparashuram.com/perfslides/
13. http://rupl.github.io/frontend-ops
14. http://rupl.github.io/frontend-perf
15. http://rupl.github.io/frontend-testing
16. http://spy-js.com/why.html
17. http://updates.html5rocks.com/2013/11/The-Landscape-Of-Front-end-Development-
Automation-Slides
18. http://www.slideshare.net/ArtemGovorov/spyjs
19. http://www.smashingmagazine.com/2013/06/11/front-end-ops/
20. https://austin2014.drupal.org/session/automated-frontend-testing
21. https://gist.github.com/axemclion/8620794
22. https://github.com/axemclion/browser-perf
23. https://github.com/axemclion/perfjankie/
24. https://hacks.mozilla.org/2012/12/fantastic-front-end-performance-part-1-concatenate-
compress-cache-a-node-js-holiday-season-part-4/
25. https://www.npmjs.org/package/browser-perf
26. https://github.com/marcelduran/webpagetest-api

More Related Content

What's hot

Grails Plugin
Grails PluginGrails Plugin
Grails Plugin
guligala
 

What's hot (8)

Grails Plugin
Grails PluginGrails Plugin
Grails Plugin
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Hiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret SauceHiveminder - Everything but the Secret Sauce
Hiveminder - Everything but the Secret Sauce
 
Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
Global Interpreter Lock: Episode III - cat < /dev/zero > GIL;
 
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeGDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Kubernetes - from sketch to production
Kubernetes - from sketch to productionKubernetes - from sketch to production
Kubernetes - from sketch to production
 

Viewers also liked

Beauty of creation 10
Beauty of creation 10Beauty of creation 10
Beauty of creation 10
nikolaus21
 

Viewers also liked (17)

How to use contexts for content - Put your site on a diet
How to use contexts for content - Put your site on a dietHow to use contexts for content - Put your site on a diet
How to use contexts for content - Put your site on a diet
 
Hardeep Resume
Hardeep ResumeHardeep Resume
Hardeep Resume
 
The Ruby workflow
The Ruby workflowThe Ruby workflow
The Ruby workflow
 
Beauty of creation 10
Beauty of creation 10Beauty of creation 10
Beauty of creation 10
 
Improving Citizens' Safety with Citizen-Sensing Technologies
Improving Citizens' Safety with Citizen-Sensing TechnologiesImproving Citizens' Safety with Citizen-Sensing Technologies
Improving Citizens' Safety with Citizen-Sensing Technologies
 
1 political parties chap 5 sec 1,2,3
1 political parties chap 5 sec 1,2,31 political parties chap 5 sec 1,2,3
1 political parties chap 5 sec 1,2,3
 
Ensayo
EnsayoEnsayo
Ensayo
 
Wifi
WifiWifi
Wifi
 
Práctica de los valores
Práctica de los valoresPráctica de los valores
Práctica de los valores
 
Corso di Perfezionamento in Leadership in Medicina
Corso di Perfezionamento in Leadership in MedicinaCorso di Perfezionamento in Leadership in Medicina
Corso di Perfezionamento in Leadership in Medicina
 
Independence movements
Independence movementsIndependence movements
Independence movements
 
Centerless Grinding Machine Manufacturers India
Centerless Grinding Machine Manufacturers IndiaCenterless Grinding Machine Manufacturers India
Centerless Grinding Machine Manufacturers India
 
Windows 8: Shapes and Geometries
Windows 8: Shapes and GeometriesWindows 8: Shapes and Geometries
Windows 8: Shapes and Geometries
 
.Net branching and flow control
.Net branching and flow control.Net branching and flow control
.Net branching and flow control
 
Maquinas y herramientas.rectificadora
Maquinas y herramientas.rectificadoraMaquinas y herramientas.rectificadora
Maquinas y herramientas.rectificadora
 
Touch Dressing technology
Touch Dressing technologyTouch Dressing technology
Touch Dressing technology
 
Innovatieproces Kaal Masten B.V.
Innovatieproces Kaal Masten B.V.Innovatieproces Kaal Masten B.V.
Innovatieproces Kaal Masten B.V.
 

Similar to Front End performance as a Continuous Integration - Part2 (Browserperf/perfjankie)

When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma
 

Similar to Front End performance as a Continuous Integration - Part2 (Browserperf/perfjankie) (20)

FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdfDevfest 2023 - Service Weaver Introduction - Taipei.pdf
Devfest 2023 - Service Weaver Introduction - Taipei.pdf
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?) Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Making Modern Websites
Making Modern WebsitesMaking Modern Websites
Making Modern Websites
 
Fabric - Realtime stream processing framework
Fabric - Realtime stream processing frameworkFabric - Realtime stream processing framework
Fabric - Realtime stream processing framework
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
 
Cqrs and event sourcing in azure
Cqrs and event sourcing in azureCqrs and event sourcing in azure
Cqrs and event sourcing in azure
 
Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
 
React october2017
React october2017React october2017
React october2017
 
Monitoring as Software Validation
Monitoring as Software ValidationMonitoring as Software Validation
Monitoring as Software Validation
 
Jsonnet, terraform & packer
Jsonnet, terraform & packerJsonnet, terraform & packer
Jsonnet, terraform & packer
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
 
Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
 
Comet from JavaOne 2008
Comet from JavaOne 2008Comet from JavaOne 2008
Comet from JavaOne 2008
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 

Front End performance as a Continuous Integration - Part2 (Browserperf/perfjankie)

  • 1. MAKING FEP TESTING …..A PART OF CONTINUOUS INTEGRATION (BROWSER-PERF/PERFJANKIE DETAILS)
  • 2. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 2 Contents OBJECTIVE.................................................................................................................................................................................. 3 BROWSER-PERF INTRODUCTION................................................................................................................................... 4 BROWSER-PERF METRICS.................................................................................................................................................. 5 1) CHROME TIMELINE METRICS....................................................................................................................................... 5 2) CHROME TRACING METRICS ........................................................................................................................................ 6 3) REQUEST ANIMATION FRAME METRICS .................................................................................................................... 6 4) RUNTIME PERFMETRICS............................................................................................................................................... 6 5) NAVTIMINGMETRICS..................................................................................................................................................... 7 BROWSER-PERF METRICS FOR XYZ ............................................................................................................................... 9 APPROACH TO INSTALL/INCORPORATE BROWSER-PERF/PERF-JANKIE..................................................10 1) TOTAL INSTALLATIONS REQUIRED............................................................................................................................10 2) STEPS FOR INSTALLATION ..........................................................................................................................................10 3) CONFIGURATION OPTIONS FOR PERF-JANKIE IN GRUNTJS...................................................................................10 REFERENCES...........................................................................................................................................................................13
  • 3. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 3 Objective This document intends to further the initial document for the technologies – Browser-Perf and Perf-Jankie This document will list the various performance metrics; segregate the ones required for the Site Dev projects and will have a basic to-do to start the process.
  • 4. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 4 Browser-perf Introduction http://nparashuram.com/perfslides/#presentation&10 Install browser-Perf from (NPM) Run it from the (CMD) or add it to a CI system like (Jenkins)  Browser-perf is a NodeJS based tool  For measuring browser performance metrics (like layout, paint, dom load or frame times)  For Web pages, Cordova/Phonegap and other Hybrid applications.  Metrics are measured when scrolling the web page, or during a Checkout workflow defined using Selenium.  Tool collects the metrics from sources like about:tracing, Chrome Devtools timeline, IE UI Responsiveness tab, Xperf, etc.  Monitor this information regularly by integrating the tool with continuous integration systems. https://github.com/axemclion/browser-perf Screenshots for Browser-perf From https://gist.github.com/axemclion/8620794
  • 5. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 5 Browser-Perf Metrics 1) Chrome Timeline Metrics Name Unit Description CompositeLayers ms The time spent compositing rendering layers into a screen image DecodeImage ms The time spent decoding images EvaluateScript ms The time spent evaluating the page's scripts EventDispatch ms The time spent executing event handlers FireAnimationFrame ms The time spent handling scheduled animation frame events FunctionCall ms The time spent executing calls to top-level Javascript functions GCEvent ms The time spent doing garbage collection during script execution Layout ms The time spent on (re)flow, or constructing the rendering tree from the DOM tree Paint ms The time spent rasterizing the page into bitmaps PaintSetup ms The time spent converting DOM elements into a display list of drawing commands to paint ParseHTML ms The time spent executing the engine's HTML parsing algorithm Program ms The total time for all actions to render the page RecalculateStyles ms The time spent recalculating element styling, when a reflow occurs TimerFire ms The time spent executing timer-triggered handlers XHRReadyStateChange ms The time spent handling handling changes to the ready state of XMLHTTPRequest's
  • 6. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 6 2) Chrome Tracing Metrics Name Unit Description Mean Frame Time ms Average time taken to render each frame 3) Request Animation Frame Metrics Name Unit Description droppedFrameCount count The number of frames produced by the GPU were over 16.6ms apart numFramesSentToScreen count The number of frames the GPU sent to the screen numAnimationFrames count Total number of times requestAnimationFrame was called 4) Runtime PerfMetrics Name Unit Description ExpensiveEventHandlers count The number of event handlers that took more than 16ms ExpensivePaints count The number of paints that took more than 16ms GCInsideAnimation count The number of times Garbage was called during the scroll Layers count The number of layers used for rendering NodePerLayout count The number of nodes that need to be updated during layout PaintedArea sq.pixels The amount of space painted during paints
  • 7. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 7 5) NavTimingMetrics These are calculated from window.performance.timing API in NavTimingMetrics. For more information about each metric, please the W3C Specification Each of these numbers in the metrics indicates the time elapsed after the previous event. The order of the event flow is Name Unit Description connectStart ms The time immediately before the user agent started establishing the connection to the server to retrieve the document connectEnd ms The time immediately after the user agent finished establishing the connection to the server to retrieve the document domComplete ms The time immediately before the user agent set the document's readiness to complete domContentLoadedEventStart ms The time immediately before the user agent
  • 8. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 8 Name Unit Description fired the DOMContentLoaded event domContentLoadedEventEnd ms The time immediately after the document's DOMContentLoaded event completed domInteractive ms The time immediately before the user agent set the document's readiness to interactive domLoading ms The time immediately before the user agent set the document's readiness to loading domainLookupStart ms The time immediately before the user agent started the domain name lookup for the document domainLookupEnd ms The time immediately after the user agent finishes the domain name lookup for the document fetchStart ms The time immediately before the user agent checks caches for resources OR starts fetching resources firstPaint ms The time immediately before the first paint occurred loadEventStart ms The time immediately before the load event was fired for the document loadEventEnd ms The time the load event for the document completed requestStart ms The time immediately before the user agent started requesting the document from the server responseStart ms The time immediately after the user agent received the first byte of the server's response to the document request
  • 9. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 9 Browser-perf metrics for XYZ Weekly Build Daily Build Dev build Chrome Timeline Metrics CompositeLayers DecodeImage EvaluateScript   EventDispatch   FireAnimationFrame FunctionCall GCEvent   Layout    Paint PaintSetup ParseHTML    Program RecalculateStyles    TimerFire XHRReadyStateChange    Chrome Tracing Metrics Mean Frame Time Request Animation Frame Metrics droppedFrameCount numFramesSentToScreen numAnimationFrames Runtime PerfMetrics ExpensiveEventHandlers   ExpensivePaints GCInsideAnimation Layers NodePerLayout   PaintedArea NavTimingMetrics connectStart connectEnd domComplete    domContentLoadedEventStart domContentLoadedEventEnd domInteractive    domLoading domainLookupStart domainLookupEnd fetchStart   firstPaint   loadEventStart loadEventEnd    requestStart responseStart   
  • 10. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 10 Approach to install/incorporate Browser-Perf/Perf-Jankie 1) Total installations required a. Browser-perf b. Perf-jankir c. Selenium d. Selenium Drivers for Chrome e. Selenium Drivers for IE Note: Selenium comes with Safari and Firefox drivers built-in. 2) Steps for Installation a. Click here for the step by step Instructions for browser-perf/Selenium and the Selenium drivers b. Perfjankie can be used as a node module, from the command line, or as a Grunt task and can be installed from npm using, npm install perfjankie (https://github.com/axemclion/perfjankie) 3) Configuration options for Perf-Jankie in GruntJS Click here for all the list of options Here below is an example of a GruntJS configuration Option for PerfJankie
  • 11. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 11 perfjankie: { options: { suite: 'perfSlides - Performance Analysis', urls: ['http://localhost:8080'] }, local: { options: { selenium: 'http://localhost:4444/wd/hub', browsers: 'chrome', couch: { server: 'http://localhost:5984', username: 'admin_user', pwd: 'admin_pass', database: 'perfslides', updateSite: true } } }, remote: { options: { repeat: 3, selenium: { hostname: "ondemand.saucelabs.com", port: "80", user: process.env.SAUCE_USERNAME, pwd: process.env.SAUCE_ACCESSKEY }, browsers: [{ browserName: 'chrome', version: 34 }], couch: { server: 'http://axemclion.cloudant.com', username: process.env.COUCH_USER, pwd: process.env.COUCH_PWD, database: 'perfslides', updateSite: true } } } }
  • 12. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 12
  • 13. XYZ – Making FEP testing a part of C.I. (Browser-Perf/Perfjankie) 13 References 1. http://4waisenkinder.de/blog/2013/12/22/how-to-measure-frontend-performance-with- phantomas-and-grunt/ 2. http://aaron.jorb.in/blog/2012/07/automating-your-front-end-development-workflow/ 3. http://blog.maxcdn.com/behind-scenes-tools-maxcdn-com/ 4. http://blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/ 5. http://calendar.perfplanet.com/2013/phantomas/ 6. http://embersherpa.com/articles/introduction-to-ember-app-kit/ 7. http://fourword.fourkitchens.com/article/automated-frontend-tools 8. http://fourword.fourkitchens.com/article/performance-design-budget-and-test 9. http://internetmarketing-readme.pricemaniacs.com/category/website-performance/ 10. http://isobar-idev.github.io/code-standards/ 11. http://jeremyckahn.github.io/blog/2012/07/01/treating-javascript-like-a-30-year-old- language/ 12. http://nparashuram.com/perfslides/ 13. http://rupl.github.io/frontend-ops 14. http://rupl.github.io/frontend-perf 15. http://rupl.github.io/frontend-testing 16. http://spy-js.com/why.html 17. http://updates.html5rocks.com/2013/11/The-Landscape-Of-Front-end-Development- Automation-Slides 18. http://www.slideshare.net/ArtemGovorov/spyjs 19. http://www.smashingmagazine.com/2013/06/11/front-end-ops/ 20. https://austin2014.drupal.org/session/automated-frontend-testing 21. https://gist.github.com/axemclion/8620794 22. https://github.com/axemclion/browser-perf 23. https://github.com/axemclion/perfjankie/ 24. https://hacks.mozilla.org/2012/12/fantastic-front-end-performance-part-1-concatenate- compress-cache-a-node-js-holiday-season-part-4/ 25. https://www.npmjs.org/package/browser-perf 26. https://github.com/marcelduran/webpagetest-api