diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 7487551a7..5a36541ef 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -50,6 +50,4 @@ jobs: run: xvfb-run node test/runWithoutCli.js - name: Run tests with CruX run: bin/sitespeed.js -b chrome -n 1 --crux.key ${{ secrets.CRUX_KEY }} --xvfb https://www.sitespeed.io - - name: Run tests on WebPageTest - run: bin/sitespeed.js -b chrome -n 2 --summaryDetail --browsertime.chrome.timeline https://www.sitespeed.io/ --webpagetest.key ${{ secrets.WPT_KEY }} --xvfb \ No newline at end of file diff --git a/lib/cli/cli.js b/lib/cli/cli.js index f04536b97..c6dc2e1c8 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -19,7 +19,6 @@ const matrixPlugin = require('../plugins/matrix/index'); const browsertimeConfig = require('../plugins/browsertime/index').config; const metricsConfig = require('../plugins/metrics/index').config; -const webPageTestConfig = require('../plugins/webpagetest/index').config; const slackConfig = require('../plugins/slack/index').config; const htmlConfig = require('../plugins/html/index').config; @@ -1058,65 +1057,6 @@ module.exports.parseCommandLine = function parseCommandLine() { 'Add/change/remove filters for metrics. If you want to send all metrics, use: *+ . If you want to remove all current metrics and send only the coach score: *- coach.summary.score.*', group: 'Metrics' }) - /* - WebPageTest cli options - */ - .option('webpagetest.host', { - default: webPageTestConfig.host, - describe: 'The domain of your WebPageTest instance.', - group: 'WebPageTest' - }) - .option('webpagetest.key', { - describe: 'The API key for you WebPageTest instance.', - group: 'WebPageTest' - }) - .option('webpagetest.location', { - describe: 'The location for the test', - default: webPageTestConfig.location, - group: 'WebPageTest' - }) - .option('webpagetest.connectivity', { - describe: 'The connectivity for the test.', - default: webPageTestConfig.connectivity, - group: 'WebPageTest' - }) - .option('webpagetest.runs', { - describe: 'The number of runs per URL.', - default: webPageTestConfig.runs, - group: 'WebPageTest' - }) - .option('webpagetest.custom', { - describe: - 'Execute arbitrary Javascript at the end of a test to collect custom metrics.', - group: 'WebPageTest' - }) - .option('webpagetest.file', { - describe: 'Path to a script file', - group: 'WebPageTest' - }) - .option('webpagetest.script', { - describe: 'The WebPageTest script as a string.', - group: 'WebPageTest' - }) - .option('webpagetest.includeRepeatView', { - describe: 'Do repeat or single views', - type: 'boolean', - default: false, - group: 'WebPageTest' - }) - .option('webpagetest.private', { - describe: 'Wanna keep the runs private or not', - type: 'boolean', - default: true, - group: 'WebPageTest' - }) - .option('webpagetest.timeline', { - describe: - 'Activates Chrome tracing and get the devtools.timeline (only works for Chrome).', - type: 'boolean', - default: false, - group: 'WebPageTest' - }) /** Slack options */ @@ -1534,7 +1474,7 @@ module.exports.parseCommandLine = function parseCommandLine() { explicitOptions = merge(explicitOptions, config); } - if (argv.webpagetest.custom) { + if (argv.webpagetest && argv.webpagetest.custom) { argv.webpagetest.custom = fs.readFileSync( path.resolve(argv.webpagetest.custom), { diff --git a/lib/plugins/webpagetest/aggregator.js b/lib/plugins/webpagetest/aggregator.js deleted file mode 100644 index 8ec69494d..000000000 --- a/lib/plugins/webpagetest/aggregator.js +++ /dev/null @@ -1,179 +0,0 @@ -'use strict'; - -const forEach = require('lodash.foreach'); - -const metrics = ['TTFB', 'render', 'fullyLoaded', 'SpeedIndex']; - -class Aggregator { - constructor(statsHelpers, log) { - this.statsHelpers = statsHelpers; - this.log = log; - this.timingStats = {}; - this.assetStats = {}; - this.customStats = {}; - this.assetGroups = {}; - this.timingGroups = {}; - this.customGroups = {}; - this.connectivity; - this.location; - } - - addToAggregate(group, wptData, connectivity, location, wptOptions) { - const log = this.log; - const statsHelpers = this.statsHelpers; - // TODO this will break if we run multiple locations/connectivity per run - this.location = location; - this.connectivity = connectivity; - - if (this.assetGroups[group] === undefined) { - this.assetGroups[group] = {}; - this.timingGroups[group] = {}; - this.customGroups[group] = {}; - } - - forEach(wptData.data.runs, (run, index) => { - // TODO remove this if check once issue with 0 stats, but 200 response is fixed upstream. - // It seems to be cases when users tries to navigate away before fullyLoaded has happened - const speedIndex = run.firstView.SpeedIndex || 0; - if (wptOptions && wptOptions.video && speedIndex <= 0) { - log.error( - `Incomplete first view data for WPT test ${ - wptData.data.id - }, run ${index}` - ); - return false; - } - - forEach(run, (viewData, viewName) => { - forEach(metrics, metric => - statsHelpers.pushGroupStats( - this.timingStats, - this.timingGroups[group], - [viewName, metric], - viewData[metric] - ) - ); - - forEach(viewData.userTimes, (timingData, timingName) => - statsHelpers.pushGroupStats( - this.timingStats, - this.timingGroups[group], - [viewName, timingName], - timingData - ) - ); - - forEach(viewData.breakdown, (contentType, typeName) => - forEach(['requests', 'bytes'], property => - statsHelpers.pushGroupStats( - this.assetStats, - this.assetGroups[group], - [viewName, typeName, property], - contentType[property] - ) - ) - ); - - forEach(viewData.custom, metricName => { - if (!isNaN(viewData[metricName]) && viewData[metricName] !== null) { - // https://github.com/sitespeedio/sitespeed.io/issues/2985 - if ( - Array.isArray(viewData[metricName]) && - viewData[metricName].length === 0 - ) { - log.debug('Empty array for ' + metricName); - } else { - statsHelpers.pushGroupStats( - this.customStats, - this.customGroups[group], - [viewName, 'custom', metricName], - viewData[metricName] - ); - } - } - }); - }); - }); - } - - summarize() { - const summary = { - groups: { - total: { - timing: this.summarizePerTimingType(this.timingStats), - asset: this.summarizePerAssetType(this.assetStats), - custom: this.summarizePerCustomType(this.customStats) - } - } - }; - - for (let group of Object.keys(this.timingGroups)) { - if (!summary.groups[group]) summary.groups[group] = {}; - summary.groups[group].timing = this.summarizePerTimingType( - this.timingGroups[group] - ); - } - for (let group of Object.keys(this.assetGroups)) { - if (!summary.groups[group]) summary.groups[group] = {}; - summary.groups[group].asset = this.summarizePerAssetType( - this.assetGroups[group] - ); - } - if (this.customGroups) { - for (let group of Object.keys(this.customGroups)) { - if (!summary.groups[group]) summary.groups[group] = {}; - summary.groups[group].custom = this.summarizePerCustomType( - this.customGroups[group] - ); - } - } - return summary; - } - - summarizePerAssetType(type) { - const statsHelpers = this.statsHelpers; - const summary = {}; - forEach(type, (view, viewName) => - forEach(view, (contentType, contentTypeName) => - forEach(contentType, (stats, propertyName) => - statsHelpers.setStatsSummary( - summary, - [viewName, 'breakdown', contentTypeName, propertyName], - stats - ) - ) - ) - ); - return summary; - } - - summarizePerTimingType(type) { - const statsHelpers = this.statsHelpers; - const summary = {}; - forEach(type, (view, viewName) => - forEach(view, (stats, name) => - statsHelpers.setStatsSummary(summary, [viewName, name], stats) - ) - ); - return summary; - } - - summarizePerCustomType(type) { - const statsHelpers = this.statsHelpers; - const summary = {}; - forEach(type, (view, viewName) => - forEach(view, (metricName, name) => - forEach(metricName, (stats, propertyName) => { - statsHelpers.setStatsSummary( - summary, - [viewName, name, propertyName], - stats - ); - }) - ) - ); - return summary; - } -} - -module.exports = Aggregator; diff --git a/lib/plugins/webpagetest/analyzer.js b/lib/plugins/webpagetest/analyzer.js deleted file mode 100644 index 61c0a4672..000000000 --- a/lib/plugins/webpagetest/analyzer.js +++ /dev/null @@ -1,216 +0,0 @@ -'use strict'; - -const clone = require('lodash.clonedeep'); -const get = require('lodash.get'); -const WebPageTest = require('webpagetest'); -const { promisify } = require('util'); - -module.exports = { - async analyzeUrl(url, storageManager, log, wptOptions) { - const wptClient = new WebPageTest(wptOptions.host, wptOptions.key); - wptOptions.firstViewOnly = !wptOptions.includeRepeatView; - let urlOrScript = url; - - log.info('Sending url ' + url + ' to test on ' + wptOptions.host); - if (wptOptions.script) { - urlOrScript = wptOptions.script.split('{{{URL}}}').join(url); - } - - // Setup WebPageTest methods - const runTest = promisify(wptClient.runTest.bind(wptClient)); - const getHARData = promisify(wptClient.getHARData.bind(wptClient)); - const getScreenshotImage = promisify( - wptClient.getScreenshotImage.bind(wptClient) - ); - const getWaterfallImage = promisify( - wptClient.getWaterfallImage.bind(wptClient) - ); - const getChromeTraceData = promisify( - wptClient.getChromeTraceData.bind(wptClient) - ); - - // See https://github.com/sitespeedio/sitespeed.io/issues/1367 - const options = clone(wptOptions); - - try { - const data = await runTest(urlOrScript, options); - const id = data.data.id; - log.info('Got %s analysed with id %s from %s', url, id, options.host); - log.verbose('Got JSON from WebPageTest :%:2j', data); - - // Something failed with WebPageTest but how should we handle that? - // Also, this doesn't contain every failure case e.g. successfulFV/RVRuns=0 we should include it - if (data.statusCode !== 200) { - log.error( - 'The test got status code %s from WebPageTest with %s. Checkout %s to try to find the original reason.', - data.statusCode, - data.statusText, - get(data, 'data.summary') - ); - } else { - log.info('WebPageTest result at: ' + data.data.summary); - } - - if ( - data.data.median && - data.data.median.firstView && - data.data.median.firstView.numSteps && - data.data.median.firstView.numSteps > 1 - ) { - // MULTISTEP - log.info( - "Sitespeed.io doesn't support multi step WebPageTest scripting at the moment. Either use sitespeed.io scripting (https://www.sitespeed.io/documentation/sitespeed.io/scripting/) or help us implement support for WebPageTest in https://github.com/sitespeedio/sitespeed.io/issues/2620" - ); - return; - } - - // if WPT test has been required with the timeline and chrome, gather additional infos - // /!\ this mutates data - if ( - data.statusCode === 200 && - data.data.median.firstView && - 'chromeUserTiming' in data.data.median.firstView - ) { - let chromeUserTiming = {}; - // from "chromeUserTiming": [{"name": "unloadEventStart","time": 0}, …] - // to "chromeUserTiming":{unloadEventStart:0, …} - data.data.median.firstView.chromeUserTiming.forEach(measure => { - chromeUserTiming[measure.name] = measure.time; - }); - data.data.median.firstView.chromeUserTiming = chromeUserTiming; - log.verbose( - 'detected chromeUserTiming and restructured them to :%:2j', - chromeUserTiming - ); - } - - const promises = []; - let har; - promises.push( - getHARData(id, {}) - .then(theHar => (har = theHar)) - .catch(e => - log.warn( - `Couldn't get HAR for id ${id} ${e.message} (url = ${url})` - ) - ) - ); - - const traces = {}; - const views = ['firstView']; - if (!wptOptions.firstViewOnly) { - views.push('repeatView'); - } - - for (const view of views) { - for (let run = 1; run <= wptOptions.runs; run++) { - // The WPT API wrapper mutates the options object, why ohh why?!?!?! - const repeatView = view === 'repeatView'; - - promises.push( - getScreenshotImage(id, { - run, - repeatView - }) - .then(img => { - return storageManager.writeDataForUrl( - img, - 'wpt-' + run + '-' + view + '.png', - url, - 'screenshots' - ); - }) - .catch(e => { - log.warn( - `Couldn't get screenshot for id ${id}, run ${run} from the WebPageTest API with the error ${ - e.message - } (url = ${url})` - ); - }) - ); - - promises.push( - getWaterfallImage(id, { - run, - repeatView - }) - .then(img => - storageManager.writeDataForUrl( - img, - 'wpt-waterfall-' + run + '-' + view + '.png', - url, - 'waterfall' - ) - ) - .catch(e => - log.warn( - `Couldn't get waterfall for id ${id}, run ${run} from the WebPageTest API with the error: ${ - e.message - } (url = ${url})` - ) - ) - ); - - promises.push( - getWaterfallImage(id, { - run, - chartType: 'connection', - repeatView - }) - .then(img => - storageManager.writeDataForUrl( - img, - 'wpt-waterfall-connection' + run + '-' + view + '.png', - url, - 'waterfall' - ) - ) - .catch(e => - log.warn( - `Couldn't get connection waterfall for id ${id}, run ${run} from the WebPageTest API with the error: ${ - e.message - } (url = ${url})` - ) - ) - ); - - if (wptOptions.timeline) { - promises.push( - getChromeTraceData(id, { - run, - repeatView - }) - .then( - trace => (traces['trace-' + run + '-wpt-' + view] = trace) - ) - .catch(e => - log.warn( - `Couldn't get chrome trace for id ${id}, run ${run} from the WebPageTest API with the error: ${ - e.message - } (url = ${url})` - ) - ) - ); - } - } - } - - await Promise.all(promises); - const myResult = { - data: data.data, - har - }; - myResult.trace = traces; - return myResult; - } catch (e) { - if (e.error && e.error.code === 'TIMEOUT') { - log.error( - 'The test for WebPageTest timed out. Is your WebPageTest agent overloaded with work? You can try to increase how long time to wait for tests to finish by configuring --webpagetest.timeout to a higher value (default is 600 and is in seconds). ', - e - ); - } else { - log.error('Could not run test for WebPageTest', e); - } - } - } -}; diff --git a/lib/plugins/webpagetest/index.js b/lib/plugins/webpagetest/index.js deleted file mode 100644 index 5be0d67a2..000000000 --- a/lib/plugins/webpagetest/index.js +++ /dev/null @@ -1,297 +0,0 @@ -'use strict'; - -const urlParser = require('url'); -const analyzer = require('./analyzer'); -const Aggregator = require('./aggregator'); -const forEach = require('lodash.foreach'); -const merge = require('lodash.merge'); -const get = require('lodash.get'); -const path = require('path'); -const WebPageTest = require('webpagetest'); -const fs = require('fs'); - -// These are the metrics we want to save in -// the time series database per pageSummary -const DEFAULT_PAGE_SUMMARY_METRICS = [ - 'data.median.*.SpeedIndex', - 'data.median.*.render', - 'data.median.*.TTFB', - 'data.median.*.loadTime', - 'data.median.*.fullyLoaded', - 'data.median.*.userTimes.*', - // Use bytesIn to collect data for Opera Mini & UC Mini - 'data.median.*.bytesIn', - 'data.median.*.breakdown.*.requests', - 'data.median.*.breakdown.*.bytes', - 'data.median.*.requestsFull', - 'data.median.*.custom.*', - 'data.median.*.domContentLoadedEventEnd', - 'data.median.*.fullyLoadedCPUms', - 'data.median.*.docCPUms', - 'data.median.*.score_cache', - 'data.median.*.score_gzip', - 'data.median.*.score_combine', - 'data.median.*.score_minify', - 'data.median.*.domElements', - 'data.median.*.lastVisualChange', - 'data.median.*.visualComplete85', - 'data.median.*.visualComplete90', - 'data.median.*.visualComplete95', - 'data.median.*.visualComplete99', - 'data.median.*.FirstInteractive', - 'data.median.*.LastInteractive', - 'data.median.*.TimeToInteractive', - // hero timings - 'data.median.*.heroElementTimes.*', - // available only when --timeline option is required for chrome - 'data.median.*.chromeUserTiming.*', - 'data.median.*.cpuTimes.*', - // Cherry picked metrics for standard deviation - 'data.standardDeviation.*.SpeedIndex', - 'data.standardDeviation.*.render', - 'data.standardDeviation.*.TTFB', - 'data.standardDeviation.*.loadTime', - 'data.standardDeviation.*.fullyLoaded', - 'data.standardDeviation.*.userTimes.*', - 'data.standardDeviation.*.lastVisualChange', - 'data.standardDeviation.*.visualComplete85', - 'data.standardDeviation.*.visualComplete90', - 'data.standardDeviation.*.visualComplete95', - 'data.standardDeviation.*.visualComplete99', - 'data.standardDeviation.*.FirstInteractive', - 'data.standardDeviation.*.LastInteractive', - 'data.standardDeviation.*.TimeToInteractive', - 'data.standardDeviation.*.heroElementTimes.*' -]; - -// These are the metrics we want to save in -// the time series database per summary (per domain/test/group) -const DEFAULT_SUMMARY_METRICS = [ - 'timing.*.SpeedIndex', - 'timing.*.render', - 'timing.*.TTFB', - 'timing.*.fullyLoaded', - 'asset.*.breakdown.*.requests', - 'asset.*.breakdown.*.bytes', - 'custom.*.custom.*' -]; - -function addCustomMetric(result, filterRegistry) { - const customMetrics = get(result, 'data.median.firstView.custom'); - if (customMetrics) { - for (const customMetric of customMetrics) { - filterRegistry.addFilterForType( - 'data.median.*.' + customMetric, - 'webpagetest.pageSummary' - ); - } - } -} - -const defaultConfig = { - host: WebPageTest.defaultServer, - location: 'Dulles:Chrome', - connectivity: 'Cable', - runs: 3, - pollResults: 10, - timeout: 600, - includeRepeatView: false, - private: true, - aftRenderingTime: true, - video: true, - timeline: false -}; - -function isPublicWptHost(address) { - const host = /^(https?:\/\/)?([^/]*)/i.exec(address); - return host && host[2] === urlParser.parse(WebPageTest.defaultServer).host; -} - -module.exports = { - open(context, options) { - // The context holds help methods to setup what we need in plugin - // Get a log specificfor this plugin - this.log = context.intel.getLogger('sitespeedio.plugin.webpagetest'); - // Make will help you create messages that you will send on the queue - this.make = context.messageMaker('webpagetest').make; - // The aggregator helps you aggregate metrics per URL and/or domain - this.aggregator = new Aggregator(context.statsHelpers, this.log); - // The storagemanager helps you save file to disk - this.storageManager = context.storageManager; - // The filter registry decides which metrics that will be stored in the time/series db - this.filterRegistry = context.filterRegistry; - - this.options = merge({}, defaultConfig, options.webpagetest); - this.allOptions = options; - - if (get(this.options, 'ssio.domainsDashboard')) { - // that adds a lot of disk space need into graphite, so we keep it hidden for now - DEFAULT_PAGE_SUMMARY_METRICS.push( - 'data.median.firstView.domains.*.bytes', - 'data.median.firstView.domains.*.requests' - ); - } - - if (!this.options.key && isPublicWptHost(this.options.host)) { - throw new Error( - 'webpagetest.key needs to be specified when using the public WebPageTest server.' - ); - } - - // Register the type of metrics we want to have in the db - this.filterRegistry.registerFilterForType( - DEFAULT_PAGE_SUMMARY_METRICS, - 'webpagetest.pageSummary' - ); - this.filterRegistry.registerFilterForType( - DEFAULT_SUMMARY_METRICS, - 'webpagetest.summary' - ); - this.filterRegistry.registerFilterForType( - DEFAULT_SUMMARY_METRICS, - 'webpagetest.run' - ); - - this.pug = fs.readFileSync( - path.resolve(__dirname, 'pug', 'index.pug'), - 'utf8' - ); - }, - processMessage(message, queue) { - const filterRegistry = this.filterRegistry; - const make = this.make; - const wptOptions = this.options; - switch (message.type) { - // In the setup phase, register our pug file(s) in the HTML plugin - // by sending a message. This plugin uses the same pug for data - // per run and per page summary. - case 'sitespeedio.setup': { - // Tell other plugins that webpagetest will run - queue.postMessage(make('webpagetest.setup')); - // Add the HTML pugs - queue.postMessage( - make('html.pug', { - id: 'webpagetest', - name: 'WebPageTest', - pug: this.pug, - type: 'pageSummary' - }) - ); - queue.postMessage( - make('html.pug', { - id: 'webpagetest', - name: 'WebPageTest', - pug: this.pug, - type: 'run' - }) - ); - break; - } - - case 'browsertime.navigationScripts': { - this.log.info( - 'WebPageTest can only be used with URLs and not with scripting/multiple pages at the moment' - ); - break; - } - - // We got a URL that we should test - case 'url': { - const url = message.url; - let group = message.group; - return analyzer - .analyzeUrl(url, this.storageManager, this.log, wptOptions) - .then(result => { - addCustomMetric(result, filterRegistry); - if (result && result.trace) { - forEach(result.trace, (value, key) => { - queue.postMessage( - make('webpagetest.chrometrace', value, { - url, - group, - name: key + '.json' - }) - ); - }); - } - - if (result && result.har) { - queue.postMessage( - make('webpagetest.har', result.har, { url, group }) - ); - - queue.postMessage( - make('webpagetest.browser', { - browser: result.har.log.browser - }) - ); - } - - if (result && result.data) { - forEach(result.data.runs, (run, runKey) => - queue.postMessage( - make('webpagetest.run', run, { - url, - group, - runIndex: parseInt(runKey) - 1 - }) - ) - ); - } - if (result && result.data) { - const location = result.data.location - .replace(':', '-') - .replace(' ', '-') - .toLowerCase(); - // There's no connectivity setup in the default config for WPT, make sure we catch that - const connectivity = get( - result, - 'data.connectivity', - 'native' - ).toLowerCase(); - queue.postMessage( - make('webpagetest.pageSummary', result, { - url, - group, - location, - connectivity - }) - ); - this.aggregator.addToAggregate( - group, - result, - connectivity, - location, - wptOptions - ); - } - }) - .catch(err => { - this.log.error('Error creating WebPageTest result ', err); - queue.postMessage( - make('error', err, { - url - }) - ); - }); - } - - // All URLs are tested, now create summaries per page and domain/group - case 'sitespeedio.summarize': { - let summary = this.aggregator.summarize(); - if (summary && Object.keys(summary.groups).length > 0) { - for (let group of Object.keys(summary.groups)) { - queue.postMessage( - make('webpagetest.summary', summary.groups[group], { - connectivity: this.aggregator.connectivity, - location: this.aggregator.location, - group - }) - ); - } - } - } - } - }, - config: defaultConfig -}; diff --git a/lib/plugins/webpagetest/pug/index.pug b/lib/plugins/webpagetest/pug/index.pug deleted file mode 100644 index bd48eff3a..000000000 --- a/lib/plugins/webpagetest/pug/index.pug +++ /dev/null @@ -1,289 +0,0 @@ -mixin rowHeading(items) - thead - tr - each item in items - th= item - -mixin numberCell(title, number) - td.number(data-title=title)= number - -mixin sizeCell(title, size) - td.number(data-title=title, data-value= size)= h.size.format(size) - -- const wpt = pageInfo.data.webpagetest.run ? pageInfo.data.webpagetest.run : pageInfo.data.webpagetest.pageSummary.data.median -- const wptRoot = pageInfo.data.webpagetest.run ? pageInfo.data.webpagetest : pageInfo.data.webpagetest.pageSummary.data; -- const wptRun = runNumber? runNumber : 1 - -a -h2 WebPageTest -p.small Metrics and data collected using #{options.webpagetest.host}.  - if wptRoot.summary - a(href= wptRoot.summary) Check - |  the result page on WebPageTest. - else - a(href= pageInfo.data.webpagetest.run.firstView.pages.details) Check - |  the individual result page on WebPageTest. - -.row - .one-half.column - table - tr - th Metric - th Value - if wptRoot.from - tr - td From: - td !{wptRoot.from} - if wptRoot.id - tr - td Id: - td - a(href= wptRoot.summary) #{wptRoot.id} - if wptRoot.tester - tr - td Tester: - td #{wptRoot.tester} - if wpt.firstView - tr - td Browser: - td #{wpt.firstView.browser_name} - tr - td Version: - td #{wpt.firstView.browser_version} - tr - td Render (first view): - td #{wpt.firstView.render} - tr - td Speed Index (first view): - td #{wpt.firstView.SpeedIndex} - tr - td Last Visual Change (first view): - td #{wpt.firstView.lastVisualChange} - if wpt.repeatView - tr - td Render (repeat view): - td #{wpt.repeatView.render} - tr - td SpeedIndex (repeat view): - td #{wpt.repeatView.SpeedIndex} - tr - td Last Visual Change (repeat view): - td #{wpt.repeatView.lastVisualChange} - - .one-half.column - img.u-max-full-width(src='data/screenshots/wpt-' + wptRun + '-firstView.png', alt='Screenshot') - -.downloads - - const harEnding = options.gzipHAR ? '.har.gz' : '.har' - - const harName = 'data/webpagetest' + harEnding - - const harDownloadName = downloadName + '-webpagetest-' + harEnding - - a.button.button-download(href=harName, download=downloadName) Download HAR - if options.webpagetest.timeline - - const tracePath = 'data/trace-' + wptRun + '-wpt-firstView.json.gz' - a.button.button-download(href=tracePath, download=downloadName + 'trace-' + wptRun + '-wpt-firstView.json.gz') Download first view timeline - if wpt.repeatView - - const tracePathRepeat = 'data/trace-' + wptRun + '-wpt-repeatView.json.gz' - a.button.button-download(href=tracePathRepeat, download=downloadName + 'trace-' + wptRun + '-wpt-repeatView.json.gz') Download repeat view timeline - -each view in ['firstView', 'repeatView'] - - const median = wpt[view]; - if median - h2 #{view === 'firstView' ? 'First View': 'Repeat View'} - if options.webpagetest.video - a#visualmetrics - h3 Visual Metrics - .row - .one-half.column - table - tr - th(colspan='2') Visual Metrics - tr - td Render - +numberCell('Render', median.render) - tr - td Speed Index - +numberCell('SpeedIndex', median.SpeedIndex) - tr - td Visual Complete 85% - +numberCell('Visual Complete 85%', median.visualComplete85) - tr - td Last Visual Change - +numberCell('Last Visual Change', median.lastVisualChange) - if median.FirstInteractive - tr - td First Interactive - +numberCell('First Interactive', median.FirstInteractive) - if median.TimeToInteractive - tr - td Time To Interactive - +numberCell('Time To Interactive', median.TimeToInteractive) - if median.LastInteractive - tr - td Last Interactive - +numberCell('Last Interactive', median.LastInteractive) - - .one-half.column - if median.videoFrames - table - tr - th(colspan='2') Visual Progress - - let lastProgress = -1 - each frame in median.videoFrames - if lastProgress !== frame.VisuallyComplete - - lastProgress = frame.VisuallyComplete - tr - td #{frame.VisuallyComplete} - td #{frame.time} ms - else - p Missing WebPageTest visual metrics - - a#timingsandpagemetrics - h3 Timing and page metrics - .row - .one-half.column - table - th(colspan='2') Timings - tr - td TTFB - +numberCell('TTFB', median.TTFB) - if median.firstPaint - tr - td First paint - +numberCell('First Paint', median.firstPaint.toFixed(0)) - tr - td DOM loading - +numberCell('DOM loading', median.domLoading) - tr - td DOM interactive - +numberCell('DOM interactive', median.domInteractive) - tr - td Load Time - +numberCell('Load Time', median.loadTime) - tr - td Fully Loaded - +numberCell('Fully Loaded', median.fullyLoaded) - if (median.userTimes) - each value, key in median.userTimes - tr - td #{key} - +numberCell(key, value) - .one-half.column - table - tr - th(colspan='2') Page metrics - tr - td Requests - +numberCell('Requests', median.requestsFull) - tr - td Connections - +numberCell('Connections', median.connections) - tr - td DOM Elements - +numberCell('DOM Elements', median.domElements) - tr - td Total image size - +sizeCell('Image total', median.image_total) - tr - td bytesOut - +sizeCell('bytesOut', median.bytesOut) - tr - td bytesOutDoc - +sizeCell('bytesOutDoc', median.bytesOutDoc) - tr - td bytesIn - +sizeCell('bytesIn', median.bytesIn) - tr - td bytesInDoc - +sizeCell('bytesInDoc', median.bytesInDoc) - if median.certificate_bytes - tr - td Certificates size - +sizeCell('certificate_bytes', median.certificate_bytes) - - //- You need to have timeline or right trace categories to get the timings - //- that is default now on WebPageTest.org - if (median.chromeUserTiming) - .row - .column - table - tr - th(colspan='2') Chrome User Timings - //- The WebPageTest APi isn't concistent - //- Per run it is an array - if Array.isArray(median.chromeUserTiming) - each value in median.chromeUserTiming - tr - td #{value.name} - td #{value.time} - else - each value, key in median.chromeUserTiming - tr - td #{key} - td #{value} - h3 Waterfall - img.u-max-full-width(src='data/waterfall/wpt-waterfall-' + wptRun + '-' + view + '.png', alt='Waterfall view') - h3 Connection view - img.u-max-full-width(src='data/waterfall/wpt-waterfall-connection' + wptRun + '-' + view + '.png', alt='Connection view') - - h3 Request per content type - .responsive - if median.breakdown - table(data-sortable, id='contentSize') - +rowHeading(['Type', 'size', 'size uncompressed', 'requests']) - each value, contentType in median.breakdown - tr - td(data-title='Content Type') #{contentType} - +sizeCell('Size', median.breakdown[contentType].bytes) - +sizeCell('Size uncompressed', median.breakdown[contentType].bytesUncompressed) - +numberCell('Requests', median.breakdown[contentType].requests) - else - p Missing size data - - h3 Request and size per domain - .responsive - if median.domains - table(data-sortable, id='contentSizePerDomain') - +rowHeading(['Domain', 'size', 'requests', 'connections']) - each value, domain in median.domains - tr - td(data-title='Domain') #{domain} - +sizeCell('Size', median.domains[domain].bytes) - +numberCell('Requests', median.domains[domain].requests) - +numberCell('Connections', median.domains[domain].connections) - else - p Missing domain data - //- WebPageTest.org has custom metrics by default - if (median.custom) - h3 Custom metrics - .row - .column - table - each key in median.custom - tr - td #{key} - td.break #{median[key]} - //- Not a great fan of JSON with dots ... - if (median['lighthouse.BestPractices']) - h3 Lighthouse - .row - .column - table - tr - td Best Practices Score - td #{median['lighthouse.BestPractices']} - tr - td Estimated Input Latency - td #{median['lighthouse.Performance.estimated-input-latency']} - tr - td First Interactive - td #{median['lighthouse.Performance.first-interactive']} - tr - td Accessibility Score - td #{median['lighthouse.Accessibility']} - tr - td SEO Score - td #{median['lighthouse.SEO']} - tr - td Progressive Web App Score - td #{median['lighthouse.ProgressiveWebApp']} \ No newline at end of file diff --git a/test/fixtures/webpagetest.data.json b/test/fixtures/webpagetest.data.json deleted file mode 100644 index 64fa2bcf9..000000000 --- a/test/fixtures/webpagetest.data.json +++ /dev/null @@ -1,5635 +0,0 @@ -{ - "data": { - "id": "170901_04_feeeeae2f42a6ce0e3d15553a4549d56", - "url": "https://www.sitespeed.io", - "summary": - "https://www.webpagetest.org/results.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56", - "testUrl": "https://www.sitespeed.io", - "location": "Dulles:Chrome", - "from": "Dulles, VA - Chrome - Cable", - "connectivity": "Cable", - "bwDown": 5000, - "bwUp": 1000, - "latency": 28, - "plr": "0", - "mobile": 0, - "completed": 1504266738, - "tester": "VM2-03-192.168.10.71", - "testerDNS": "192.168.0.1", - "runs": { - "1": { - "firstView": { - "numSteps": 1, - "run": 1, - "tester": "VM2-03-192.168.10.71", - "URL": "https://www.sitespeed.io", - "loadTime": 640, - "TTFB": 273, - "bytesOut": 1840, - "bytesOutDoc": 1765, - "bytesIn": 113963, - "bytesInDoc": 110814, - "connections": 1, - "requests": [ - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/", - "responseCode": 200, - "load_ms": 88, - "ttfb_ms": 78, - "load_start": 195, - "bytesOut": 231, - "bytesIn": 8451, - "objectSize": 7999, - "expires": "Sat, 26 Aug 2017 13:24:22 GMT", - "cacheControl": "max-age=600", - "contentType": "text/html", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": -1, - "score_cdn": -1, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": 69, - "ssl_ms": 76, - "gzip_total": 7999, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": -1, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 32, - "connect_start": 32, - "connect_end": 101, - "ssl_start": 102, - "ssl_end": 178, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "VeryHigh", - "request_id": 1, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 1, - "http2_stream_dependency": 0, - "http2_stream_weight": 256, - "http2_stream_exclusive": 1, - "certificate_bytes": 5078, - "objectSizeUncompressed": 28279, - "full_url": "https://www.sitespeed.io/", - "score_progressive_jpeg": -1, - "load_end": 283, - "ttfb_start": 195, - "ttfb_end": 273, - "download_start": 273, - "download_end": 283, - "download_ms": 10, - "all_start": 32, - "all_end": 283, - "all_ms": 233, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /", - "upgrade-insecure-requests: 1", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: text/html", - "last-modified: Wed, 16 Aug 2017 06:44:02 GMT", - "cache-control: max-age=600", - "expires: Sat, 26 Aug 2017 13:24:22 GMT", - "content-encoding: gzip", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.252377,VS0,VE3", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 7999" - ] - }, - "index": 0, - "number": 1 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed-logo-2c.png", - "responseCode": 200, - "load_ms": 82, - "ttfb_ms": 82, - "load_start": 292, - "bytesOut": 88, - "bytesIn": 3891, - "objectSize": 3717, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3717, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 2, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 3, - "http2_stream_dependency": 0, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3717, - "full_url": "https://www.sitespeed.io/img/sitespeed-logo-2c.png", - "score_progressive_jpeg": -1, - "load_end": 374, - "ttfb_start": 292, - "ttfb_end": 374, - "download_start": 374, - "download_end": 374, - "download_ms": 0, - "all_start": 292, - "all_end": 374, - "all_ms": 82, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed-logo-2c.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:01 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.357392,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3717" - ] - }, - "index": 1, - "number": 2 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed.io-logo-large2.png", - "responseCode": 200, - "load_ms": 90, - "ttfb_ms": 66, - "load_start": 369, - "bytesOut": 43, - "bytesIn": 14186, - "objectSize": 14113, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 14113, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 4, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 5, - "http2_stream_dependency": 3, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 14113, - "full_url": - "https://www.sitespeed.io/img/sitespeed.io-logo-large2.png", - "score_progressive_jpeg": -1, - "load_end": 459, - "ttfb_start": 369, - "ttfb_end": 435, - "download_start": 435, - "download_end": 459, - "download_ms": 24, - "all_start": 369, - "all_end": 459, - "all_ms": 90, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed.io-logo-large2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:11 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421808,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 14113" - ] - }, - "index": 2, - "number": 3 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/pippi.png", - "responseCode": 200, - "load_ms": 109, - "ttfb_ms": 66, - "load_start": 369, - "bytesOut": 31, - "bytesIn": 11063, - "objectSize": 10990, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 10990, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 5, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 7, - "http2_stream_dependency": 5, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 10990, - "full_url": "https://www.sitespeed.io/img/pippi.png", - "score_progressive_jpeg": -1, - "load_end": 478, - "ttfb_start": 369, - "ttfb_end": 435, - "download_start": 435, - "download_end": 478, - "download_ms": 43, - "all_start": 369, - "all_end": 478, - "all_ms": 109, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/pippi.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:53 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421815,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 10990" - ] - }, - "index": 3, - "number": 4 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/logos/coach.png", - "responseCode": 200, - "load_ms": 192, - "ttfb_ms": 174, - "load_start": 369, - "bytesOut": 34, - "bytesIn": 16117, - "objectSize": 16044, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 16044, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 6, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 9, - "http2_stream_dependency": 7, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 16044, - "full_url": "https://www.sitespeed.io/img/logos/coach.png", - "score_progressive_jpeg": -1, - "load_end": 561, - "ttfb_start": 369, - "ttfb_end": 543, - "download_start": 543, - "download_end": 561, - "download_ms": 18, - "all_start": 369, - "all_end": 561, - "all_ms": 192, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/logos/coach.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:29 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421844,VS0,VE1", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 16044" - ] - }, - "index": 4, - "number": 5 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/browsertime-ff-chrome.png", - "responseCode": 200, - "load_ms": 173, - "ttfb_ms": 108, - "load_start": 370, - "bytesOut": 42, - "bytesIn": 34072, - "objectSize": 33999, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 33999, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 7, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 11, - "http2_stream_dependency": 9, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 33999, - "full_url": - "https://www.sitespeed.io/img/browsertime-ff-chrome.png", - "score_progressive_jpeg": -1, - "load_end": 543, - "ttfb_start": 370, - "ttfb_end": 478, - "download_start": 478, - "download_end": 543, - "download_ms": 65, - "all_start": 370, - "all_end": 543, - "all_ms": 173, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/browsertime-ff-chrome.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:50 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421859,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 33999" - ] - }, - "index": 5, - "number": 6 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/black-logo-120.png", - "responseCode": 200, - "load_ms": 191, - "ttfb_ms": 191, - "load_start": 370, - "bytesOut": 37, - "bytesIn": 1773, - "objectSize": 1678, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 1678, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 8, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 13, - "http2_stream_dependency": 11, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 1678, - "full_url": "https://www.sitespeed.io/img/black-logo-120.png", - "score_progressive_jpeg": -1, - "load_end": 561, - "ttfb_start": 370, - "ttfb_end": 561, - "download_start": 561, - "download_end": 561, - "download_ms": 0, - "all_start": 370, - "all_end": 561, - "all_ms": 191, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/black-logo-120.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:49 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.422116,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 1678" - ] - }, - "index": 6, - "number": 7 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/fastly2.png", - "responseCode": 200, - "load_ms": 187, - "ttfb_ms": 187, - "load_start": 380, - "bytesOut": 32, - "bytesIn": 2299, - "objectSize": 2227, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 2227, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 9, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 15, - "http2_stream_dependency": 13, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 2227, - "full_url": "https://www.sitespeed.io/img/fastly2.png", - "score_progressive_jpeg": -1, - "load_end": 567, - "ttfb_start": 380, - "ttfb_end": 567, - "download_start": 567, - "download_end": 567, - "download_ms": 0, - "all_start": 380, - "all_end": 567, - "all_ms": 187, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/fastly2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:00 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.426689,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2227" - ] - }, - "index": 7, - "number": 8 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/digital-ocean.png", - "responseCode": 200, - "load_ms": 111, - "ttfb_ms": 111, - "load_start": 462, - "bytesOut": 36, - "bytesIn": 3593, - "objectSize": 3211, - "expires": "Sat, 01 Sep 2018 05:57:51 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3211, - "image_save": 0, - "cache_time": 31514736, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 10, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 17, - "http2_stream_dependency": 15, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3211, - "full_url": "https://www.sitespeed.io/img/digital-ocean.png", - "score_progressive_jpeg": -1, - "load_end": 573, - "ttfb_start": 462, - "ttfb_end": 573, - "download_start": 573, - "download_end": 573, - "download_ms": 0, - "all_start": 462, - "all_end": 573, - "all_ms": 111, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/digital-ocean.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:57 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sat, 01 Sep 2018 05:57:51 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 21264", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.480931,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3211" - ] - }, - "index": 8, - "number": 9 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/ico/sitespeed.io.ico", - "responseCode": 200, - "load_ms": 41, - "ttfb_ms": 41, - "load_start": 649, - "bytesOut": 37, - "bytesIn": 3073, - "objectSize": 2875, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/x-icon", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 2875, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "High", - "request_id": 18, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 19, - "http2_stream_dependency": 0, - "http2_stream_weight": 220, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 6518, - "full_url": "https://www.sitespeed.io/img/ico/sitespeed.io.ico", - "score_progressive_jpeg": -1, - "load_end": 690, - "ttfb_start": 649, - "ttfb_end": 690, - "download_start": 690, - "download_end": 690, - "download_ms": 0, - "all_start": 649, - "all_end": 690, - "all_ms": 41, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/ico/sitespeed.io.ico", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/x-icon", - "last-modified: Wed, 16 Aug 2017 06:42:22 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "content-encoding: gzip", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.668237,VS0,VE0", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2875" - ] - }, - "index": 9, - "number": 10 - } - ], - "requestsFull": 10, - "requestsDoc": 9, - "responses_200": 10, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 882, - "fullyLoaded": 690, - "cached": 0, - "docTime": 640, - "domTime": 0, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": 100, - "score_compress": 100, - "score_etags": -1, - "gzip_total": 10874, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 85979, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 1, - "aft": 0, - "domElements": 250, - "pageSpeedVersion": "1.9", - "title": - "Sitespeed.io - Welcome to the wonderful world of Web Performance", - "titleTime": 542, - "loadEventStart": 617, - "loadEventEnd": 631, - "domContentLoadedEventStart": 361, - "domContentLoadedEventEnd": 361, - "lastVisualChange": 882, - "browser_name": "Google Chrome", - "browser_version": "60.0.3112.78", - "server_count": 4, - "server_rtt": 69, - "base_page_cdn": "Fastly", - "adult_site": 0, - "eventName": "Step 1", - "fixed_viewport": 1, - "score_progressive_jpeg": -1, - "firstPaint": 579, - "docCPUms": 1093.75, - "fullyLoadedCPUms": 1703.125, - "docCPUpct": 74, - "fullyLoadedCPUpct": 30, - "isResponsive": -1, - "browser_process_count": 10, - "browser_main_memory_kb": 63616, - "browser_other_private_memory_kb": 70408, - "browser_working_set_kb": 134024, - "domInteractive": 360, - "domLoading": 275, - "base_page_ttfb": 273, - "visualComplete": 900, - "SpeedIndex": 900, - "certificate_bytes": 5078, - "date": 1504266735, - "userTime.logoTime": 617, - "userTimes": { - "logoTime": 617 - }, - "userTime": 617, - "custom": ["Colordepth", "Dpi", "Images", "Resolution"], - "Colordepth": 24, - "Dpi": "{\"dppx\":1,\"dpcm\":37.79527559055118,\"dpi\":96}", - "Images": - "[{\"url\":\"https://www.sitespeed.io/img/sitespeed-logo-2c.png\",\"width\":162,\"height\":50,\"naturalWidth\":324,\"naturalHeight\":100},{\"url\":\"https://www.sitespeed.io/img/sitespeed.io-logo-large2.png\",\"width\":188,\"height\":200,\"naturalWidth\":375,\"naturalHeight\":400},{\"url\":\"https://www.sitespeed.io/img/pippi.png\",\"width\":180,\"height\":151,\"naturalWidth\":360,\"naturalHeight\":303},{\"url\":\"https://www.sitespeed.io/img/logos/coach.png\",\"width\":155,\"height\":180,\"naturalWidth\":376,\"naturalHeight\":438},{\"url\":\"https://www.sitespeed.io/img/browsertime-ff-chrome.png\",\"width\":180,\"height\":162,\"naturalWidth\":668,\"naturalHeight\":600},{\"url\":\"https://www.sitespeed.io/img/black-logo-120.png\",\"width\":60,\"height\":64,\"naturalWidth\":120,\"naturalHeight\":128},{\"url\":\"https://www.sitespeed.io/img/fastly2.png\",\"width\":71,\"height\":32,\"naturalWidth\":142,\"naturalHeight\":64},{\"url\":\"https://www.sitespeed.io/img/digital-ocean.png\",\"width\":152,\"height\":26,\"naturalWidth\":603,\"naturalHeight\":103}]", - "Resolution": - "{\"absolute\":{\"height\":1200,\"width\":1920},\"available\":{\"height\":1160,\"width\":1920}}", - "testTiming": { - "ExtensionStart": 2505, - "ExtensionBlank": 251, - "WaitForIdle": 2788, - "MeasureStep": 2874, - "ProcessRequests": 6, - "RunOptimizationChecks": 0, - "ProcessVideo": 170, - "SaveResult": 238, - "RunTest": 9160, - "UploadImages": 1, - "AllRunsDuration": 9000 - }, - "visualComplete85": 900, - "visualComplete90": 900, - "visualComplete95": 900, - "visualComplete99": 900, - "step": 1, - "effectiveBps": 273292, - "effectiveBpsDoc": 301945, - "smallImageCount": 5, - "bigImageCount": 0, - "maybeCaptcha": 0, - "pages": { - "details": - "https://www.webpagetest.org/details.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "checklist": - "https://www.webpagetest.org/performance_optimization.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "breakdown": - "https://www.webpagetest.org/breakdown.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "domains": - "https://www.webpagetest.org/domains.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "screenShot": - "https://www.webpagetest.org/screen_shot.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1" - }, - "thumbnails": { - "waterfall": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_waterfall_thumb.png", - "checklist": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_optimization_thumb.png", - "screenShot": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_screen_thumb.png" - }, - "images": { - "waterfall": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_waterfall.png", - "connectionView": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_connection.png", - "checklist": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_optimization.png", - "screenShot": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&file=1_screen.jpg" - }, - "rawData": { - "headers": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_report.txt", - "pageData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_IEWPG.txt", - "requestsData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_IEWTR.txt", - "utilization": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_progress.csv" - }, - "videoFrames": [ - { - "time": 0, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_1&file=frame_0000.jpg", - "VisuallyComplete": 0 - }, - { - "time": 900, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_1&file=frame_0009.jpg", - "VisuallyComplete": 100 - } - ], - "domains": { - "www.sitespeed.io": { - "bytes": 98518, - "requests": 10, - "cdn_provider": "Fastly", - "connections": 1 - } - }, - "breakdown": { - "html": { - "color": [130, 181, 252], - "bytes": 8451, - "bytesUncompressed": 28279, - "requests": 1 - }, - "js": { - "color": [254, 197, 132], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "css": { - "color": [178, 234, 148], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "image": { - "color": [196, 154, 232], - "bytes": 90067, - "bytesUncompressed": 92497, - "requests": 9 - }, - "flash": { - "color": [45, 183, 193], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "font": { - "color": [255, 82, 62], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "other": { - "color": [196, 196, 196], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - } - } - } - }, - "2": { - "firstView": { - "numSteps": 1, - "run": 2, - "tester": "VM1-08-192.168.10.66", - "URL": "https://www.sitespeed.io", - "loadTime": 585, - "TTFB": 276, - "bytesOut": 1840, - "bytesOutDoc": 1765, - "bytesIn": 113986, - "bytesInDoc": 110837, - "connections": 1, - "requests": [ - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/", - "responseCode": 200, - "load_ms": 79, - "ttfb_ms": 69, - "load_start": 207, - "bytesOut": 231, - "bytesIn": 8451, - "objectSize": 7999, - "expires": "Sat, 26 Aug 2017 13:24:22 GMT", - "cacheControl": "max-age=600", - "contentType": "text/html", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": -1, - "score_cdn": -1, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": 73, - "ssl_ms": 92, - "gzip_total": 7999, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": -1, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 28, - "connect_start": 28, - "connect_end": 101, - "ssl_start": 102, - "ssl_end": 194, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "VeryHigh", - "request_id": 1, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 1, - "http2_stream_dependency": 0, - "http2_stream_weight": 256, - "http2_stream_exclusive": 1, - "certificate_bytes": 5078, - "objectSizeUncompressed": 28279, - "full_url": "https://www.sitespeed.io/", - "score_progressive_jpeg": -1, - "load_end": 286, - "ttfb_start": 207, - "ttfb_end": 276, - "download_start": 276, - "download_end": 286, - "download_ms": 10, - "all_start": 28, - "all_end": 286, - "all_ms": 244, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /", - "upgrade-insecure-requests: 1", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: text/html", - "last-modified: Wed, 16 Aug 2017 06:44:02 GMT", - "cache-control: max-age=600", - "expires: Sat, 26 Aug 2017 13:24:22 GMT", - "content-encoding: gzip", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.433506,VS0,VE4", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 7999" - ] - }, - "index": 0, - "number": 1 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed-logo-2c.png", - "responseCode": 200, - "load_ms": 37, - "ttfb_ms": 35, - "load_start": 351, - "bytesOut": 88, - "bytesIn": 3891, - "objectSize": 3717, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3717, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 3, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 3, - "http2_stream_dependency": 0, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3717, - "full_url": "https://www.sitespeed.io/img/sitespeed-logo-2c.png", - "score_progressive_jpeg": -1, - "load_end": 388, - "ttfb_start": 351, - "ttfb_end": 386, - "download_start": 386, - "download_end": 388, - "download_ms": 2, - "all_start": 351, - "all_end": 388, - "all_ms": 37, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed-logo-2c.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:01 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.554140,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3717" - ] - }, - "index": 1, - "number": 2 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed.io-logo-large2.png", - "responseCode": 200, - "load_ms": 56, - "ttfb_ms": 35, - "load_start": 361, - "bytesOut": 43, - "bytesIn": 14186, - "objectSize": 14113, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 14113, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 4, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 5, - "http2_stream_dependency": 3, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 14113, - "full_url": - "https://www.sitespeed.io/img/sitespeed.io-logo-large2.png", - "score_progressive_jpeg": -1, - "load_end": 417, - "ttfb_start": 361, - "ttfb_end": 396, - "download_start": 396, - "download_end": 417, - "download_ms": 21, - "all_start": 361, - "all_end": 417, - "all_ms": 56, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed.io-logo-large2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:11 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.564020,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 14113" - ] - }, - "index": 2, - "number": 3 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/pippi.png", - "responseCode": 200, - "load_ms": 83, - "ttfb_ms": 62, - "load_start": 361, - "bytesOut": 31, - "bytesIn": 11063, - "objectSize": 10990, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 10990, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 5, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 7, - "http2_stream_dependency": 5, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 10990, - "full_url": "https://www.sitespeed.io/img/pippi.png", - "score_progressive_jpeg": -1, - "load_end": 444, - "ttfb_start": 361, - "ttfb_end": 423, - "download_start": 423, - "download_end": 444, - "download_ms": 21, - "all_start": 361, - "all_end": 444, - "all_ms": 83, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/pippi.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:53 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.564046,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 10990" - ] - }, - "index": 3, - "number": 4 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/logos/coach.png", - "responseCode": 200, - "load_ms": 112, - "ttfb_ms": 62, - "load_start": 361, - "bytesOut": 34, - "bytesIn": 16117, - "objectSize": 16044, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 16044, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 6, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 9, - "http2_stream_dependency": 7, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 16044, - "full_url": "https://www.sitespeed.io/img/logos/coach.png", - "score_progressive_jpeg": -1, - "load_end": 473, - "ttfb_start": 361, - "ttfb_end": 423, - "download_start": 423, - "download_end": 473, - "download_ms": 50, - "all_start": 361, - "all_end": 473, - "all_ms": 112, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/logos/coach.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:29 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.564068,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 16044" - ] - }, - "index": 4, - "number": 5 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/browsertime-ff-chrome.png", - "responseCode": 200, - "load_ms": 160, - "ttfb_ms": 112, - "load_start": 361, - "bytesOut": 42, - "bytesIn": 34072, - "objectSize": 33999, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 33999, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 7, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 11, - "http2_stream_dependency": 9, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 33999, - "full_url": - "https://www.sitespeed.io/img/browsertime-ff-chrome.png", - "score_progressive_jpeg": -1, - "load_end": 521, - "ttfb_start": 361, - "ttfb_end": 473, - "download_start": 473, - "download_end": 521, - "download_ms": 48, - "all_start": 361, - "all_end": 521, - "all_ms": 160, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/browsertime-ff-chrome.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:50 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.564085,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 33999" - ] - }, - "index": 5, - "number": 6 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/black-logo-120.png", - "responseCode": 200, - "load_ms": 164, - "ttfb_ms": 164, - "load_start": 361, - "bytesOut": 37, - "bytesIn": 1773, - "objectSize": 1678, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 1678, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 8, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 13, - "http2_stream_dependency": 11, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 1678, - "full_url": "https://www.sitespeed.io/img/black-logo-120.png", - "score_progressive_jpeg": -1, - "load_end": 525, - "ttfb_start": 361, - "ttfb_end": 525, - "download_start": 525, - "download_end": 525, - "download_ms": 0, - "all_start": 361, - "all_end": 525, - "all_ms": 164, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/black-logo-120.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:49 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.566527,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 1678" - ] - }, - "index": 6, - "number": 7 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/fastly2.png", - "responseCode": 200, - "load_ms": 140, - "ttfb_ms": 139, - "load_start": 390, - "bytesOut": 32, - "bytesIn": 2302, - "objectSize": 2227, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 2227, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 9, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 15, - "http2_stream_dependency": 13, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 2227, - "full_url": "https://www.sitespeed.io/img/fastly2.png", - "score_progressive_jpeg": -1, - "load_end": 530, - "ttfb_start": 390, - "ttfb_end": 529, - "download_start": 529, - "download_end": 530, - "download_ms": 1, - "all_start": 390, - "all_end": 530, - "all_ms": 140, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/fastly2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:00 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 6", - "x-timer: S1504266736.595851,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2227" - ] - }, - "index": 7, - "number": 8 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/digital-ocean.png", - "responseCode": 200, - "load_ms": 114, - "ttfb_ms": 114, - "load_start": 419, - "bytesOut": 36, - "bytesIn": 3584, - "objectSize": 3211, - "expires": "Sat, 01 Sep 2018 05:57:51 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3211, - "image_save": 0, - "cache_time": 31514735, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 10, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 17, - "http2_stream_dependency": 15, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3211, - "full_url": "https://www.sitespeed.io/img/digital-ocean.png", - "score_progressive_jpeg": -1, - "load_end": 533, - "ttfb_start": 419, - "ttfb_end": 533, - "download_start": 533, - "download_end": 533, - "download_ms": 0, - "all_start": 419, - "all_end": 533, - "all_ms": 114, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/digital-ocean.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:57 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sat, 01 Sep 2018 05:57:51 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 21265", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.621793,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3211" - ] - }, - "index": 8, - "number": 9 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/ico/sitespeed.io.ico", - "responseCode": 200, - "load_ms": 43, - "ttfb_ms": 42, - "load_start": 614, - "bytesOut": 37, - "bytesIn": 3073, - "objectSize": 2875, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/x-icon", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 2875, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "server_count": 4, - "server_rtt": 73, - "client_port": 63903, - "jpeg_scan_count": 0, - "priority": "High", - "request_id": 19, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 19, - "http2_stream_dependency": 0, - "http2_stream_weight": 220, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 6518, - "full_url": "https://www.sitespeed.io/img/ico/sitespeed.io.ico", - "score_progressive_jpeg": -1, - "load_end": 657, - "ttfb_start": 614, - "ttfb_end": 656, - "download_start": 656, - "download_end": 657, - "download_ms": 1, - "all_start": 614, - "all_end": 657, - "all_ms": 43, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/ico/sitespeed.io.ico", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/x-icon", - "last-modified: Wed, 16 Aug 2017 06:42:22 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "content-encoding: gzip", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17744-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.816682,VS0,VE0", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2875" - ] - }, - "index": 9, - "number": 10 - } - ], - "requestsFull": 10, - "requestsDoc": 9, - "responses_200": 10, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 789, - "fullyLoaded": 657, - "cached": 0, - "docTime": 585, - "domTime": 0, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": 100, - "score_compress": 100, - "score_etags": -1, - "gzip_total": 10874, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 85979, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 1, - "aft": 0, - "domElements": 250, - "pageSpeedVersion": "1.9", - "title": - "Sitespeed.io - Welcome to the wonderful world of Web Performance", - "titleTime": 571, - "loadEventStart": 569, - "loadEventEnd": 591, - "domContentLoadedEventStart": 360, - "domContentLoadedEventEnd": 360, - "lastVisualChange": 789, - "browser_name": "Google Chrome", - "browser_version": "60.0.3112.78", - "server_count": 4, - "server_rtt": 73, - "base_page_cdn": "Fastly", - "adult_site": 0, - "eventName": "Step 1", - "fixed_viewport": 1, - "score_progressive_jpeg": -1, - "firstPaint": 539, - "docCPUms": 859.375, - "fullyLoadedCPUms": 1421.875, - "docCPUpct": 65, - "fullyLoadedCPUpct": 26, - "isResponsive": -1, - "browser_process_count": 10, - "browser_main_memory_kb": 63972, - "browser_other_private_memory_kb": 69620, - "browser_working_set_kb": 133592, - "domInteractive": 360, - "domLoading": 279, - "base_page_ttfb": 276, - "visualComplete": 800, - "SpeedIndex": 800, - "certificate_bytes": 5078, - "date": 1504266736, - "userTime.logoTime": 569, - "userTimes": { - "logoTime": 569 - }, - "userTime": 569, - "custom": ["Colordepth", "Dpi", "Images", "Resolution"], - "Colordepth": 24, - "Dpi": "{\"dppx\":1,\"dpcm\":37.79527559055118,\"dpi\":96}", - "Images": - "[{\"url\":\"https://www.sitespeed.io/img/sitespeed-logo-2c.png\",\"width\":162,\"height\":50,\"naturalWidth\":324,\"naturalHeight\":100},{\"url\":\"https://www.sitespeed.io/img/sitespeed.io-logo-large2.png\",\"width\":188,\"height\":200,\"naturalWidth\":375,\"naturalHeight\":400},{\"url\":\"https://www.sitespeed.io/img/pippi.png\",\"width\":180,\"height\":151,\"naturalWidth\":360,\"naturalHeight\":303},{\"url\":\"https://www.sitespeed.io/img/logos/coach.png\",\"width\":155,\"height\":180,\"naturalWidth\":376,\"naturalHeight\":438},{\"url\":\"https://www.sitespeed.io/img/browsertime-ff-chrome.png\",\"width\":180,\"height\":162,\"naturalWidth\":668,\"naturalHeight\":600},{\"url\":\"https://www.sitespeed.io/img/black-logo-120.png\",\"width\":60,\"height\":64,\"naturalWidth\":120,\"naturalHeight\":128},{\"url\":\"https://www.sitespeed.io/img/fastly2.png\",\"width\":71,\"height\":32,\"naturalWidth\":142,\"naturalHeight\":64},{\"url\":\"https://www.sitespeed.io/img/digital-ocean.png\",\"width\":152,\"height\":26,\"naturalWidth\":603,\"naturalHeight\":103}]", - "Resolution": - "{\"absolute\":{\"height\":1200,\"width\":1920},\"available\":{\"height\":1160,\"width\":1920}}", - "testTiming": { - "ExtensionStart": 1710, - "ExtensionBlank": 138, - "WaitForIdle": 3795, - "MeasureStep": 2835, - "ProcessRequests": 6, - "RunOptimizationChecks": 0, - "ProcessVideo": 174, - "SaveResult": 235, - "RunTest": 9186, - "UploadImages": 4, - "AllRunsDuration": 9000 - }, - "visualComplete85": 800, - "visualComplete90": 800, - "visualComplete95": 800, - "visualComplete99": 800, - "step": 1, - "effectiveBps": 299175, - "effectiveBpsDoc": 358695, - "smallImageCount": 5, - "bigImageCount": 0, - "maybeCaptcha": 0, - "pages": { - "details": - "https://www.webpagetest.org/details.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=2", - "checklist": - "https://www.webpagetest.org/performance_optimization.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=2", - "breakdown": - "https://www.webpagetest.org/breakdown.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=2", - "domains": - "https://www.webpagetest.org/domains.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=2", - "screenShot": - "https://www.webpagetest.org/screen_shot.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=2" - }, - "thumbnails": { - "waterfall": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/2_waterfall_thumb.png", - "checklist": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/2_optimization_thumb.png", - "screenShot": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/2_screen_thumb.png" - }, - "images": { - "waterfall": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_waterfall.png", - "connectionView": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_connection.png", - "checklist": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_optimization.png", - "screenShot": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&file=2_screen.jpg" - }, - "rawData": { - "headers": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_report.txt", - "pageData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_IEWPG.txt", - "requestsData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_IEWTR.txt", - "utilization": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/2_progress.csv" - }, - "videoFrames": [ - { - "time": 0, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_2&file=frame_0000.jpg", - "VisuallyComplete": 0 - }, - { - "time": 800, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_2&file=frame_0008.jpg", - "VisuallyComplete": 100 - } - ], - "domains": { - "www.sitespeed.io": { - "bytes": 98512, - "requests": 10, - "cdn_provider": "Fastly", - "connections": 1 - } - }, - "breakdown": { - "html": { - "color": [130, 181, 252], - "bytes": 8451, - "bytesUncompressed": 28279, - "requests": 1 - }, - "js": { - "color": [254, 197, 132], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "css": { - "color": [178, 234, 148], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "image": { - "color": [196, 154, 232], - "bytes": 90061, - "bytesUncompressed": 92497, - "requests": 9 - }, - "flash": { - "color": [45, 183, 193], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "font": { - "color": [255, 82, 62], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "other": { - "color": [196, 196, 196], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - } - } - } - }, - "3": { - "firstView": { - "numSteps": 1, - "run": 3, - "tester": "VM3-09-192.168.10.88", - "URL": "https://www.sitespeed.io", - "loadTime": 653, - "TTFB": 315, - "bytesOut": 1840, - "bytesOutDoc": 1765, - "bytesIn": 113992, - "bytesInDoc": 110843, - "connections": 1, - "requests": [ - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/", - "responseCode": 200, - "load_ms": 78, - "ttfb_ms": 68, - "load_start": 247, - "bytesOut": 231, - "bytesIn": 8451, - "objectSize": 7999, - "expires": "Sat, 26 Aug 2017 13:24:22 GMT", - "cacheControl": "max-age=600", - "contentType": "text/html", - "contentEncoding": "gzip", - "type": 3, - "socket": 9, - "score_cache": -1, - "score_cdn": -1, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": 64, - "ssl_ms": 74, - "gzip_total": 7999, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": -1, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 78, - "connect_start": 78, - "connect_end": 142, - "ssl_start": 143, - "ssl_end": 217, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "VeryHigh", - "request_id": 1, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 1, - "http2_stream_dependency": 0, - "http2_stream_weight": 256, - "http2_stream_exclusive": 1, - "certificate_bytes": 5078, - "objectSizeUncompressed": 28279, - "full_url": "https://www.sitespeed.io/", - "score_progressive_jpeg": -1, - "load_end": 325, - "ttfb_start": 247, - "ttfb_end": 315, - "download_start": 315, - "download_end": 325, - "download_ms": 10, - "all_start": 78, - "all_end": 325, - "all_ms": 216, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /", - "upgrade-insecure-requests: 1", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: text/html", - "last-modified: Wed, 16 Aug 2017 06:44:02 GMT", - "cache-control: max-age=600", - "expires: Sat, 26 Aug 2017 13:24:22 GMT", - "content-encoding: gzip", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.239675,VS0,VE3", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 7999" - ] - }, - "index": 0, - "number": 1 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed-logo-2c.png", - "responseCode": 200, - "load_ms": 73, - "ttfb_ms": 70, - "load_start": 382, - "bytesOut": 88, - "bytesIn": 3891, - "objectSize": 3717, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3717, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 3, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 3, - "http2_stream_dependency": 0, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3717, - "full_url": "https://www.sitespeed.io/img/sitespeed-logo-2c.png", - "score_progressive_jpeg": -1, - "load_end": 455, - "ttfb_start": 382, - "ttfb_end": 452, - "download_start": 452, - "download_end": 455, - "download_ms": 3, - "all_start": 382, - "all_end": 455, - "all_ms": 73, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed-logo-2c.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:01 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377324,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3717" - ] - }, - "index": 1, - "number": 2 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed.io-logo-large2.png", - "responseCode": 200, - "load_ms": 111, - "ttfb_ms": 91, - "load_start": 388, - "bytesOut": 43, - "bytesIn": 14186, - "objectSize": 14113, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 14113, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 4, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 5, - "http2_stream_dependency": 3, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 14113, - "full_url": - "https://www.sitespeed.io/img/sitespeed.io-logo-large2.png", - "score_progressive_jpeg": -1, - "load_end": 499, - "ttfb_start": 388, - "ttfb_end": 479, - "download_start": 479, - "download_end": 499, - "download_ms": 20, - "all_start": 388, - "all_end": 499, - "all_ms": 111, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed.io-logo-large2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:11 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377330,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 14113" - ] - }, - "index": 2, - "number": 3 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/pippi.png", - "responseCode": 200, - "load_ms": 87, - "ttfb_ms": 70, - "load_start": 388, - "bytesOut": 31, - "bytesIn": 11063, - "objectSize": 10990, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 10990, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 5, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 7, - "http2_stream_dependency": 5, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 10990, - "full_url": "https://www.sitespeed.io/img/pippi.png", - "score_progressive_jpeg": -1, - "load_end": 475, - "ttfb_start": 388, - "ttfb_end": 458, - "download_start": 458, - "download_end": 475, - "download_ms": 17, - "all_start": 388, - "all_end": 475, - "all_ms": 87, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/pippi.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:53 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377395,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 10990" - ] - }, - "index": 3, - "number": 4 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/logos/coach.png", - "responseCode": 200, - "load_ms": 140, - "ttfb_ms": 139, - "load_start": 388, - "bytesOut": 34, - "bytesIn": 16117, - "objectSize": 16044, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 16044, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 6, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 9, - "http2_stream_dependency": 7, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 16044, - "full_url": "https://www.sitespeed.io/img/logos/coach.png", - "score_progressive_jpeg": -1, - "load_end": 528, - "ttfb_start": 388, - "ttfb_end": 527, - "download_start": 527, - "download_end": 528, - "download_ms": 1, - "all_start": 388, - "all_end": 528, - "all_ms": 140, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/logos/coach.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:29 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377433,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 16044" - ] - }, - "index": 4, - "number": 5 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/browsertime-ff-chrome.png", - "responseCode": 200, - "load_ms": 198, - "ttfb_ms": 164, - "load_start": 389, - "bytesOut": 42, - "bytesIn": 34095, - "objectSize": 33999, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 33999, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 7, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 11, - "http2_stream_dependency": 9, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 33999, - "full_url": - "https://www.sitespeed.io/img/browsertime-ff-chrome.png", - "score_progressive_jpeg": -1, - "load_end": 587, - "ttfb_start": 389, - "ttfb_end": 553, - "download_start": 553, - "download_end": 587, - "download_ms": 34, - "all_start": 389, - "all_end": 587, - "all_ms": 198, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/browsertime-ff-chrome.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:50 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377444,VS0,VE1", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 33999" - ] - }, - "index": 5, - "number": 6 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/black-logo-120.png", - "responseCode": 200, - "load_ms": 140, - "ttfb_ms": 138, - "load_start": 389, - "bytesOut": 37, - "bytesIn": 1750, - "objectSize": 1678, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 1678, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 8, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 13, - "http2_stream_dependency": 11, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 1678, - "full_url": "https://www.sitespeed.io/img/black-logo-120.png", - "score_progressive_jpeg": -1, - "load_end": 529, - "ttfb_start": 389, - "ttfb_end": 527, - "download_start": 527, - "download_end": 529, - "download_ms": 2, - "all_start": 389, - "all_end": 529, - "all_ms": 140, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/black-logo-120.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:49 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.377463,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 1678" - ] - }, - "index": 6, - "number": 7 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/fastly2.png", - "responseCode": 200, - "load_ms": 125, - "ttfb_ms": 125, - "load_start": 462, - "bytesOut": 32, - "bytesIn": 2299, - "objectSize": 2227, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 2227, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 9, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 15, - "http2_stream_dependency": 13, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 2227, - "full_url": "https://www.sitespeed.io/img/fastly2.png", - "score_progressive_jpeg": -1, - "load_end": 587, - "ttfb_start": 462, - "ttfb_end": 587, - "download_start": 587, - "download_end": 587, - "download_ms": 0, - "all_start": 462, - "all_end": 587, - "all_ms": 125, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/fastly2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:00 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.424395,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2227" - ] - }, - "index": 7, - "number": 8 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/digital-ocean.png", - "responseCode": 200, - "load_ms": 117, - "ttfb_ms": 117, - "load_start": 476, - "bytesOut": 36, - "bytesIn": 3593, - "objectSize": 3211, - "expires": "Sat, 01 Sep 2018 05:57:51 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3211, - "image_save": 0, - "cache_time": 31514739, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 10, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 17, - "http2_stream_dependency": 15, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3211, - "full_url": "https://www.sitespeed.io/img/digital-ocean.png", - "score_progressive_jpeg": -1, - "load_end": 593, - "ttfb_start": 476, - "ttfb_end": 593, - "download_start": 593, - "download_end": 593, - "download_ms": 0, - "all_start": 476, - "all_end": 593, - "all_ms": 117, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/digital-ocean.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:57 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sat, 01 Sep 2018 05:57:51 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 21261", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266732.439335,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3211" - ] - }, - "index": 8, - "number": 9 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/ico/sitespeed.io.ico", - "responseCode": 200, - "load_ms": 36, - "ttfb_ms": 36, - "load_start": 670, - "bytesOut": 37, - "bytesIn": 3073, - "objectSize": 2875, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/x-icon", - "contentEncoding": "gzip", - "type": 3, - "socket": 9, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 2875, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": 31022530, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "server_count": 4, - "server_rtt": 63, - "client_port": 50665, - "jpeg_scan_count": 0, - "priority": "High", - "request_id": 19, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 19, - "http2_stream_dependency": 0, - "http2_stream_weight": 220, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 6518, - "full_url": "https://www.sitespeed.io/img/ico/sitespeed.io.ico", - "score_progressive_jpeg": -1, - "load_end": 706, - "ttfb_start": 670, - "ttfb_end": 706, - "download_start": 706, - "download_end": 706, - "download_ms": 0, - "all_start": 670, - "all_end": 706, - "all_ms": 36, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/ico/sitespeed.io.ico", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:12 GMT", - "content-type: image/x-icon", - "last-modified: Wed, 16 Aug 2017 06:42:22 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "content-encoding: gzip", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513470", - "x-served-by: cache-dca17743-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266733.634288,VS0,VE0", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2875" - ] - }, - "index": 9, - "number": 10 - } - ], - "requestsFull": 10, - "requestsDoc": 9, - "responses_200": 10, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 883, - "fullyLoaded": 706, - "cached": 0, - "docTime": 653, - "domTime": 0, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": 100, - "score_compress": 100, - "score_etags": -1, - "gzip_total": 10874, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 85979, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 1, - "aft": 0, - "domElements": 250, - "pageSpeedVersion": "1.9", - "title": - "Sitespeed.io - Welcome to the wonderful world of Web Performance", - "titleTime": 570, - "loadEventStart": 638, - "loadEventEnd": 644, - "domContentLoadedEventStart": 385, - "domContentLoadedEventEnd": 385, - "lastVisualChange": 883, - "browser_name": "Google Chrome", - "browser_version": "60.0.3112.78", - "server_count": 4, - "server_rtt": 63, - "base_page_cdn": "Fastly", - "adult_site": 0, - "eventName": "Step 1", - "fixed_viewport": 1, - "score_progressive_jpeg": -1, - "firstPaint": 550, - "docCPUms": 968.75, - "fullyLoadedCPUms": 1437.5, - "docCPUpct": 67, - "fullyLoadedCPUpct": 26, - "isResponsive": -1, - "browser_process_count": 11, - "browser_main_memory_kb": 63752, - "browser_other_private_memory_kb": 71276, - "browser_working_set_kb": 135028, - "domInteractive": 385, - "domLoading": 318, - "base_page_ttfb": 315, - "visualComplete": 900, - "SpeedIndex": 900, - "certificate_bytes": 5078, - "date": 1504266733, - "userTime.logoTime": 576, - "userTimes": { - "logoTime": 576 - }, - "userTime": 576, - "custom": ["Colordepth", "Dpi", "Images", "Resolution"], - "Colordepth": 24, - "Dpi": "{\"dppx\":1,\"dpcm\":37.79527559055118,\"dpi\":96}", - "Images": - "[{\"url\":\"https://www.sitespeed.io/img/sitespeed-logo-2c.png\",\"width\":162,\"height\":50,\"naturalWidth\":324,\"naturalHeight\":100},{\"url\":\"https://www.sitespeed.io/img/sitespeed.io-logo-large2.png\",\"width\":188,\"height\":200,\"naturalWidth\":375,\"naturalHeight\":400},{\"url\":\"https://www.sitespeed.io/img/pippi.png\",\"width\":180,\"height\":151,\"naturalWidth\":360,\"naturalHeight\":303},{\"url\":\"https://www.sitespeed.io/img/logos/coach.png\",\"width\":155,\"height\":180,\"naturalWidth\":376,\"naturalHeight\":438},{\"url\":\"https://www.sitespeed.io/img/browsertime-ff-chrome.png\",\"width\":180,\"height\":162,\"naturalWidth\":668,\"naturalHeight\":600},{\"url\":\"https://www.sitespeed.io/img/black-logo-120.png\",\"width\":60,\"height\":64,\"naturalWidth\":120,\"naturalHeight\":128},{\"url\":\"https://www.sitespeed.io/img/fastly2.png\",\"width\":71,\"height\":32,\"naturalWidth\":142,\"naturalHeight\":64},{\"url\":\"https://www.sitespeed.io/img/digital-ocean.png\",\"width\":152,\"height\":26,\"naturalWidth\":603,\"naturalHeight\":103}]", - "Resolution": - "{\"absolute\":{\"height\":1200,\"width\":1920},\"available\":{\"height\":1160,\"width\":1920}}", - "testTiming": { - "ExtensionStart": 1608, - "ExtensionBlank": 147, - "WaitForIdle": 592, - "MeasureStep": 2822, - "ProcessRequests": 6, - "RunOptimizationChecks": 0, - "ProcessVideo": 131, - "SaveResult": 175, - "RunTest": 5755, - "UploadImages": 0, - "AllRunsDuration": 9000 - }, - "visualComplete85": 900, - "visualComplete90": 900, - "visualComplete95": 900, - "visualComplete99": 900, - "step": 1, - "effectiveBps": 291539, - "effectiveBpsDoc": 327937, - "smallImageCount": 5, - "bigImageCount": 0, - "maybeCaptcha": 0, - "pages": { - "details": - "https://www.webpagetest.org/details.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=3", - "checklist": - "https://www.webpagetest.org/performance_optimization.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=3", - "breakdown": - "https://www.webpagetest.org/breakdown.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=3", - "domains": - "https://www.webpagetest.org/domains.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=3", - "screenShot": - "https://www.webpagetest.org/screen_shot.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=3" - }, - "thumbnails": { - "waterfall": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/3_waterfall_thumb.png", - "checklist": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/3_optimization_thumb.png", - "screenShot": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/3_screen_thumb.png" - }, - "images": { - "waterfall": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_waterfall.png", - "connectionView": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_connection.png", - "checklist": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_optimization.png", - "screenShot": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&file=3_screen.jpg" - }, - "rawData": { - "headers": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_report.txt", - "pageData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_IEWPG.txt", - "requestsData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_IEWTR.txt", - "utilization": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/3_progress.csv" - }, - "videoFrames": [ - { - "time": 0, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_3&file=frame_0000.jpg", - "VisuallyComplete": 0 - }, - { - "time": 900, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_3&file=frame_0009.jpg", - "VisuallyComplete": 100 - } - ], - "domains": { - "www.sitespeed.io": { - "bytes": 98518, - "requests": 10, - "cdn_provider": "Fastly", - "connections": 1 - } - }, - "breakdown": { - "html": { - "color": [130, 181, 252], - "bytes": 8451, - "bytesUncompressed": 28279, - "requests": 1 - }, - "js": { - "color": [254, 197, 132], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "css": { - "color": [178, 234, 148], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "image": { - "color": [196, 154, 232], - "bytes": 90067, - "bytesUncompressed": 92497, - "requests": 9 - }, - "flash": { - "color": [45, 183, 193], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "font": { - "color": [255, 82, 62], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "other": { - "color": [196, 196, 196], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - } - } - } - } - }, - "fvonly": true, - "successfulFVRuns": 3, - "average": { - "firstView": { - "loadTime": 626, - "TTFB": 288, - "bytesOut": 1840, - "bytesOutDoc": 1765, - "bytesIn": 113980.33333333, - "bytesInDoc": 110831.33333333, - "connections": 1, - "requests": 10, - "requestsFull": 10, - "requestsDoc": 9, - "responses_200": 10, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 851.33333333333, - "fullyLoaded": 684.33333333333, - "cached": 0, - "docTime": 626, - "domTime": 0, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": 100, - "score_compress": 100, - "score_etags": -1, - "gzip_total": 10874, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 85979, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 1, - "aft": 0, - "domElements": 250, - "pageSpeedVersion": 1.9, - "titleTime": 561, - "loadEventStart": 608, - "loadEventEnd": 622, - "domContentLoadedEventStart": 368.66666666667, - "domContentLoadedEventEnd": 368.66666666667, - "lastVisualChange": 851.33333333333, - "server_count": 4, - "server_rtt": 68.333333333333, - "adult_site": 0, - "fixed_viewport": 1, - "score_progressive_jpeg": -1, - "firstPaint": 556, - "docCPUms": 973.95833333333, - "fullyLoadedCPUms": 1520.8333333333, - "docCPUpct": 68.666666666667, - "fullyLoadedCPUpct": 27.333333333333, - "isResponsive": -1, - "browser_process_count": 10.333333333333, - "browser_main_memory_kb": 63780, - "browser_other_private_memory_kb": 70434.666666667, - "browser_working_set_kb": 134214.66666667, - "domInteractive": 368.33333333333, - "domLoading": 290.66666666667, - "base_page_ttfb": 288, - "visualComplete": 866.66666666667, - "SpeedIndex": 866.66666666667, - "certificate_bytes": 5078, - "date": 1504266734.6667, - "userTime.logoTime": 587.33333333333, - "userTime": 587.33333333333, - "Colordepth": 24, - "visualComplete85": 866.66666666667, - "visualComplete90": 866.66666666667, - "visualComplete95": 866.66666666667, - "visualComplete99": 866.66666666667, - "run": 2, - "step": 1, - "effectiveBps": 288002, - "effectiveBpsDoc": 329525.66666667, - "smallImageCount": 5, - "bigImageCount": 0, - "maybeCaptcha": 0, - "avgRun": 1 - } - }, - "standardDeviation": { - "firstView": { - "loadTime": 29, - "TTFB": 19, - "bytesOut": 0, - "bytesOutDoc": 0, - "bytesIn": 12, - "bytesInDoc": 12, - "connections": 0, - "requests": 0, - "requestsFull": 0, - "requestsDoc": 0, - "responses_200": 0, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 44, - "fullyLoaded": 20, - "cached": 0, - "docTime": 29, - "domTime": 0, - "score_cache": 0, - "score_cdn": 0, - "score_gzip": 0, - "score_cookies": 0, - "score_keep-alive": 0, - "score_minify": 0, - "score_combine": 0, - "score_compress": 0, - "score_etags": 0, - "gzip_total": 0, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 0, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 0, - "aft": 0, - "domElements": 0, - "pageSpeedVersion": 0, - "titleTime": 13, - "loadEventStart": 28, - "loadEventEnd": 22, - "domContentLoadedEventStart": 11, - "domContentLoadedEventEnd": 11, - "lastVisualChange": 44, - "server_count": 0, - "server_rtt": 4, - "adult_site": 0, - "fixed_viewport": 0, - "score_progressive_jpeg": 0, - "firstPaint": 16, - "docCPUms": 95, - "fullyLoadedCPUms": 129, - "docCPUpct": 3, - "fullyLoadedCPUpct": 1, - "isResponsive": 0, - "browser_process_count": 0, - "browser_main_memory_kb": 146, - "browser_other_private_memory_kb": 676, - "browser_working_set_kb": 601, - "domInteractive": 11, - "domLoading": 19, - "base_page_ttfb": 19, - "visualComplete": 47, - "SpeedIndex": 47, - "certificate_bytes": 0, - "date": 1, - "userTime.logoTime": 21, - "userTime": 21, - "Colordepth": 0, - "visualComplete85": 47, - "visualComplete90": 47, - "visualComplete95": 47, - "visualComplete99": 47, - "run": 0, - "step": 0, - "effectiveBps": 10858, - "effectiveBpsDoc": 23195, - "smallImageCount": 0, - "bigImageCount": 0, - "maybeCaptcha": 0, - "avgRun": null - } - }, - "median": { - "firstView": { - "numSteps": 1, - "run": 1, - "tester": "VM2-03-192.168.10.71", - "URL": "https://www.sitespeed.io", - "loadTime": 640, - "TTFB": 273, - "bytesOut": 1840, - "bytesOutDoc": 1765, - "bytesIn": 113963, - "bytesInDoc": 110814, - "connections": 1, - "requests": [ - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/", - "responseCode": 200, - "load_ms": 88, - "ttfb_ms": 78, - "load_start": 195, - "bytesOut": 231, - "bytesIn": 8451, - "objectSize": 7999, - "expires": "Sat, 26 Aug 2017 13:24:22 GMT", - "cacheControl": "max-age=600", - "contentType": "text/html", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": -1, - "score_cdn": -1, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": 69, - "ssl_ms": 76, - "gzip_total": 7999, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": -1, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 32, - "connect_start": 32, - "connect_end": 101, - "ssl_start": 102, - "ssl_end": 178, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "VeryHigh", - "request_id": 1, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 1, - "http2_stream_dependency": 0, - "http2_stream_weight": 256, - "http2_stream_exclusive": 1, - "certificate_bytes": 5078, - "objectSizeUncompressed": 28279, - "full_url": "https://www.sitespeed.io/", - "score_progressive_jpeg": -1, - "load_end": 283, - "ttfb_start": 195, - "ttfb_end": 273, - "download_start": 273, - "download_end": 283, - "download_ms": 10, - "all_start": 32, - "all_end": 283, - "all_ms": 233, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /", - "upgrade-insecure-requests: 1", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: text/html", - "last-modified: Wed, 16 Aug 2017 06:44:02 GMT", - "cache-control: max-age=600", - "expires: Sat, 26 Aug 2017 13:24:22 GMT", - "content-encoding: gzip", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.252377,VS0,VE3", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 7999" - ] - }, - "index": 0, - "number": 1 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed-logo-2c.png", - "responseCode": 200, - "load_ms": 82, - "ttfb_ms": 82, - "load_start": 292, - "bytesOut": 88, - "bytesIn": 3891, - "objectSize": 3717, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3717, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 2, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 3, - "http2_stream_dependency": 0, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3717, - "full_url": "https://www.sitespeed.io/img/sitespeed-logo-2c.png", - "score_progressive_jpeg": -1, - "load_end": 374, - "ttfb_start": 292, - "ttfb_end": 374, - "download_start": 374, - "download_end": 374, - "download_ms": 0, - "all_start": 292, - "all_end": 374, - "all_ms": 82, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed-logo-2c.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:01 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.357392,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3717" - ] - }, - "index": 1, - "number": 2 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/sitespeed.io-logo-large2.png", - "responseCode": 200, - "load_ms": 90, - "ttfb_ms": 66, - "load_start": 369, - "bytesOut": 43, - "bytesIn": 14186, - "objectSize": 14113, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 14113, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 4, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":0,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 5, - "http2_stream_dependency": 3, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 14113, - "full_url": - "https://www.sitespeed.io/img/sitespeed.io-logo-large2.png", - "score_progressive_jpeg": -1, - "load_end": 459, - "ttfb_start": 369, - "ttfb_end": 435, - "download_start": 435, - "download_end": 459, - "download_ms": 24, - "all_start": 369, - "all_end": 459, - "all_ms": 90, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/sitespeed.io-logo-large2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:43:11 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421808,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 14113" - ] - }, - "index": 2, - "number": 3 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/pippi.png", - "responseCode": 200, - "load_ms": 109, - "ttfb_ms": 66, - "load_start": 369, - "bytesOut": 31, - "bytesIn": 11063, - "objectSize": 10990, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 10990, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 5, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 7, - "http2_stream_dependency": 5, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 10990, - "full_url": "https://www.sitespeed.io/img/pippi.png", - "score_progressive_jpeg": -1, - "load_end": 478, - "ttfb_start": 369, - "ttfb_end": 435, - "download_start": 435, - "download_end": 478, - "download_ms": 43, - "all_start": 369, - "all_end": 478, - "all_ms": 109, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/pippi.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:53 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421815,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 10990" - ] - }, - "index": 3, - "number": 4 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/logos/coach.png", - "responseCode": 200, - "load_ms": 192, - "ttfb_ms": 174, - "load_start": 369, - "bytesOut": 34, - "bytesIn": 16117, - "objectSize": 16044, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 16044, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 3, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 6, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":3,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 9, - "http2_stream_dependency": 7, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 16044, - "full_url": "https://www.sitespeed.io/img/logos/coach.png", - "score_progressive_jpeg": -1, - "load_end": 561, - "ttfb_start": 369, - "ttfb_end": 543, - "download_start": 543, - "download_end": 561, - "download_ms": 18, - "all_start": 369, - "all_end": 561, - "all_ms": 192, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/logos/coach.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:29 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421844,VS0,VE1", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 16044" - ] - }, - "index": 4, - "number": 5 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/browsertime-ff-chrome.png", - "responseCode": 200, - "load_ms": 173, - "ttfb_ms": 108, - "load_start": 370, - "bytesOut": 42, - "bytesIn": 34072, - "objectSize": 33999, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 33999, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 7, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 11, - "http2_stream_dependency": 9, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 33999, - "full_url": - "https://www.sitespeed.io/img/browsertime-ff-chrome.png", - "score_progressive_jpeg": -1, - "load_end": 543, - "ttfb_start": 370, - "ttfb_end": 478, - "download_start": 478, - "download_end": 543, - "download_ms": 65, - "all_start": 370, - "all_end": 543, - "all_ms": 173, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/browsertime-ff-chrome.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:50 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.421859,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 33999" - ] - }, - "index": 5, - "number": 6 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/black-logo-120.png", - "responseCode": 200, - "load_ms": 191, - "ttfb_ms": 191, - "load_start": 370, - "bytesOut": 37, - "bytesIn": 1773, - "objectSize": 1678, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 1678, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 8, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 13, - "http2_stream_dependency": 11, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 1678, - "full_url": "https://www.sitespeed.io/img/black-logo-120.png", - "score_progressive_jpeg": -1, - "load_end": 561, - "ttfb_start": 370, - "ttfb_end": 561, - "download_start": 561, - "download_end": 561, - "download_ms": 0, - "all_start": 370, - "all_end": 561, - "all_ms": 191, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/black-logo-120.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:49 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.422116,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 1678" - ] - }, - "index": 6, - "number": 7 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/fastly2.png", - "responseCode": 200, - "load_ms": 187, - "ttfb_ms": 187, - "load_start": 380, - "bytesOut": 32, - "bytesIn": 2299, - "objectSize": 2227, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 2227, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 9, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 15, - "http2_stream_dependency": 13, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 2227, - "full_url": "https://www.sitespeed.io/img/fastly2.png", - "score_progressive_jpeg": -1, - "load_end": 567, - "ttfb_start": 380, - "ttfb_end": 567, - "download_start": 567, - "download_end": 567, - "download_ms": 0, - "all_start": 380, - "all_end": 567, - "all_ms": 187, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/fastly2.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:42:00 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.426689,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2227" - ] - }, - "index": 7, - "number": 8 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/digital-ocean.png", - "responseCode": 200, - "load_ms": 111, - "ttfb_ms": 111, - "load_start": 462, - "bytesOut": 36, - "bytesIn": 3593, - "objectSize": 3211, - "expires": "Sat, 01 Sep 2018 05:57:51 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/png", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": -1, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": 100, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 0, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 3211, - "image_save": 0, - "cache_time": 31514736, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "initiator": "https://www.sitespeed.io/", - "initiator_line": 5, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "Low", - "request_id": 10, - "was_pushed": 0, - "initiator_type": "parser", - "initiator_detail": - "{\"lineNumber\":5,\"type\":\"parser\",\"url\":\"https://www.sitespeed.io/\"}", - "protocol": "HTTP/2", - "http2_stream_id": 17, - "http2_stream_dependency": 15, - "http2_stream_weight": 147, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 3211, - "full_url": "https://www.sitespeed.io/img/digital-ocean.png", - "score_progressive_jpeg": -1, - "load_end": 573, - "ttfb_start": 462, - "ttfb_end": 573, - "download_start": 573, - "download_end": 573, - "download_ms": 0, - "all_start": 462, - "all_end": 573, - "all_ms": 111, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/digital-ocean.png", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/png", - "last-modified: Wed, 16 Aug 2017 06:41:57 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sat, 01 Sep 2018 05:57:51 GMT", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 21264", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266735.480931,VS0,VE0", - "vary: User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 3211" - ] - }, - "index": 8, - "number": 9 - }, - { - "ip_addr": "151.101.1.176", - "method": "GET", - "host": "www.sitespeed.io", - "url": "/img/ico/sitespeed.io.ico", - "responseCode": 200, - "load_ms": 41, - "ttfb_ms": 41, - "load_start": 649, - "bytesOut": 37, - "bytesIn": 3073, - "objectSize": 2875, - "expires": "Sun, 26 Aug 2018 13:14:22 GMT", - "cacheControl": - "max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "contentType": "image/x-icon", - "contentEncoding": "gzip", - "type": 3, - "socket": 8, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": -1, - "score_compress": -1, - "score_etags": -1, - "is_secure": 1, - "dns_ms": -1, - "connect_ms": -1, - "ssl_ms": -1, - "gzip_total": 2875, - "gzip_save": 0, - "minify_total": 0, - "minify_save": 0, - "image_total": 0, - "image_save": 0, - "cache_time": 31022527, - "cdn_provider": "Fastly", - "dns_start": 0, - "dns_end": 0, - "connect_start": 0, - "connect_end": 0, - "ssl_start": 0, - "ssl_end": 0, - "server_count": 4, - "server_rtt": 69, - "client_port": 49789, - "jpeg_scan_count": 0, - "priority": "High", - "request_id": 18, - "was_pushed": 0, - "initiator_type": "other", - "initiator_detail": "{\"type\":\"other\"}", - "protocol": "HTTP/2", - "http2_stream_id": 19, - "http2_stream_dependency": 0, - "http2_stream_weight": 220, - "http2_stream_exclusive": 1, - "certificate_bytes": 0, - "objectSizeUncompressed": 6518, - "full_url": "https://www.sitespeed.io/img/ico/sitespeed.io.ico", - "score_progressive_jpeg": -1, - "load_end": 690, - "ttfb_start": 649, - "ttfb_end": 690, - "download_start": 690, - "download_end": 690, - "download_ms": 0, - "all_start": 649, - "all_end": 690, - "all_ms": 41, - "headers": { - "request": [ - ":method: GET", - ":authority: www.sitespeed.io", - ":scheme: https", - ":path: /img/ico/sitespeed.io.ico", - "user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 PTST/391", - "accept: image/webp,image/apng,image/*,*/*;q=0.8", - "referer: https://www.sitespeed.io/", - "accept-encoding: gzip, deflate, br", - "accept-language: en-US,en;q=0.8" - ], - "response": [ - ":status: 200", - "date: Fri, 01 Sep 2017 11:52:15 GMT", - "content-type: image/x-icon", - "last-modified: Wed, 16 Aug 2017 06:42:22 GMT", - "cache-control: max-age=31536000, public, public, must-revalidate, proxy-revalidate", - "expires: Sun, 26 Aug 2018 13:14:22 GMT", - "content-encoding: gzip", - "pragma: public", - "accept-ranges: bytes", - "via: 1.1 varnish", - "age: 513473", - "x-served-by: cache-dca17742-DCA", - "x-cache: HIT", - "x-cache-hits: 1", - "x-timer: S1504266736.668237,VS0,VE0", - "vary: Accept-Encoding,User-Agent", - "content-security-policy: default-src 'self'; frame-src https://www.youtube.com; style-src 'self' 'unsafe-inline'; img-src 'self' https://i.ytimg.com; script-src 'self' 'unsafe-inline'", - "strict-transport-security: max-age=31536000; preload", - "x-content-type-options: nosniff", - "x-frame-options: DENY", - "x-xss-protection: 1; mode=block", - "content-length: 2875" - ] - }, - "index": 9, - "number": 10 - } - ], - "requestsFull": 10, - "requestsDoc": 9, - "responses_200": 10, - "responses_404": 0, - "responses_other": 0, - "result": 0, - "render": 882, - "fullyLoaded": 690, - "cached": 0, - "docTime": 640, - "domTime": 0, - "score_cache": 100, - "score_cdn": 100, - "score_gzip": 100, - "score_cookies": -1, - "score_keep-alive": 100, - "score_minify": -1, - "score_combine": 100, - "score_compress": 100, - "score_etags": -1, - "gzip_total": 10874, - "gzip_savings": 0, - "minify_total": 0, - "minify_savings": 0, - "image_total": 85979, - "image_savings": 0, - "base_page_redirects": 0, - "optimization_checked": 1, - "aft": 0, - "domElements": 250, - "pageSpeedVersion": "1.9", - "title": - "Sitespeed.io - Welcome to the wonderful world of Web Performance", - "titleTime": 542, - "loadEventStart": 617, - "loadEventEnd": 631, - "domContentLoadedEventStart": 361, - "domContentLoadedEventEnd": 361, - "lastVisualChange": 882, - "browser_name": "Google Chrome", - "browser_version": "60.0.3112.78", - "server_count": 4, - "server_rtt": 69, - "base_page_cdn": "Fastly", - "adult_site": 0, - "eventName": "Step 1", - "fixed_viewport": 1, - "score_progressive_jpeg": -1, - "firstPaint": 579, - "docCPUms": 1093.75, - "fullyLoadedCPUms": 1703.125, - "docCPUpct": 74, - "fullyLoadedCPUpct": 30, - "isResponsive": -1, - "browser_process_count": 10, - "browser_main_memory_kb": 63616, - "browser_other_private_memory_kb": 70408, - "browser_working_set_kb": 134024, - "domInteractive": 360, - "domLoading": 275, - "base_page_ttfb": 273, - "visualComplete": 900, - "SpeedIndex": 900, - "certificate_bytes": 5078, - "date": 1504266735, - "userTime.logoTime": 617, - "userTimes": { - "logoTime": 617 - }, - "userTime": 617, - "custom": ["Colordepth", "Dpi", "Images", "Resolution"], - "Colordepth": 24, - "Dpi": "{\"dppx\":1,\"dpcm\":37.79527559055118,\"dpi\":96}", - "Images": - "[{\"url\":\"https://www.sitespeed.io/img/sitespeed-logo-2c.png\",\"width\":162,\"height\":50,\"naturalWidth\":324,\"naturalHeight\":100},{\"url\":\"https://www.sitespeed.io/img/sitespeed.io-logo-large2.png\",\"width\":188,\"height\":200,\"naturalWidth\":375,\"naturalHeight\":400},{\"url\":\"https://www.sitespeed.io/img/pippi.png\",\"width\":180,\"height\":151,\"naturalWidth\":360,\"naturalHeight\":303},{\"url\":\"https://www.sitespeed.io/img/logos/coach.png\",\"width\":155,\"height\":180,\"naturalWidth\":376,\"naturalHeight\":438},{\"url\":\"https://www.sitespeed.io/img/browsertime-ff-chrome.png\",\"width\":180,\"height\":162,\"naturalWidth\":668,\"naturalHeight\":600},{\"url\":\"https://www.sitespeed.io/img/black-logo-120.png\",\"width\":60,\"height\":64,\"naturalWidth\":120,\"naturalHeight\":128},{\"url\":\"https://www.sitespeed.io/img/fastly2.png\",\"width\":71,\"height\":32,\"naturalWidth\":142,\"naturalHeight\":64},{\"url\":\"https://www.sitespeed.io/img/digital-ocean.png\",\"width\":152,\"height\":26,\"naturalWidth\":603,\"naturalHeight\":103}]", - "Resolution": - "{\"absolute\":{\"height\":1200,\"width\":1920},\"available\":{\"height\":1160,\"width\":1920}}", - "testTiming": { - "ExtensionStart": 2505, - "ExtensionBlank": 251, - "WaitForIdle": 2788, - "MeasureStep": 2874, - "ProcessRequests": 6, - "RunOptimizationChecks": 0, - "ProcessVideo": 170, - "SaveResult": 238, - "RunTest": 9160, - "UploadImages": 1, - "AllRunsDuration": 9000 - }, - "visualComplete85": 900, - "visualComplete90": 900, - "visualComplete95": 900, - "visualComplete99": 900, - "step": 1, - "effectiveBps": 273292, - "effectiveBpsDoc": 301945, - "smallImageCount": 5, - "bigImageCount": 0, - "maybeCaptcha": 0, - "pages": { - "details": - "https://www.webpagetest.org/details.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "checklist": - "https://www.webpagetest.org/performance_optimization.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "breakdown": - "https://www.webpagetest.org/breakdown.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "domains": - "https://www.webpagetest.org/domains.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1", - "screenShot": - "https://www.webpagetest.org/screen_shot.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&run=1" - }, - "thumbnails": { - "waterfall": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_waterfall_thumb.png", - "checklist": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_optimization_thumb.png", - "screenShot": - "https://www.webpagetest.org/result/170901_04_feeeeae2f42a6ce0e3d15553a4549d56/1_screen_thumb.png" - }, - "images": { - "waterfall": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_waterfall.png", - "connectionView": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_connection.png", - "checklist": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_optimization.png", - "screenShot": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&file=1_screen.jpg" - }, - "rawData": { - "headers": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_report.txt", - "pageData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_IEWPG.txt", - "requestsData": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_IEWTR.txt", - "utilization": - "https://www.webpagetest.org/results/17/09/01/04/feeeeae2f42a6ce0e3d15553a4549d56/1_progress.csv" - }, - "videoFrames": [ - { - "time": 0, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_1&file=frame_0000.jpg", - "VisuallyComplete": 0 - }, - { - "time": 900, - "image": - "https://www.webpagetest.org/getfile.php?test=170901_04_feeeeae2f42a6ce0e3d15553a4549d56&video=video_1&file=frame_0009.jpg", - "VisuallyComplete": 100 - } - ], - "domains": { - "www.sitespeed.io": { - "bytes": 98518, - "requests": 10, - "cdn_provider": "Fastly", - "connections": 1 - } - }, - "breakdown": { - "html": { - "color": [130, 181, 252], - "bytes": 8451, - "bytesUncompressed": 28279, - "requests": 1 - }, - "js": { - "color": [254, 197, 132], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "css": { - "color": [178, 234, 148], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "image": { - "color": [196, 154, 232], - "bytes": 90067, - "bytesUncompressed": 92497, - "requests": 9 - }, - "flash": { - "color": [45, 183, 193], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "font": { - "color": [255, 82, 62], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - }, - "other": { - "color": [196, 196, 196], - "bytes": 0, - "bytesUncompressed": 0, - "requests": 0 - } - } - } - } - }, - "statusCode": 200, - "statusText": "Test Complete", - "webPagetestVersion": "17.08" -} diff --git a/test/webpagetestTests.js b/test/webpagetestTests.js deleted file mode 100644 index a7b169038..000000000 --- a/test/webpagetestTests.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -const plugin = require('../lib/plugins/webpagetest'); -const Aggregator = require('../lib/plugins/webpagetest/aggregator'); -const fs = require('fs'); -const path = require('path'); -const expect = require('chai').expect; -const intel = require('intel'); -const messageMaker = require('../lib/support/messageMaker'); -const filterRegistry = require('../lib/support/filterRegistry'); -const statsHelpers = require('../lib/support/statsHelpers'); - -const wptResultPath = path.resolve( - __dirname, - 'fixtures', - 'webpagetest.data.json' -); -const wptResult = JSON.parse(fs.readFileSync(wptResultPath, 'utf8')); - -describe('webpagetest', () => { - const context = { messageMaker, filterRegistry, intel, statsHelpers }; - - describe('plugin', () => { - it('should require key for default server', () => { - expect(() => plugin.open(context, {})).to.throw(); - }); - it('should require key for public server', () => { - expect(() => - plugin.open(context, { webpagetest: { host: 'www.webpagetest.org' } }) - ).to.throw(); - }); - it('should not require key for private server', () => { - expect(() => - plugin.open(context, { webpagetest: { host: 'http://myserver.foo' } }) - ).to.not.throw(); - }); - }); - - const aggregator = new Aggregator( - statsHelpers, - intel.getLogger('sitespeedio.plugin.webpagetest') - ); - describe('aggregator', () => { - it('should summarize data', () => { - aggregator.addToAggregate( - 'www.sitespeed.io', - wptResult, - 'native', - 'Test', - { video: true } - ); - - expect(aggregator.summarize()).to.not.be.empty; - }); - }); -});