macbre / phantomas

Headless Chromium-based web performance metrics collector and monitoring tool
https://www.npmjs.com/package/phantomas
BSD 2-Clause "Simplified" License
2.25k stars 141 forks source link

wait-for-selector not working on some pages #517

Open gmetais opened 9 years ago

gmetais commented 9 years ago

Hi @macbre !

I'm still having a issue with the option --wait-for-selector on some pages. The selector doesn't exist on the page but the test ends early.

Example: phantomas --url=http://www.github.com --timeout=60 --phone --wait-for-selector=".foo.bar" --verbose

The problem seems to be located here: https://github.com/macbre/phantomas/blob/devel/core/phantomas.js#L460 with this done() function being called twice.

Sorry, no pull request today as I can't find the reason behind the problem...

macbre commented 9 years ago

@gmetais, can't reproduce on the latest devel. Still broken for you?

gmetais commented 9 years ago

Yes, still broken for me on the latest devel branch.

As you can see in the following verbose log, some Selector: query for ".foo.bar" returned false are written, then the run ends, long before the 60s timeout.

17:07:09.815 Event send emitted
17:07:09.816 Page loading finished ("success")
17:07:09.816 Event loadFinished emitted
17:07:09.816 Selector: starting polling of ".foo.bar" selector
17:07:09.817 Spying disabled - checking the selector
17:07:09.817 Spying enabled
17:07:09.817 Selector: query for ".foo.bar" returned false
17:07:09.859 Loading progress: 100%
17:07:09.859 Event progress emitted
17:07:10.017 Spying disabled - checking the selector
17:07:10.018 Spying enabled
17:07:10.018 Selector: query for ".foo.bar" returned false
17:07:10.218 Spying disabled - checking the selector
17:07:10.218 Spying enabled
17:07:10.218 Selector: query for ".foo.bar" returned false
17:07:10.413 Event onResourceReceived emitted
17:07:10.414 Event onResourceReceived emitted
17:07:10.414 recv: HTTP 200 <https://collector.githubapp.com/github/page_view?dimensions%5Bpage%5D=https%3A%2F%2Fgithub.com%2F&dimensions%5Btitle%5D=GitHub%20%C2%B7%20Build%20software%20better%2C%20together.&dimensions%5Breferrer%5D=&dimensions%5Buser_agent%5D=Mozilla%2F5.0%20(iPhone%3B%20U%3B%20CPU%20like%20Mac%20OS%20X%3B%20en)%20AppleWebKit%2F420%2B%20(KHTML%2C%20like%20Gecko)%20Version%2F3.0%20Mobile%2F1A543%20Safari%2F419.3&dimensions%5Bscreen_resolution%5D=320x568&dimensions%5Bpixel_ratio%5D=1&dimensions%5Bbrowser_resolution%5D=320x568&dimensions%5Btz_seconds%5D=7200&dimensions%5Btimestamp%5D=1432660029814&dimensions%5Brequest_id%5D=52E6A0C4%3A1626%3ABAF1DD2%3A5564A83A&dimensions%5Bdevice%5D=mobile&&&&dimensions%5Bcid%5D=1012035581.1432660030> [image/gif]
17:07:10.414 Event recv emitted
17:07:10.415 Navigation Timing milestone: domComplete
17:07:10.415 Event milestone emitted
17:07:10.416 Performance timing: {"responseEnd":1432660027261}
17:07:10.417 Event metric emitted
17:07:10.417 Performance timing: document reached "complete" state after 3155 ms
17:07:10.418 Spying disabled - checking the selector
17:07:10.418 Spying enabled
17:07:10.419 Selector: query for ".foo.bar" returned false
17:07:10.420 Event domQuery emitted
17:07:10.420 DOM query: by selector - "meta[name=browser-stats-url]" (using querySelectorAll) in #document
17:07:10.420 Event domQuery emitted
17:07:10.420 DOM query: by selector - "meta[name=hostname]" (using querySelectorAll) in #document
17:07:10.621 Spying disabled - checking the selector
17:07:10.621 Spying enabled
17:07:10.621 Selector: query for ".foo.bar" returned false
17:07:10.761 Event report emitted
17:07:10.762 Event metric emitted
17:07:10.762 Cookies: document.cookie = "_ga=GA1.2.978680.1432660028; _gat=1; tz=Europe%2FBerlin; _octo=GH1.1.1012035581.1432660030"
17:07:10.762 Event metric emitted
17:07:10.763 Event metric emitted
17:07:10.763 Event metric emitted
17:07:10.767 Spying disabled - counting iframes
17:07:10.768 Spying enabled
17:07:10.770 Spying disabled - counting global variables (injecting an empty iframe)
17:07:10.777 Spying enabled
17:07:10.779 Performance timing: backend vs frontend time - 14% / 86%
17:07:10.780 phantomas run for <https://github.com/> completed in 4868 ms
17:07:10.780 Event results emitted
17:07:10.780 Returning results with 129 metric(s)...
17:07:10.781 Event json emitted
17:07:10.781 Done!
17:07:10.781 Event exit emitted
17:07:10.788 onInit: was already triggered
17:07:10.788 onInit: was already triggered
phantomas v1.10.2 metrics for <https://github.com/>:

* requests: 12
* gzipRequests: 4
* postRequests: 0
* httpsRequests: 11
* notFound: 0
* bodySize: 169579 bytes
* contentLength: 171566 bytes
gmetais commented 9 years ago

Maybe I should mention that one of the tests fails every time on my computer. Maybe it could be related to the above bug?

/timing.html
    ✓ should be generated
    ✓ should have "requests" metric properly set
    ✗ should have "requestsToDomContentLoaded" metric properly set 
        » expected 4, 
    got  3 (===) // integration-test.js:52
    ✓ should have "requestsToDomComplete" metric properly set
macbre commented 9 years ago

@gmetais, did you try reproducing in on a different machine?

Can you run $ ./test/server-start.sh & and attach the output of verbose log from the following?

phantomas http://0.0.0.0:8888/timing.html --verbose
gmetais commented 9 years ago
phantomas http://0.0.0.0:8888/timing.html --verbose
16:41:16.739 phantomas v1.10.2: /Users/gaelmetais/Documents/GitHub/phantomas/
16:41:16.739 Options: {"version":false,"V":false,"help":false,"h":false,"colors":false,"disable-js":false,"no-externals":false,"progress":false,"silent":false,"spy-eval":false,"verbose":true,"v":true,"stop-at-onload":false,"scroll":false,"film-strip":false,"analyze-css":false,"page-source":false,"reporter":"plain","R":"plain","format":"plain","timeout":15,"url":"http://0.0.0.0:8888/timing.html","user-agent":"phantomas/1.10.2 (PhantomJS/1.9.8; darwin x64)"}
16:41:16.741 Loading: core modules...
16:41:16.744 Core module navigationTiming v1.0 initialized
16:41:16.751 Core module requestsMonitor v1.2 initialized
16:41:16.752 Core module timeToFirstByte v1.1 initialized
16:41:16.753 Loading: extensions...
16:41:16.753 Getting the list of all modules in /Users/gaelmetais/Documents/GitHub/phantomas/extensions...
16:41:16.759 Module cookies v1.0 initialized
16:41:16.760 Devices: no profile selected (available: phone, tablet)
16:41:16.760 Module devices v0.1 initialized
16:41:16.761 filmStrip: to enable screenshots of page being loaded run phantomas with --film-strip option
16:41:16.761 Module filmStrip v0.3 initialized
16:41:16.763 HAR: no path specified, use --har <path>
16:41:16.763 Module har v0.1 initialized
16:41:16.764 Module httpAuth v1.0 initialized
16:41:16.765 To enable page-source of page being loaded run phantomas with --page-source option
16:41:16.765 Module pageSource v0.1 initialized
16:41:16.766 Module postLoadDelay v0.1 initialized
16:41:16.767 Screenshot: to enable screenshot of the fully loaded page run phantomas with --screenshot option
16:41:16.767 Module screenshot v0.2 initialized
16:41:16.768 Scroll: pass --scroll option to scroll down the page when it's loaded
16:41:16.768 Module scroll v0.1 initialized
16:41:16.769 Module waitForEvent v0.1 initialized
16:41:16.770 Module waitForSelector v0.2 initialized
16:41:16.770 Loading: modules...
16:41:16.770 Getting the list of all modules in /Users/gaelmetais/Documents/GitHub/phantomas/modules...
16:41:16.782 Module ajaxRequests v0.2 initialized
16:41:16.784 Module alerts v0.1 initialized
16:41:16.786 To enable CSS in-depth metrics please run phantomas with --analyze-css option
16:41:16.789 Module analyzeCss v0.4 initialized
16:41:16.791 Module assetsTypes v0.2 initialized
16:41:16.792 Module blockDomains v0.1 initialized
16:41:16.793 Module cacheHits v0.3 initialized
16:41:16.794 Module caching v0.2 initialized
16:41:16.796 Module console v0.2 initialized
16:41:16.799 Module cookies v0.3 initialized
16:41:16.799 Module documentHeight v0.1 initialized
16:41:16.801 Module domComplexity v1.0 initialized
16:41:16.802 Module domHiddenContent v0.1 initialized
16:41:16.803 Module domMutations v0.1 initialized
16:41:16.804 Module domQueries v1.0 initialized
16:41:16.806 Module domains v0.3 initialized
16:41:16.807 Module events v0.4 initialized
16:41:16.807 Module globalVariables v0.3 initialized
16:41:16.808 Module headers v0.1 initialized
16:41:16.809 Module jQuery v1.0 initialized
16:41:16.810 javaScriptBottlenecks: to spy calls to eval() run phantomas with --spy-eval option
16:41:16.810 Module javaScriptBottlenecks v0.2 initialized
16:41:16.811 Module jserrors v0.3 initialized
16:41:16.812 Module keepAlive v0.1 initialized
16:41:16.812 Module localStorage v1.0 initialized
16:41:16.813 Module mainRequest v0.1 initialized
16:41:16.814 Module redirects v0.1 initialized
16:41:16.815 Module repaints v0.1 initialized
16:41:16.822 Module requestsStats v0.3 initialized
16:41:16.823 Module requestsTo v0.1 initialized
16:41:16.824 Module staticAssets v0.5 initialized
16:41:16.825 Module timeToFirst v0.1 initialized
16:41:16.827 Module windowPerformance v1.0 initialized
16:41:16.828 Loading: 3rd party modules...
16:41:16.829 Opening <http://0.0.0.0:8888/timing.html>...
16:41:16.829 Using phantomas/1.10.2 (PhantomJS/1.9.8; darwin x64) as user agent
16:41:16.829 Viewport set to 1366 x 768
16:41:16.830 Event pageBeforeOpen emitted
16:41:16.833 Event onResourceRequested emitted
16:41:16.835 Event beforeSend emitted
16:41:16.835 req: <http://0.0.0.0:8888/timing.html>
16:41:16.835 Event send emitted
16:41:16.838 Event pageOpen emitted
16:41:16.838 Timeout set to 15 sec
16:41:16.862 Page loading started
16:41:16.862 Event loadStarted emitted
16:41:16.863 Event onResourceReceived emitted
16:41:16.863 Event onResourceReceived emitted
16:41:16.864 recv: HTTP 200 <http://0.0.0.0:8888/timing.html> [text/html]
16:41:16.864 Event recv emitted
16:41:16.864 Event metric emitted
16:41:16.865 Event metric emitted
16:41:16.865 Time to first byte: set to 32 ms for #1 request to <http://0.0.0.0:8888/timing.html> (HTTP 200)
16:41:16.865 Time to last byte: set to 32 ms
16:41:16.866 Event responseEnd emitted
16:41:16.867 Block domains: assuming "0.0.0.0" to be the main domain
16:41:16.867 Event metric emitted
16:41:16.867 Performance timing: responseEnd = 1433176876867
16:41:16.867 Event milestone emitted
16:41:16.869 Event onResourceRequested emitted
16:41:16.870 Event beforeSend emitted
16:41:16.870 req: <http://0.0.0.0:8888/static/style.css>
16:41:16.870 Event send emitted
16:41:16.873 Event onResourceRequested emitted
16:41:16.873 Event beforeSend emitted
16:41:16.874 req: <http://0.0.0.0:8888/static/jquery-2.1.1.min.js>
16:41:16.874 Event send emitted
16:41:16.880 Event onResourceReceived emitted
16:41:16.880 Event onResourceReceived emitted
16:41:16.881 recv: HTTP 200 <http://0.0.0.0:8888/static/style.css> [text/css]
16:41:16.881 Event recv emitted
16:41:16.889 Event onResourceRequested emitted
16:41:16.889 Event beforeSend emitted
16:41:16.889 req: <http://0.0.0.0:8888/static/mdn.png>
16:41:16.889 Event send emitted
16:41:16.897 Loading progress: 10%
16:41:16.899 Event progress emitted
16:41:16.902 Event onResourceReceived emitted
16:41:16.903 Event onResourceReceived emitted
16:41:16.903 recv: HTTP 200 <http://0.0.0.0:8888/static/jquery-2.1.1.min.js> [application/javascript]
16:41:16.903 Event recv emitted
16:41:16.905 phantomas scope injected
16:41:16.906 onInit: page object initialized
16:41:16.906 Event init emitted
16:41:16.907 DOM query: MutationObserver not available!
16:41:16.908 spy: attaching to "getElementById" function with results reporting
16:41:16.908 spy: attaching to "getElementsByClassName" function with results reporting
16:41:16.908 spy: attaching to "getElementsByClassName" function with results reporting
16:41:16.909 spy: attaching to "getElementsByTagName" function with results reporting
16:41:16.909 spy: attaching to "getElementsByTagName" function with results reporting
16:41:16.909 spy: attaching to "querySelector" function with results reporting
16:41:16.909 spy: attaching to "querySelectorAll" function with results reporting
16:41:16.909 spy: attaching to "querySelector" function with results reporting
16:41:16.909 spy: attaching to "querySelectorAll" function with results reporting
16:41:16.909 spy: attaching to "appendChild" function
16:41:16.909 spy: attaching to "insertBefore" function
16:41:16.910 spy: attaching to "addEventListener" function
16:41:16.910 spy: attaching to "addEventListener" function
16:41:16.910 spy: attaching to "addEventListener" function
16:41:16.910 spy: attaching to "dispatchEvent" function
16:41:16.912 spy: attaching to jQuery global variable
16:41:16.912 spy: attaching to "setTimeout" function
16:41:16.912 spy: attaching to "setInterval" function
16:41:16.913 spy: attaching to "write" function
16:41:16.913 spy: attaching to "writeln" function
16:41:16.913 repaints: window.mozPaintCount not available!
16:41:16.914 Spying disabled - installing window.performance metrics
16:41:16.914 Performance timing: emulating window.performance
16:41:16.914 Spying enabled
16:41:16.932 Event domQuery emitted
16:41:16.933 DOM query: by tag name - "*" (using getElementsByTagName) in div
16:41:16.933 DOM insert: node "html > div[2]" appended to "html"
16:41:16.935 DOM event: "DOMContentLoaded" bound to "#document"
16:41:16.935 DOM event: "load" bound to "window"
16:41:16.938 spy: jQuery global variable has been defined
16:41:16.939 Event jQueryLoaded emitted
16:41:16.939 jQuery: loaded v2.1.1
16:41:16.939 jQuery: v2.1.1 (probably loaded from <http://0.0.0.0:8888/static/jquery-2.1.1.min.js>)
16:41:16.939 spy: attaching to "promise" function
16:41:16.939 spy: attaching to "find" function
16:41:16.939 spy: attaching to "trigger" function
16:41:16.939 spy: attaching to "on" function
16:41:16.940 spy: attaching to "attr" function
16:41:16.940 spy: attaching to "css" function
16:41:16.940 spy: attaching to "prop" function
16:41:16.940 spy: attaching to "height" function
16:41:16.940 spy: attaching to "innerHeight" function
16:41:16.940 spy: attaching to "innerWidth" function
16:41:16.940 spy: attaching to "offset" function
16:41:16.943 spy: attaching to "outerHeight" function
16:41:16.943 spy: attaching to "outerWidth" function
16:41:16.944 spy: attaching to "text" function
16:41:16.944 spy: attaching to "width" function
16:41:16.944 spy: attaching to "scrollLeft" function
16:41:16.944 spy: attaching to "scrollTop" function
16:41:16.944 spy: attaching to "addClass" function
16:41:16.944 spy: attaching to "removeAttr" function
16:41:16.945 spy: attaching to "removeClass" function
16:41:16.945 spy: attaching to "removeProp" function
16:41:16.945 spy: attaching to "toggleClass" function
16:41:16.945 spy: attaching to "hasClass" function
16:41:16.945 spy: attaching to "position" function
16:41:16.945 Navigation Timing milestone: domInteractive
16:41:16.946 Event milestone emitted
16:41:16.946 Event metric emitted
16:41:16.946 Performance timing: document reached "interactive" state after 79 ms
16:41:16.946 Navigation Timing milestone: domReady
16:41:16.946 Event milestone emitted
16:41:16.947 Event metric emitted
16:41:16.947 Performance timing: document reached "DOMContentLoaded" state after 80 ms
16:41:16.948 Event: triggered "ready" on "#document"
16:41:16.949 Event onResourceReceived emitted
16:41:16.950 Event onResourceReceived emitted
16:41:16.950 recv: HTTP 200 <http://0.0.0.0:8888/static/mdn.png> [image/png]
16:41:16.950 Event recv emitted
16:41:16.950 Navigation Timing milestone: domComplete
16:41:16.950 Event milestone emitted
16:41:16.951 Performance timing: {"responseEnd":1433176876867}
16:41:16.951 Event metric emitted
16:41:16.951 Performance timing: document reached "complete" state after 84 ms
16:41:16.953 Page loading finished ("success")
16:41:16.953 Event loadFinished emitted
16:41:16.953 Loading progress: 100%
16:41:16.953 Event progress emitted
16:41:16.954 Event metric emitted
16:41:16.954 Performance timing: document reached "DOMContentLoadedEnd" state after 87 ms
16:41:17.951 Event report emitted
16:41:17.952 Event metric emitted
16:41:17.952 Cookies: document.cookie = ""
16:41:17.953 Event metric emitted
16:41:17.953 Event metric emitted
16:41:17.954 Event metric emitted
16:41:17.955 Spying disabled - counting iframes
16:41:17.956 Spying enabled
16:41:17.957 Spying disabled - counting global variables (injecting an empty iframe)
16:41:17.962 Spying enabled
16:41:17.965 Performance timing: backend vs frontend time - 28% / 72%
16:41:17.965 phantomas run for <http://0.0.0.0:8888/timing.html> completed in 1136 ms
16:41:17.965 Event results emitted
16:41:17.965 Returning results with 129 metric(s)...
16:41:17.966 Event json emitted
16:41:17.966 Done!
16:41:17.967 Event exit emitted
16:41:17.973 onInit: was already triggered
16:41:17.974 onInit: was already triggered
phantomas v1.10.2 metrics for <http://0.0.0.0:8888/timing.html>:

* requests: 4
* gzipRequests: 0
* postRequests: 0
* httpsRequests: 0
* notFound: 0
* bodySize: 107471 bytes
* contentLength: 107471 bytes
* httpTrafficCompleted: 88 ms
* timeToFirstByte: 32 ms
* timeToLastByte: 32 ms
* ajaxRequests: 0
* htmlCount: 1
* htmlSize: 202 bytes
* cssCount: 1
* cssSize: 22 bytes
* jsCount: 1
* jsSize: 84245 bytes
* jsonCount: 0
* jsonSize: 0 bytes
* imageCount: 1
* imageSize: 23002 bytes
* videoCount: 0
* videoSize: 0 bytes
* webfontCount: 0
* webfontSize: 0 bytes
* base64Count: 0
* base64Size: 0 bytes
* otherCount: 0
* otherSize: 0 bytes
* cacheHits: 0
* cacheMisses: 0
* cachePasses: 0
* cachingNotSpecified: 0
* cachingTooShort: 3
* cachingDisabled: 0
* oldCachingHeaders: 0
* consoleMessages: 0
* cookiesSent: 0 bytes
* cookiesRecv: 0 bytes
* domainsWithCookies: 0
* documentCookiesLength: 0 bytes
* documentCookiesCount: 1
* documentHeight: 768 px
* commentsSize: 0 bytes
* whiteSpacesSize: 11 bytes
* DOMelementsCount: 3
* DOMelementMaxDepth: 2
* nodesWithInlineCSS: 0
* imagesScaledDown: 0
* imagesWithoutDimensions: 0
* DOMidDuplicated: 0
* hiddenContentSize: 1 bytes
* DOMmutationsInserts: 0
* DOMmutationsRemoves: 0
* DOMmutationsAttributes: 0
* DOMqueries: 1
* DOMqueriesWithoutResults: 0
* DOMqueriesById: 0
* DOMqueriesByClassName: 0
* DOMqueriesByTagName: 1
* DOMqueriesByQuerySelectorAll: 0
* DOMinserts: 1
* DOMqueriesDuplicated: 0
* DOMqueriesAvoidable: 0
* domains: 1
* maxRequestsPerDomain: 4
* medianRequestsPerDomain: 4
* eventsBound: 2
* eventsDispatched: 0
* eventsScrollBound: 0
* globalVariables: 2
* globalVariablesFalsy: 0
* headersCount: 43
* headersSentCount: 11
* headersRecvCount: 32
* headersSize: 1645 bytes
* headersSentSize: 493 bytes
* headersRecvSize: 1152 bytes
* headersBiggerThanContent: 2
* jQueryVersion: 2.1.1
* jQueryVersionsLoaded: 1
* jQueryOnDOMReadyFunctions: 0
* jQueryWindowOnLoadFunctions: 0
* jQuerySizzleCalls: 0
* jQueryEventTriggers: 1
* jQueryDOMReads: 0
* jQueryDOMWrites: 0
* jQueryDOMWriteReadSwitches: 0
* documentWriteCalls: 0
* evalCalls: 0
* jsErrors: 0
* closedConnections: 0
* localStorageEntries: 0
* redirects: 0
* redirectsTime: 0 ms
* repaints: 0
* firstPaint: 0 ms
* requestsToDomContentLoaded: 3
* requestsToDomComplete: 4
* assetsNotGzipped: 3
* assetsWithQueryString: 0
* assetsWithCookies: 0
* smallImages: 0
* smallCssFiles: 1
* smallJsFiles: 0
* multipleRequests: 0
* timeToFirstCss: 44 ms
* timeToFirstJs: 65 ms
* timeToFirstImage: 112 ms
* domInteractive: 79 ms
* domContentLoaded: 80 ms
* domContentLoadedEnd: 87 ms
* domComplete: 84 ms
* timeBackend: 28 %
* timeFrontend: 72 %
* statusCodesTrail: 200
* windowAlerts: 0
* windowConfirms: 0
* windowPrompts: 0
* bodyHTMLSize: 121 bytes
* iframesCount: 0
* smallestResponse: 22 bytes
* biggestResponse: 84245 bytes
* fastestResponse: 11 ms
* slowestResponse: 62 ms
* smallestLatency: 11 ms
* biggestLatency: 61 ms
* medianResponse: 31 ms
* medianLatency: 30.5 ms

Offenders for htmlCount (1):
 * http://0.0.0.0:8888/timing.html (0.20 kB)

Offenders for cssCount (1):
 * http://0.0.0.0:8888/static/style.css (0.02 kB)

Offenders for jsCount (1):
 * http://0.0.0.0:8888/static/jquery-2.1.1.min.js (82.27 kB)

Offenders for imageCount (1):
 * http://0.0.0.0:8888/static/mdn.png (22.46 kB)

Offenders for cachingTooShort (3):
 * http://0.0.0.0:8888/static/style.css cached for 3600 s
 * http://0.0.0.0:8888/static/jquery-2.1.1.min.js cached for 3600 s
 * http://0.0.0.0:8888/static/mdn.png cached for 3600 s

Offenders for DOMelementMaxDepth (2):
 * body > p[0] > img[0]

Offenders for DOMqueriesByTagName (1):
 * * (in div)

Offenders for DOMinserts (1):
 * "html > div[2]" appended to "html"

Offenders for domains (1):
 * 0.0.0.0: 4 request(s)

Offenders for eventsBound (2):
 * "DOMContentLoaded" bound to "#document"
 * "load" bound to "window"

Offenders for globalVariables (2):
 * jQuery
 * $

Offenders for headersBiggerThanContent (2):
 * http://0.0.0.0:8888/timing.html (body: 0.20 kB / headers: 0.28 kB)
 * http://0.0.0.0:8888/static/style.css (body: 0.02 kB / headers: 0.27 kB)

Offenders for jQueryVersionsLoaded (1):
 * v2.1.1

Offenders for jQueryEventTriggers (1):
 * "ready" on "#document"

Offenders for assetsNotGzipped (3):
 * http://0.0.0.0:8888/timing.html (HTML)
 * http://0.0.0.0:8888/static/style.css (CSS)
 * http://0.0.0.0:8888/static/jquery-2.1.1.min.js (JS)

Offenders for smallCssFiles (1):
 * http://0.0.0.0:8888/static/style.css (0.02 kB)

Offenders for timeToFirstCss (44):
 * http://0.0.0.0:8888/static/style.css received in 44 ms

Offenders for timeToFirstJs (65):
 * http://0.0.0.0:8888/static/jquery-2.1.1.min.js received in 65 ms

Offenders for timeToFirstImage (112):
 * http://0.0.0.0:8888/static/mdn.png received in 112 ms

Offenders for smallestResponse (22):
 * http://0.0.0.0:8888/static/style.css (0.02 kB)

Offenders for biggestResponse (84245):
 * http://0.0.0.0:8888/static/jquery-2.1.1.min.js (82.27 kB)

Offenders for fastestResponse (11):
 * http://0.0.0.0:8888/static/style.css (11 ms)

Offenders for slowestResponse (62):
 * http://0.0.0.0:8888/static/mdn.png (62 ms)

Offenders for smallestLatency (11):
 * http://0.0.0.0:8888/static/style.css (11 ms)

Offenders for biggestLatency (61):
 * http://0.0.0.0:8888/static/mdn.png (61 ms)

I'll try on another machine.

gmetais commented 9 years ago

It's working properly on an Ubuntu VM:

* requestsToDomContentLoaded: 4
macbre commented 9 years ago

@gmetais, thanks for the investigation. I"ll try to refactor the test to be more deterministic and work across platforms.