axemclion / browser-perf Goto Github PK
View Code? Open in Web Editor NEWPerformance Metrics for Web Browsers
License: BSD 2-Clause "Simplified" License
Performance Metrics for Web Browsers
License: BSD 2-Clause "Simplified" License
Hey,
I would like to test my web application on iPad - real device not simulator.
I followed instructions on appium.io.
ideviceinstaller
SafariLauncher
is built and successfuly deployed to the deviceSafariLauncher
always opens default homepage (http://apple.com)? It doesn't matter what url I pass to the browser-perf command, it always open apple.com...Before running browser-perf:
ios-webkit-debug-proxy is launched
./bin/ios-webkit-debug-proxy-launcher.js -c <myudid>:27753 -d
appium is launched
node lib/server/main.js -U <myudid>
Safari on the device is opened.
Safari has enabled Web inspector
and in iOS - Settings - Developer - Enable UI Automation
is turned on.
Trying to run browser-perf (config based on ios-safari-appiun.config.json)
browser-perf --config-file=configs/ipad.config.json 192.168.1.4:8000/admin/dashboard
I see that safarilauncher opens default starting page in Safari on iPad instead a page provided in command.
Logs of browser-perf
$ browser-perf --config-file=configs/ipad.config.json 192.168.1.4:8000/admin/dashboard --verbose
index: Selenium is on %s localhost
Metrics: Initializing Metrics
Probes: Registering probe RafBenchmarkingProbe
Probes: Registering probe NavTimingProbe
Probes: Registering probe ChromeTimelineProbe
Probes: Registering probe SafariTimelineProbe
Probes: Registering probe ChromeTracingProbe
AndroidTracingProbe: Initialize
Probes: Registering probe AndroidTracingProbe
Probes: Registering probe ChromeTimelineProbe
Probes: Registering probe SafariTimelineProbe
Probes: setup
Probes: ChromeTimelineProbe setup called
Probes: SafariTimelineProbe setup called
Probes: ChromeTracingProbe setup called
Probes: AndroidTracingProbe setup called
index: > CALL init({"platformName":"iOS","platformVersion":"8.1.2","browserName":"Sa
Logs of appium
info: --> POST /wd/hub/session {"desiredCapabilities":{"platformName":"iOS","platformVersion":"8.1.2","browserName":"Safari","deviceName":"Milosz's iPad","loggingPrefs":{"performance":"ALL"},"chromeOptions":{"args":["--disable-popup-blocking","--enable-gpu-benchmarking","--enable-thread-composting"]}}}
info: Client User-Agent string: undefined
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : chromeOptions
info: [debug] Configuring Safari session
info: [debug] Using local .zip from command line: /Users/hinok/Desktop/Dev/appium/build/SafariLauncher/SafariLauncher.zip
info: [debug] Copying local zip to tmp dir
info: [debug] /Users/hinok/Desktop/Dev/appium/build/SafariLauncher/SafariLauncher.zip copied to /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/appium-app.zip
info: [debug] Unzipping /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/appium-app.zip
info: [debug] Testing zip archive: /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/appium-app.zip
info: [debug] Zip archive tested clean
info: [debug] Unzip successful
info: [debug] Using locally extracted app: /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app
info: [debug] Creating new appium session af59255b-3234-425a-a1b8-aa7316491d96
info: [debug] Removing any remaining instruments sockets
info: [debug] Cleaned up instruments socket /tmp/instruments_sock
info: [debug] Setting Xcode folder
info: [debug] Setting Xcode version
info: [debug] Setting iOS SDK Version
info: [debug] Getting sdk version from xcrun with a timeout
info: [debug] iOS SDK Version set to 8.1
info: [debug] Not checking whether simulator is available since we're on a real device
info: [debug] Detecting automation tracetemplate
info: [debug] Not auto-detecting udid, running on sim
info: [debug] Could not parse plist file (as binary) at /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app/en.lproj/Localizable.strings
info: Will try to parse the plist file as XML
info: [debug] Could not parse plist file (as XML) at /var/folders/qs/4zns5pb173v5yyy8hr_1grs40000gn/T/11512-14258-1wl6mpw/submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app/en.lproj/Localizable.strings
warn: Could not parse app Localizable.strings assuming it doesn't exist
info: [debug] Getting bundle ID from app
info: [debug] Parsed app Info.plist (as binary)
info: [debug] Creating instruments
info: On some xcode 6 platforms, instruments-without-delay does not work. If you experience this, you will need to re-run appium with the --native-instruments-lib flag
info: [debug] Preparing uiauto bootstrap
info: [debug] Dynamic bootstrap dir: /Users/hinok/Library/Application Support/appium/bootstrap
info: [debug] Dynamic env: {"nodePath":"/usr/local/bin/node","commandProxyClientPath":"/Users/hinok/Desktop/Dev/appium/node_modules/appium-uiauto/bin/command-proxy-client.js","instrumentsSock":"/tmp/instruments_sock","interKeyDelay":null,"justLoopInfinitely":false,"autoAcceptAlerts":false,"autoDismissAlerts":false,"sendKeyStrategy":"grouped"}
...o: [debug] Dynamic bootstrap code: // This file is automatically generated. Do not manually modify!
info: [debug] Dynamic bootstrap path: /Users/hinok/Library/Application Support/appium/bootstrap/bootstrap-20992c5174a34647.js
info: [debug] Reusing dynamic bootstrap: /Users/hinok/Library/Application Support/appium/bootstrap/bootstrap-20992c5174a34647.js
info: [debug] Getting device string from opts: {"forceIphone":false,"forceIpad":false,"xcodeVersion":"6.1.1","iOSSDKVersion":"8.1","deviceName":"Milosz's iPad","platformVersion":"8.1.2"}
info: [debug] fixDevice is on
info: [debug] Final device string is: 'Milosz's iPad (8.1.2 Simulator)'
info: [debug] Not setting device type since we're on a real device
info: [debug] Checking whether we need to set app preferences
info: [debug] Not setting iOS and app preferences since we're on a real device
info: [debug] Running ios sim reset flow
info: [debug] Killing the simulator process
info: [debug] Killall iOS Simulator
info: [debug] Killing any other simulator daemons
info: [debug] On a real device; cannot clean device state
info: [debug] Not setting locale because we're using a real device
info: [debug] No iOS / app preferences to set
info: [debug] Starting iOS device log capture via deviceconsole
info: [debug] Not pre-launching simulator
info: [debug] Checking app install status using: /Users/hinok/Desktop/Dev/appium/build/fruitstrap/fruitstrap isInstalled --id <myudid> --bundle com.bytearc.SafariLauncher
info: [debug] Starting command proxy.
info: [debug] Instruments socket server started at /tmp/instruments_sock
info: [debug] Starting instruments
info: [debug] Instruments is at: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments
info: Launching instruments
info: [debug] Attempting to run app on real device with UDID <myudid>
info: [debug] Spawning instruments with command: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate -D /tmp/appium-instruments/instrumentscli0.trace -w <myudid> com.bytearc.SafariLauncher -e UIASCRIPT "/Users/hinok/Library/Application Support/appium/bootstrap/bootstrap-20992c5174a34647.js" -e UIARESULTSPATH /tmp/appium-instruments
info: [debug] And extra without-delay env: {}
info: [debug] And launch timeouts (in ms): {"global":90000}
info: [debug] [INST STDERR] 2015-02-02 19:03:45.521 instruments[14372:84246] WebKit Threading Violation - initial use of WebKit from a secondary thread.
info: Instruments is ready to receive commands
info: [debug] Instruments launched. Starting poll loop for new commands.
info: [debug] Setting bootstrap config keys/values
info: [debug] Pushing command to appium work queue: "target = $.target();\nau = $;\n$.isVerbose = true;\n"
info: [debug] Socket data received (2 bytes)
info: [debug] Socket data being routed.
info: [debug] Sending command to instruments: target = $.target();
au = $;
$.isVerbose = true;
info: [debug] [INST] 2015-02-02 18:03:48 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-02-02 18:03:48 +0000 Debug: responding with:
info: [debug] [INST] 2015-02-02 18:03:48 +0000 Debug: Running system command #1: /usr/local/bin/node /Users/hinok/Desktop/Dev/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":true}...
info: [debug] Socket data received (27 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":true}
info: [debug] Setting initial orientation to PORTRAIT
info: [debug] Pushing command to appium work queue: "au.setScreenOrientation('PORTRAIT')"
info: [debug] Sending command to instruments: au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-02-02 18:03:49 +0000 Debug: Got new command 1 from instruments: au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-02-02 18:03:49 +0000 Debug: evaluating au.setScreenOrientation('PORTRAIT')
info: [debug] [INST] 2015-02-02 18:03:49 +0000 Debug: target.setDeviceOrientation("1")
info: [debug] [INST] 2015-02-02 18:03:50 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-02-02 18:03:50 +0000 Debug: responding with:
info: [debug] [INST] 2015-02-02 18:03:50 +0000 Debug: Running system command #2: /usr/local/bin/node /Users/hinok/Desktop/Dev/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":"PORTRAIT"}...
info: [debug] Socket data received (33 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":"PORTRAIT"}
info: [debug] Waiting for app source to contain elements
info: [debug] Pushing command to appium work queue: "au.mainApp().getTreeForXML()"
info: [debug] Sending command to instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-02 18:03:51 +0000 Debug: Got new command 2 from instruments: au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-02 18:03:51 +0000 Debug: evaluating au.mainApp().getTreeForXML()
info: [debug] [INST] 2015-02-02 18:03:52 +0000 Debug: evaluation finished
info: [debug] [INST] 2015-02-02 18:03:52 +0000 Debug: responding with:id":true,"visible":false,"hint":null,"path":"/0/0","x":0,"y":0,"width":768,"height":1024},">":[]}},{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1","x":0,"y":0,"width":768,"height":1024},">":[{"UIAButton":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":false,"valid":true,"visible":false,"hint":null,"path":"/0/1/0","x":0,"y":0,"width":768,"height":97},">":[]}},{"UIAButton":{"@":{"name":"URL","label":"Address","value":"apple.com","dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Edits the URL","path":"/0/1/1","x":180,"y":24.5,"width":408,"height":29},">":[{"UIAElement":{"@":{"name":"URL","label":"apple.com","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Edits the URL","path":"/0/1/1/0","x":182,"y":24.5,"width":404,"height":29},">":[]}},{"UIAButton":{"@":{"name":"ReloadButton","label":"reload","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/1/1","x":559,"y":24.5,"width":29,"height":29},">":[]}}]}},{"UIAToolbar":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2","x":0,"y":24.5,"width":768,"height":29},">":[{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/0","x":0,"y":24.5,"width":768,"height":29},">":[]}},{"UIAButton":{"@":{"name":"Back","label":"Back","value":null,"dom":null,"enabled":false,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/1","x":13.5,"y":19.5,"width":42,"height":40},">":[]}},{"UIAButton":{"@":{"name":"Forward","label":"Forward","value":null,"dom":null,"enabled":false,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/2","x":67,"y":19.5,"width":42,"height":40},">":[]}},{"UIAButton":{"@":{"name":"Show Bookmarks","label":"Show Bookmarks","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/3","x":111.5,"y":20,"width":57,"height":40},">":[]}},{"UIAButton":{"@":{"name":"Share","label":"Share","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/4","x":602.5,"y":18,"width":51,"height":40},">":[]}},{"UIAButton":{"@":{"name":"New tab","label":"New tab","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/5","x":655,"y":19,"width":53,"height":40},">":[]}},{"UIAButton":{"@":{"name":"Pages","label":"Pages","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/2/6","x":707.5,"y":19,"width":57,"height":40},">":[]}}]}},{"UIAScrollView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/3","x":0,"y":20,"width":768,"height":1004},">":[{"UIAScrollView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/3/0","x":0,"y":0,"width":768,"height":1024},">":[{"UIAWebView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/3/0/0","x":0,"y":96.5,"width":768,"height":1147},">":[{"UIALink":{"@":{"name":"Apple","label":"Apple","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/0","x":10,"y":95,"width":44,"height":20},">":[{"UIALink":{"@":{"name":"Apple","label":"Apple","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/0/0","x":10,"y":95,"width":44,"height":20},">":[{"UIALink":{"@":{"name":"Apple","label":"Apple","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/0/0/0","x":10,"y":95,"width":44,"height":20},">":[{"UIAStaticText":{"@":{"name":"Apple","label":"Apple","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/0/0/0/0","x":10,"y":95,"width":44,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"Store","label":"Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/1","x":68,"y":95,"width":39,"height":20},">":[{"UIALink":{"@":{"name":"Store","label":"Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/1/0","x":68,"y":95,"width":39,"height":20},">":[{"UIALink":{"@":{"name":"Store","label":"Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/1/0/0","x":68,"y":95,"width":39,"height":20},">":[{"UIAStaticText":{"@":{"name":"Store","label":"Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/1/0/0/0","x":68,"y":95,"width":39,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"Mac","label":"Mac","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/2","x":145,"y":95,"width":32,"height":20},">":[{"UIALink":{"@":{"name":"Mac","label":"Mac","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/2/0","x":145,"y":95,"width":32,"height":20},">":[{"UIALink":{"@":{"name":"Mac","label":"Mac","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/2/0/0","x":145,"y":95,"width":32,"height":20},">":[{"UIAStaticText":{"@":{"name":"Mac","label":"Mac","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/2/0/0/0","x":145,"y":95,"width":32,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"iPhone","label":"iPhone","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/3","x":218,"y":95,"width":52,"height":20},">":[{"UIALink":{"@":{"name":"iPhone","label":"iPhone","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/3/0","x":218,"y":95,"width":52,"height":20},">":[{"UIALink":{"@":{"name":"iPhone","label":"iPhone","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/3/0/0","x":218,"y":95,"width":52,"height":20},">":[{"UIAStaticText":{"@":{"name":"iPhone","label":"iPhone","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/3/0/0/0","x":218,"y":95,"width":52,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"Watch","label":"Watch","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/4","x":310,"y":95,"width":47,"height":20},">":[{"UIALink":{"@":{"name":"Watch","label":"Watch","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/4/0","x":310,"y":95,"width":47,"height":20},">":[{"UIALink":{"@":{"name":"Watch","label":"Watch","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/4/0/0","x":310,"y":95,"width":47,"height":20},">":[{"UIAStaticText":{"@":{"name":"Watch","label":"Watch","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/4/0/0/0","x":310,"y":95,"width":47,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"iPad","label":"iPad","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/5","x":396,"y":95,"width":32,"height":20},">":[{"UIALink":{"@":{"name":"iPad","label":"iPad","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/5/0","x":396,"y":95,"width":32,"height":20},">":[{"UIALink":{"@":{"name":"iPad","label":"iPad","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/5/0/0","x":396,"y":95,"width":32,"height":20},">":[{"UIAStaticText":{"@":{"name":"iPad","label":"iPad","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/5/0/0/0","x":396,"y":95,"width":32,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"iPod","label":"iPod","value":"","dom":{"id":""
info: [debug] [INST] },"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/6","x":469,"y":95,"width":33,"height":20},">":[{"UIALink":{"@":{"name":"iPod","label":"iPod","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/6/0","x":469,"y":95,"width":33,"height":20},">":[{"UIALink":{"@":{"name":"iPod","label":"iPod","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/6/0/0","x":469,"y":95,"width":33,"height":20},">":[{"UIAStaticText":{"@":{"name":"iPod","label":"iPod","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/6/0/0/0","x":469,"y":95,"width":33,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"iTunes","label":"iTunes","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/7","x":541,"y":95,"width":48,"height":20},">":[{"UIALink":{"@":{"name":"iTunes","label":"iTunes","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/7/0","x":541,"y":95,"width":48,"height":20},">":[{"UIALink":{"@":{"name":"iTunes","label":"iTunes","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/7/0/0","x":541,"y":95,"width":48,"height":20},">":[{"UIAStaticText":{"@":{"name":"iTunes","label":"iTunes","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/7/0/0/0","x":541,"y":95,"width":48,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"Support","label":"Support","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/8","x":630,"y":95,"width":61,"height":20},">":[{"UIALink":{"@":{"name":"Support","label":"Support","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/8/0","x":630,"y":95,"width":61,"height":20},">":[{"UIALink":{"@":{"name":"Support","label":"Support","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/8/0/0","x":630,"y":95,"width":61,"height":20},">":[{"UIAStaticText":{"@":{"name":"Support","label":"Support","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/8/0/0/0","x":630,"y":95,"width":61,"height":20},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":"Search apple.com","label":"Search apple.com","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/9","x":729,"y":95,"width":77,"height":38},">":[{"UIALink":{"@":{"name":"Search apple.com","label":"Search apple.com","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/9/0","x":729,"y":95,"width":77,"height":38},">":[{"UIAStaticText":{"@":{"name":"Search apple.com","label":"Search apple.com","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/9/0/0","x":729,"y":95,"width":77,"height":38},">":[]}}]}}]}},{"UIALink":{"@":{"name":"Start something new. When you start with amazing products, you can create amazing things.","label":"Start something new. When you start with amazing products, you can create amazing things.","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/10","x":0,"y":142,"width":768,"height":585},">":[{"UIALink":{"@":{"name":"Start something new.","label":"Start something new.","value":"1","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/0","x":126,"y":240,"width":516,"height":70},">":[{"UIAStaticText":{"@":{"name":"Start something new.","label":"Start something new.","value":"1","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/0/0","x":126,"y":240,"width":516,"height":70},">":[]}}]}},{"UIALink":{"@":{"name":"When you start with amazing products, you can create amazing things.","label":"When you start with amazing products, you can create amazing things.","value":"2","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/1","x":124,"y":312,"width":520,"height":23},">":[{"UIAStaticText":{"@":{"name":"When you start with amazing products, you can create amazing things.","label":"When you start with amazing products, you can create amazing things.","value":"2","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/1/0","x":124,"y":312,"width":520,"height":23},">":[]}}]}},{"UIALink":{"@":{"name":"View the gallery, ","label":"View the gallery, ","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/2","x":316,"y":337,"width":137,"height":29},">":[{"UIALink":{"@":{"name":"View the gallery, ","label":"View the gallery, ","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/2/0","x":316,"y":337,"width":137,"height":29},">":[{"UIAStaticText":{"@":{"name":"View the gallery","label":"View the gallery","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/2/0/0","x":316,"y":340,"width":125,"height":23},">":[]}},{"UIALink":{"@":{"name":"","label":"","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/2/0/1","x":446,"y":338,"width":6,"height":25},">":[{"UIAStaticText":{"@":{"name":"","label":"","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":true,"hint":"","path":"/0/1/3/0/0/10/2/0/1/0","x":446,"y":338,"width":6,"height":25},">":[]}}]}}]}}]}},{"UIALink":{"@":{"name":null,"label":null,"value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/10/3","x":0,"y":365,"width":768,"height":250},">":[]}}]}},{"UIALink":{"@":{"name":"iPad Air 2 Watch the film “Change” >","label":"iPad Air 2 Watch the film “Change” >","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/11","x":0,"y":96,"width":0,"height":1},">":[{"UIAStaticText":{"@":{"name":"iPad Air 2 Watch the film “Change” >","label":"iPad Air 2 Watch the film “Change” >","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/11/0","x":0,"y":96,"width":0,"height":1},">":[]}}]}},{"UIALink":{"@":{"name":"iPhone 6 Bigger than bigger","label":"iPhone 6 Bigger than bigger","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/12","x":0,"y":96,"width":0,"height":1},">":[{"UIAStaticText":{"@":{"name":"iPhone 6 Bigger than bigger","label":"iPhone 6 Bigger than bigger","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/12/0","x":0,"y":96,"width":0,"height":1},">":[]}}]}},{"UIALink":{"@":{"name":"Apple Watch Our most personal device yet.","label":"Apple Watch Our most personal device yet.","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/13","x":0,"y":96,"width":0,"height":1},">":[{"UIAStaticText":{"@":{"name":"Apple Watch Our most personal device yet.","label":"Apple Watch Our most personal device yet.","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/13/0","x":0,"y":96,"width":0,"height":1},">":[]}}]}},{"UIALink":{"@":{"name":"iMac with Retina 5K Display","label":"iMac with Retina 5K Display","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/14","x":0,"y":96,"width":0,"height":1},">":[{"UIAStaticText":{"@":{"name":"iMac with Retina 5K Display","label":"iMac with Retina 5K Display","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/14/0","x":0,"y":96,"width":0,"height":1},">":[]}}]}},{"UIAStaticText":{"@":{"name":"Shop the","label":"Shop the","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/15","x":22,"y":1157,"width":48,"height":14},">":[]}},{"UIALink":{
info: [debug] [INST] "@":{"name":"Apple Online Store","label":"Apple Online Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/16","x":69,"y":1157,"width":93,"height":14},">":[{"UIAStaticText":{"@":{"name":"Apple Online Store","label":"Apple Online Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/16/0","x":69,"y":1157,"width":93,"height":14},">":[]}}]}},{"UIAStaticText":{"@":{"name":"(","label":"(","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/17","x":161,"y":1157,"width":7,"height":14},">":[]}},{"UIALink":{"@":{"name":"1-800-MY-APPLE","label":"1-800-MY-APPLE","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/18","x":167,"y":1157,"width":82,"height":14},">":[{"UIAStaticText":{"@":{"name":"1-800-MY-APPLE","label":"1-800-MY-APPLE","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/18/0","x":167,"y":1157,"width":82,"height":14},">":[]}}]}},{"UIAStaticText":{"@":{"name":"),","label":"),","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/19","x":248,"y":1157,"width":7,"height":14},">":[]}},{"UIAStaticText":{"@":{"name":"visit an","label":"visit an","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/20","x":254,"y":1157,"width":41,"height":14},">":[]}},{"UIALink":{"@":{"name":"Apple Retail Store","label":"Apple Retail Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/21","x":294,"y":1157,"width":88,"height":14},">":[{"UIAStaticText":{"@":{"name":"Apple Retail Store","label":"Apple Retail Store","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/21/0","x":294,"y":1157,"width":88,"height":14},">":[]}}]}},{"UIAStaticText":{"@":{"name":", or find a","label":", or find a","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/22","x":381,"y":1157,"width":49,"height":14},">":[]}},{"UIALink":{"@":{"name":"reseller","label":"reseller","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/23","x":429,"y":1157,"width":36,"height":14},">":[{"UIAStaticText":{"@":{"name":"reseller","label":"reseller","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/23/0","x":429,"y":1157,"width":36,"height":14},">":[]}}]}},{"UIAStaticText":{"@":{"name":".","label":".","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/24","x":464,"y":1157,"width":4,"height":14},">":[]}},{"UIALink":{"@":{"name":"Apple Info","label":"Apple Info","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/25","x":22,"y":1180,"width":51,"height":14},">":[{"UIAStaticText":{"@":{"name":"Apple Info","label":"Apple Info","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/25/0","x":22,"y":1180,"width":51,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Site Map","label":"Site Map","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/26","x":86,"y":1180,"width":44,"height":14},">":[{"UIAStaticText":{"@":{"name":"Site Map","label":"Site Map","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/26/0","x":86,"y":1180,"width":44,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Hot News","label":"Hot News","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/27","x":142,"y":1180,"width":49,"height":14},">":[{"UIAStaticText":{"@":{"name":"Hot News","label":"Hot News","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/27/0","x":142,"y":1180,"width":49,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"RSS Feeds","label":"RSS Feeds","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/28","x":204,"y":1180,"width":50,"height":14},">":[{"UIAStaticText":{"@":{"name":"RSS Feeds","label":"RSS Feeds","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/28/0","x":204,"y":1180,"width":50,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Jobs","label":"Jobs","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/29","x":266,"y":1180,"width":23,"height":14},">":[{"UIAStaticText":{"@":{"name":"Jobs","label":"Jobs","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/29/0","x":266,"y":1180,"width":23,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Contact Us","label":"Contact Us","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/30","x":302,"y":1180,"width":54,"height":14},">":[{"UIAStaticText":{"@":{"name":"Contact Us","label":"Contact Us","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/30/0","x":302,"y":1180,"width":54,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Choose your country or region","label":"Choose your country or region","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/31","x":370,"y":1177,"width":17,"height":17},">":[{"UIAImage":{"@":{"name":"Choose your country or region","label":"Choose your country or region","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/31/0","x":370,"y":1177,"width":17,"height":17},">":[]}}]}},{"UIAStaticText":{"@":{"name":"Copyright © 2015 Apple Inc. All rights reserved.","label":"Copyright © 2015 Apple Inc. All rights reserved.","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/32","x":22,"y":1203,"width":228,"height":14},">":[]}},{"UIALink":{"@":{"name":"Terms of Use","label":"Terms of Use","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/33","x":258,"y":1203,"width":63,"height":14},">":[{"UIAStaticText":{"@":{"name":"Terms of Use","label":"Terms of Use","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/33/0","x":258,"y":1203,"width":63,"height":14},">":[]}}]}},{"UIALink":{"@":{"name":"Updated Privacy Policy","label":"Updated Privacy Policy","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/34","x":334,"y":1203,"width":112,"height":14},">":[{"UIAStaticText":{"@":{"name":"Updated Privacy Policy","label":"Updated Privacy Policy","value":"","dom":{"id":""},"enabled":true,"valid":true,"visible":false,"hint":"","path":"/0/1/3/0/0/34/0","x":334,"y":1203,"width":112,"height":14},">":[]}}]}}]}},{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/3/0/1","x":765.5,"y":1049.5,"width":2.5,"height":7},">":[]}},{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/3/0/2","x":761,"y":1118,"width":7,"height":2.5},">":[]}}]}},{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/3/1","x":761,"y":1021.5,"width":7,"height":2.5},">":[]}}]}},{"UIAStaticText":{"@":{"name":"Apple - iPhone, Tab","label":"Apple - iPhone, Tab","value":"Apple - iPhone, Tab","dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Double tap and hold, then move left or right to re-order.","path":"/0/1/4","x":0,"y":64,"width":384,"height":32.5},">":[]}},{"UIAStaticText":{"@":{"name":"Apple - iPhone","label":"Apple - iPhone","value":"Apple - iPhone","dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/5","x":150,"y":73,"width":84,"height":14.5},">":[]}},{
info: [debug] [INST] "UIAScrollView":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/6","x":0,"y":64,"width":768,"height":32.5},">":[{"UIAImage":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/6/0","x":765.5,"y":28,"width":2.5,"height":36},">":[]}}]}},{"UIAStaticText":{"@":{"name":"Apple, Tab","label":"Apple, Tab","value":"Apple, Tab","dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Double tap and hold, then move left or right to re-order.","path":"/0/1/7","x":411,"y":64,"width":357,"height":32.5},">":[]}},{"UIAStaticText":{"@":{"name":"Apple","label":"Apple","value":"Apple","dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/8","x":559.5,"y":73,"width":33,"height":14.5},">":[]}},{"UIAButton":{"@":{"name":"Close Tab","label":"Close Tab","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/1/9","x":384,"y":64,"width":27,"height":32.5},">":[]}},{"UIAStaticText":{"@":{"name":"Apple - iPhone, Tab","label":"Apple - iPhone, Tab","value":"Apple - iPhone, Tab","dom":null,"enabled":true,"valid":true,"visible":false,"hint":"Double tap and hold, then move left or right to re-order.","path":"/0/1/10","x":0,"y":64,"width":384,"height":32.5},">":[]}},{"UIAStaticText":{"@":{"name":"Apple - iPhone","label":"Apple - iPhone","value":"Apple - iPhone","dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/1/11","x":150,"y":73,"width":84,"height":14.5},">":[]}}]}},{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":false,"hint":null,"path":"/0/2","x":0,"y":0,"width":768,"height":1024},">":[]}},{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/3","x":0,"y":0,"width":768,"height":1024},">":[{"UIAStatusBar":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0/3/0","x":0,"y":0,"width":768,"height":20},">":[{"UIAElement":{"@":{"name":"iPad","label":"iPad","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/3/0/0","x":6,"y":0,"width":25,"height":20},">":[]}},{"UIAElement":{"@":{"name":"3 of 3 Wi-Fi bars","label":"3 of 3 Wi-Fi bars","value":"krzychu kadetem tera","dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/3/0/1","x":36,"y":0,"width":13,"height":20},">":[]}},{"UIAElement":{"@":{"name":"19:03","label":"19:03","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/3/0/2","x":369,"y":0,"width":30,"height":20},">":[]}},{"UIAElement":{"@":{"name":"100% battery power, On AC Power","label":"100% battery power, On AC Power","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":"Swipe down with three fingers to reveal the notification center., Swipe up with three fingers to reveal the control center, Double-tap to scroll to top","path":"/0/3/0/3","x":696,"y":0,"width":67,"height":20},">":[]}}]}}]}}]}}}
info: [debug] [INST] 2015-02-02 18:03:52 +0000 Debug: Running system command #3: /usr/local/bin/node /Users/hinok/Desktop/Dev/appium/node_modules/appium-uiauto/bin/command-proxy-client.js /tmp/instruments_sock 2,{"status":0,"value":{"UIAApplication":{"@":{"name":"Safari","label":"Safari","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0","...
info: [debug] Socket data received (8188 bytes)
info: [debug] Socket data received (8106 bytes)
info: [debug] Socket data received (8190 bytes)
info: [debug] Socket data received (3875 bytes)
info: [debug] Socket data being routed.
info: [debug] Got result from instruments: {"status":0,"value":{"UIAApplication":{"@":{"name":"Safari","label":"Safari","value":null,"dom":null,"enabled":true,"valid":true,"visible":true,"hint":null,"path":"/0","x":0,"y":20,"width":768,"height":1004},">":[{"UIAWindow":{"@":{"name":null,"label":null,"value":null,"dom":null,"enabled":true,"val
info: [debug] Navigating to most recently opened webview
info: [debug] [REMOTE] Getting WebKitRemoteDebugger pageArray
info: [debug] Picking webview WEBVIEW_1
info: [debug] Attempting to set context to 'WEBVIEW_1'
info: [debug] [REMOTE] Debugger web socket connected to url [ws://localhost:27753/devtools/page/1]
info: [debug] Starting performance log on 1
info: [debug] Starting to capture timeline logs
info: [debug] [REMOTE] Starting to record the timeline
info: [debug] [REMOTE] Remote debugger data sent [{"method":"Timeline.start","params":{"objectGroup":"console","includeCommandLineAPI":true,"doNotPauseOnExceptionsAndMuteConsole":true},"id":1}...]
Debugger web socket received data : {"method":"Timeline.recordingStarted"}
info: [debug] [REMOTE] Debugger got a message for 'Timeline.recordingStarted' and have no handler, doing nothing.
Debugger web socket received data : {"result":{},"id":1}
info: [debug] [REMOTE] Debugger got a message for 'Timeline.start' and have no handler, doing nothing.
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900248908.915,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900248908.9604,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900248.909204,"totalTime":0.003640890121459961}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900248.909707,"totalTime":0.003134012222290039}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900248.909735,"totalTime":0.0030989646911621094}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900248.909965,"totalTime":0.0006868839263916016}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900248.910372,"totalTime":0.0002760887145996094}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900248.910531,"totalTime":0.00002002716064453125},{"startTime":1422900248.910555,"totalTime":0.0000040531158447265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900248.910561,"totalTime":0.00008392333984375}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900248.910655,"totalTime":0.0003299713134765625}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900248.910829,"totalTime":0.00004887580871582031}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900248.910881,"totalTime":0.00004887580871582031}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900248.910934,"totalTime":0.00004696846008300781}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900248.910988,"totalTime":0.00023698806762695313}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900248.911163,"totalTime":0.000008821487426757813}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900248.911173,"totalTime":0.00005078315734863281}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900248.911229,"totalTime":0.0016040802001953125}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900248.911794,"totalTime":0.00003314018249511719}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900248.911798,"totalTime":0.000027894973754882813}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900248.911805,"totalTime":0.000008106231689453125},{"startTime":1422900248.911815,"totalTime":0.0000030994415283203125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900248.911819,"totalTime":0.0000050067901611328125}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900248.91184,"totalTime":0.00017905235290527344}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900248.911925,"totalTime":0.00009298324584960938}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900248.912022,"totalTime":0.000016927719116210938}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900248.91203,"totalTime":0.0000030994415283203125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900248.912034,"totalTime":0.0000040531158447265625}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900248.912043,"totalTime":0.00009679794311523438}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900248.912097,"totalTime":0.000041961669921875}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900248.912149,"totalTime":0.0006811618804931641}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900248.912286,"totalTime":0.00000286102294921875}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900248.912291,"totalTime":0.0005190372467041016}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900248.912416,"totalTime":0.00038909912109375}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900248.912813,"totalTime":0.000015974044799804688}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900248.91282,"totalTime":0.00000286102294921875}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900248.912824,"totalTime":0.0000040531158447265625}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.000049114227294921875}},"children":[],"endTime":1422900248913.1462,"type":"FunctionCall"}],"endTime":1422900248913.161,"type":"TimerFire"}}}
info: [debug] Flushing Timeline events
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900258914.086,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900258914.1174,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900258.914321,"totalTime":0.0002911090850830078}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900258.91433,"totalTime":0.0002779960632324219}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900258.914348,"totalTime":0.0002582073211669922}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900258.914356,"totalTime":0.00006794929504394531}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900258.914362,"totalTime":0.00006008148193359375}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900258.914377,"totalTime":0.0000209808349609375},{"startTime":1422900258.914402,"totalTime":0.0000040531158447265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900258.914408,"totalTime":0.000013113021850585938}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900258.914428,"totalTime":0.00002288818359375}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900258.914432,"totalTime":0.00000286102294921875}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900258.914439,"totalTime":0.0000021457672119140625}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900258.914445,"totalTime":0.0000030994415283203125}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900258.914454,"totalTime":0.000031948089599609375}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900258.914465,"totalTime":0.000008106231689453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900258.914474,"totalTime":0.000010967254638671875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900258.91449,"totalTime":0.00011396408081054688}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900258.914493,"totalTime":0.00002002716064453125}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900258.914495,"totalTime":0.000016927719116210938}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900258.914498,"totalTime":0.000003814697265625},{"startTime":1422900258.914504,"totalTime":0.0000019073486328125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900258.914508,"totalTime":0.00000286102294921875}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900258.914518,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900258.914523,"totalTime":0.0000050067901611328125}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900258.914532,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900258.914535,"totalTime":0.00000286102294921875}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900258.914539,"totalTime":0.00000286102294921875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900258.914547,"totalTime":0.0000059604644775390625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900258.91455,"totalTime":0.00000286102294921875}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900258.914559,"totalTime":0.00004410743713378906}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900258.914564,"totalTime":0.0000030994415283203125}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900258.914568,"totalTime":0.0000209808349609375}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900258.914579,"totalTime":0.000007152557373046875}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900258.914591,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900258.914595,"totalTime":0.0000021457672119140625}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900258.914598,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003170967102050781}},"children":[],"endTime":1422900258914.877,"type":"FunctionCall"}],"endTime":1422900258914.89,"type":"TimerFire"}}}
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900268919.2268,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900268919.2593,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900268.919464,"totalTime":0.00029277801513671875}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900268.919472,"totalTime":0.0002810955047607422}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900268.91949,"totalTime":0.0002608299255371094}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900268.919499,"totalTime":0.00006818771362304688}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900268.919505,"totalTime":0.00006008148193359375}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900268.919519,"totalTime":0.00002193450927734375},{"startTime":1422900268.919544,"totalTime":0.0000050067901611328125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900268.91955,"totalTime":0.000014066696166992188}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900268.919571,"totalTime":0.000024080276489257813}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900268.919576,"totalTime":0.0000030994415283203125}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900268.919583,"totalTime":0.0000019073486328125}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900268.919589,"totalTime":0.0000019073486328125}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900268.919598,"totalTime":0.000031948089599609375}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900268.919609,"totalTime":0.0000069141387939453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900268.919617,"totalTime":0.000010967254638671875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900268.919634,"totalTime":0.00011587142944335938}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900268.919638,"totalTime":0.00002002716064453125}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900268.91964,"totalTime":0.000016927719116210938}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900268.919643,"totalTime":0.0000040531158447265625},{"startTime":1422900268.919649,"totalTime":0.0000030994415283203125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900268.919653,"totalTime":0.0000030994415283203125}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900268.919663,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900268.919668,"totalTime":0.0000050067901611328125}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900268.919676,"totalTime":0.000011920928955078125}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900268.91968,"totalTime":0.00000286102294921875}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900268.919684,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900268.919692,"totalTime":0.0000059604644775390625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900268.919695,"totalTime":0.0000021457672119140625}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900268.919705,"totalTime":0.00004315376281738281}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900268.91971,"totalTime":0.0000021457672119140625}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900268.919713,"totalTime":0.0000209808349609375}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900268.919724,"totalTime":0.000008106231689453125}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900268.919736,"totalTime":0.000011205673217773438}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900268.91974,"totalTime":0.0000021457672119140625}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900268.919743,"totalTime":0.00000286102294921875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003218650817871094}},"children":[],"endTime":1422900268920.0244,"type":"FunctionCall"}],"endTime":1422900268920.0369,"type":"TimerFire"}}}
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900278924.4292,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900278924.4617,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900278.924666,"totalTime":0.00029015541076660156}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900278.924675,"totalTime":0.0002779960632324219}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900278.924692,"totalTime":0.0002579689025878906}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900278.9247,"totalTime":0.00006794929504394531}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900278.924706,"totalTime":0.00006008148193359375}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900278.924721,"totalTime":0.0000209808349609375},{"startTime":1422900278.924746,"totalTime":0.0000040531158447265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900278.924752,"totalTime":0.000013113021850585938}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900278.924772,"totalTime":0.00002288818359375}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900278.924777,"totalTime":0.00000286102294921875}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900278.924783,"totalTime":0.0000019073486328125}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900278.924789,"totalTime":0.0000021457672119140625}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900278.924799,"totalTime":0.000030994415283203125}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900278.924809,"totalTime":0.000008106231689453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900278.924818,"totalTime":0.000010967254638671875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900278.924834,"totalTime":0.00011491775512695313}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900278.924837,"totalTime":0.00002193450927734375}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900278.924839,"totalTime":0.000017881393432617188}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900278.924843,"totalTime":0.000003814697265625},{"startTime":1422900278.924848,"totalTime":0.000003814697265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900278.924853,"totalTime":0.00000286102294921875}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900278.924864,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900278.924868,"totalTime":0.0000059604644775390625}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900278.924877,"totalTime":0.000010013580322265625}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900278.924881,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900278.924884,"totalTime":0.0000019073486328125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900278.924892,"totalTime":0.0000059604644775390625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900278.924895,"totalTime":0.0000019073486328125}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900278.924903,"totalTime":0.00004506111145019531}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900278.924908,"totalTime":0.0000030994415283203125}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900278.924912,"totalTime":0.00002193450927734375}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900278.924923,"totalTime":0.000008106231689453125}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900278.924936,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900278.92494,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900278.924943,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003170967102050781}},"children":[],"endTime":1422900278925.2256,"type":"FunctionCall"}],"endTime":1422900278925.2383,"type":"TimerFire"}}}
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900288929.5525,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900288929.5852,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900288.929793,"totalTime":0.0002942085266113281}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900288.929802,"totalTime":0.0002810955047607422}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900288.92982,"totalTime":0.0002608299255371094}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900288.929829,"totalTime":0.00006818771362304688}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900288.929835,"totalTime":0.00005984306335449219}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900288.92985,"totalTime":0.0000209808349609375},{"startTime":1422900288.929875,"totalTime":0.0000040531158447265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900288.929881,"totalTime":0.000012874603271484375}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900288.929901,"totalTime":0.000022172927856445313}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900288.929905,"totalTime":0.0000030994415283203125}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900288.929912,"totalTime":0.0000019073486328125}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900288.929918,"totalTime":0.0000019073486328125}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900288.929926,"totalTime":0.00003314018249511719}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900288.929938,"totalTime":0.0000069141387939453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900288.929947,"totalTime":0.000010013580322265625}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900288.929963,"totalTime":0.00011682510375976563}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900288.929966,"totalTime":0.00002193450927734375}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900288.929969,"totalTime":0.000017881393432617188}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900288.929973,"totalTime":0.0000040531158447265625},{"startTime":1422900288.929978,"totalTime":0.0000040531158447265625}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900288.929983,"totalTime":0.0000030994415283203125}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900288.929993,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900288.929997,"totalTime":0.0000059604644775390625}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900288.930006,"totalTime":0.000011920928955078125}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900288.93001,"totalTime":0.00000286102294921875}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900288.930014,"totalTime":0.0000021457672119140625}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900288.930022,"totalTime":0.0000059604644775390625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900288.930025,"totalTime":0.0000019073486328125}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900288.930034,"totalTime":0.00004506111145019531}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900288.930039,"totalTime":0.0000021457672119140625}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900288.930042,"totalTime":0.00002288818359375}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900288.930054,"totalTime":0.000008106231689453125}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900288.930067,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900288.930071,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900288.930074,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003361701965332031}},"children":[],"endTime":1422900288930.358,"type":"FunctionCall"}],"endTime":1422900288930.37,"type":"TimerFire"}}}
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900298934.7588,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900298934.792,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900298.934995,"totalTime":0.0002911090850830078}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900298.935005,"totalTime":0.0002770423889160156}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900298.935022,"totalTime":0.0002579689025878906}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900298.93503,"totalTime":0.00006699562072753906}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900298.935036,"totalTime":0.0000591278076171875}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900298.93505,"totalTime":0.0000209808349609375},{"startTime":1422900298.935074,"totalTime":0.0000050067901611328125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900298.93508,"totalTime":0.000014066696166992188}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900298.935101,"totalTime":0.000024080276489257813}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900298.935106,"totalTime":0.00000286102294921875}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900298.935113,"totalTime":0.0000021457672119140625}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900298.935119,"totalTime":0.0000030994415283203125}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900298.935129,"totalTime":0.00003218650817871094}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900298.935139,"totalTime":0.000008106231689453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900298.935149,"totalTime":0.000010013580322265625}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900298.935164,"totalTime":0.00011396408081054688}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900298.935167,"totalTime":0.00002193450927734375}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900298.93517,"totalTime":0.0000171661376953125}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900298.935173,"totalTime":0.0000040531158447265625},{"startTime":1422900298.935179,"totalTime":0.0000030994415283203125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900298.935183,"totalTime":0.00000286102294921875}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900298.935193,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900298.935197,"totalTime":0.0000059604644775390625}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900298.935206,"totalTime":0.000012159347534179688}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900298.93521,"totalTime":0.0000030994415283203125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900298.935214,"totalTime":0.00000286102294921875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900298.935222,"totalTime":0.000006198883056640625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900298.935225,"totalTime":0.0000030994415283203125}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900298.935234,"totalTime":0.00004291534423828125}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900298.935239,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900298.935243,"totalTime":0.000021219253540039063}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900298.935254,"totalTime":0.000007867813110351563}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900298.935266,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900298.93527,"totalTime":0.00000095367431640625}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900298.935273,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003170967102050781}},"children":[],"endTime":1422900298935.5532,"type":"FunctionCall"}],"endTime":1422900298935.5657,"type":"TimerFire"}}}
Debugger web socket received data : {"method":"Timeline.eventRecorded","params":{"record":{"startTime":1422900308938.2883,"frameId":"0.1","data":{"timerId":5},"children":[{"startTime":1422900308938.3188,"frameId":"0.1","data":{"scriptName":"undefined","scriptLine":1,"profile":{"rootNodes":[{"id":12970251,"calls":[{"startTime":1422900308.938524,"totalTime":0.0002899169921875}],"functionName":"(anonymous function)","children":[{"id":15250026,"calls":[{"startTime":1422900308.938533,"totalTime":0.0002770423889160156}],"functionName":"(anonymous function)","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":977,"columnNumber":120,"children":[{"id":7361310,"calls":[{"startTime":1422900308.93855,"totalTime":0.0002570152282714844}],"functionName":"showNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":665,"columnNumber":25,"children":[{"id":3040487,"calls":[{"startTime":1422900308.938559,"totalTime":0.00006794929504394531}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900308.938565,"totalTime":0.00006008148193359375}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900308.938579,"totalTime":0.00002193450927734375},{"startTime":1422900308.938604,"totalTime":0.00000476837158203125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900308.938611,"totalTime":0.000012874603271484375}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":9265625,"calls":[{"startTime":1422900308.938631,"totalTime":0.00002193450927734375}],"functionName":"getNext","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":661,"columnNumber":37,"children":[{"id":12803190,"calls":[{"startTime":1422900308.938635,"totalTime":0.00000286102294921875}],"functionName":"getSelectedIndex","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":664,"columnNumber":65},{"id":15114518,"calls":[{"startTime":1422900308.938641,"totalTime":0.00000286102294921875}],"functionName":"isEndless","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":45},{"id":1567471,"calls":[{"startTime":1422900308.938647,"totalTime":0.00000286102294921875}],"functionName":"numKeyframes","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":660,"columnNumber":28}]},{"id":4294787,"calls":[{"startTime":1422900308.938657,"totalTime":0.000030994415283203125}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900308.938668,"totalTime":0.0000069141387939453125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900308.938676,"totalTime":0.000010967254638671875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":1983879,"calls":[{"startTime":1422900308.938692,"totalTime":0.00011396408081054688}],"functionName":"show","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":678,"columnNumber":95,"children":[{"id":3040487,"calls":[{"startTime":1422900308.938695,"totalTime":0.00002002716064453125}],"functionName":"j","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":186,"columnNumber":13,"children":[{"id":8017675,"calls":[{"startTime":1422900308.938697,"totalTime":0.000016927719116210938}],"functionName":"o","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":166,"columnNumber":72,"children":[{"id":9534345,"calls":[{"startTime":1422900308.938701,"totalTime":0.0000030994415283203125},{"startTime":1422900308.938706,"totalTime":0.0000030994415283203125}],"functionName":"bind"},{"id":5642184,"calls":[{"startTime":1422900308.93871,"totalTime":0.0000030994415283203125}],"functionName":"p","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":162,"columnNumber":55}]}]},{"id":11039771,"calls":[{"startTime":1422900308.93872,"totalTime":0.000010967254638671875}],"functionName":"create","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":892,"columnNumber":84,"children":[{"id":8646418,"calls":[{"startTime":1422900308.938725,"totalTime":0.0000050067901611328125}],"functionName":"n","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":879,"columnNumber":65}]},{"id":4294787,"calls":[{"startTime":1422900308.938733,"totalTime":0.000011920928955078125}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900308.938738,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900308.938741,"totalTime":0.0000030994415283203125}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]},{"id":10145964,"calls":[{"startTime":1422900308.93875,"totalTime":0.0000059604644775390625}],"functionName":"isLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":676,"columnNumber":24,"children":[{"id":15957860,"calls":[{"startTime":1422900308.938753,"totalTime":0.0000021457672119140625}],"functionName":"getLocked","url":"http://images.apple.com/v/home/bm/scripts/home.built.js","lineNumber":675,"columnNumber":96}]},{"id":13328983,"calls":[{"startTime":1422900308.938762,"totalTime":0.00004315376281738281}],"functionName":"m","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":179,"columnNumber":133,"children":[{"id":11026160,"calls":[{"startTime":1422900308.938767,"totalTime":0.0000021457672119140625}],"functionName":"slice"},{"id":1932237,"calls":[{"startTime":1422900308.938771,"totalTime":0.00002002716064453125}],"functionName":"resolve","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":169,"columnNumber":91,"children":[{"id":11281676,"calls":[{"startTime":1422900308.938781,"totalTime":0.000007867813110351563}],"functionName":"c","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":157,"columnNumber":78}]},{"id":4294787,"calls":[{"startTime":1422900308.938793,"totalTime":0.000010967254638671875}],"functionName":"l","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":184,"columnNumber":44,"children":[{"id":11026160,"calls":[{"startTime":1422900308.938797,"totalTime":0.0000019073486328125}],"functionName":"slice"},{"id":9528906,"calls":[{"startTime":1422900308.9388,"totalTime":0.00000286102294921875}],"functionName":"promise","url":"http://images.apple.com/v/home/bm/scripts/head.built.js","lineNumber":168,"columnNumber":76}]}]}]}]}]}]}],"idleTime":0.00003409385681152344}},"children":[],"endTime":1422900308939.0867,"type":"FunctionCall"}],"endTime":1422900308939.0989,"type":"TimerFire"}}}
Additional information
I upgraded to browser-perf 1.1.2 - still have the same issue.
I feel that I am so close to run tests on real device but to be honest I don't know what I could do now.
npm install -save browser-perf
browser-perf http://google.com --browsers=chrome --selenium=localhost:4444
with default setting I am getting following error using terminal.
env: node\r: No such file or directory
First of all, great tool! However, I'm stuck.
I'm following (this guide)[https://github.com/axemclion/browser-perf/wiki/Setup-Instructions#testing-mobile-cordova-webviewhybrid-applications] and it does not work.
I've started Chromedriver 2.20 in one console, and running browser-perf in another window. The app is starting, but then stops immediately. In the chromedriver log I see this:
49.607][DEBUG]: Sending adb command: host:transport:emulator-5554|shell:am force-stop nzpost.provoke.mobile
[50.745][DEBUG]: Received adb response:
[50.746][SEVERE]: unknown error: session deleted because error encountered when notifying listeners of 'GetLog' command
from unknown error: unexpected command response
(Session info: webview=39.0.0.0)
[50.750][DEBUG]: Log type 'driver' lost 1 entries on destruction
[50.752][DEBUG]: Log type 'performance' lost 240 entries on destruction
[50.754][DEBUG]: Log type 'browser' lost 1 entries on destruction
And, in browser-perf the following response:
Error: [log("performance")] Error response status: 13, , UnknownError - An unknown server-side error occurred while processing the command. Selenium error: unknown error: session deleted because error encountered when notifying listeners of 'GetLog' command
from unknown error: unexpected command response
I've also created tests with Protractor, and it works fine with Appium. I've also tried to run Appium (instead of Chromedriver) and change the URL to point to Appium, but that does not seem to work either; I'm not sure what to put in the configuration.
My config file is:
{
"selenium": "localhost:9515",
"browsers": [
{
"browserName": "android",
"chromeOptions": {
"androidActivity": "io.cordova.mobile.MainActivity",
"androidPackage": "io.cordova.mobile"
}
}
]
}
Tested on an Android 4.4.4 device, and an Android 5.1.1 emulator.
Please help me out, thanks!
It looks you picked two options blink.console
and disabled-by-default-devtools.timeline
: https://github.com/axemclion/browser-perf/blob/master/lib/metrics/TimelineMetrics.js#L22
Do you know any document that I could find the full list of the trace categories?
When running a browser-perf test via the Node API targeting Android hardware, my test action never appears to be fired and the action eventually times out.
Environment:
browser-perf 1.4.5
chromedriver 2.21.371459
adb 1.0.32
PhoneGap CLI 6.2.1
Nexus 5 running Android 5.0.1
To reproduce:
phonegap run android --device
./chromedriver --verbose
node tests/android/1-slow-scroll.js
Result:
[146.617][INFO]: COMMAND Quit {
}
[146.617][DEBUG]: Sending adb command: host:transport:03f3cc21437ccb7d|shell:am force-stop com.brucelefebvre.PGAppPerf
[147.316][DEBUG]: Received adb response:
[147.316][INFO]: RESPONSE Quit
[147.316][DEBUG]: Log type 'driver' lost 0 entries on destruction
[147.316][DEBUG]: Log type 'performance' lost 0 entries on destruction
[147.316][DEBUG]: Log type 'browser' lost 0 entries on destruction
[ undefined ]
).I followed the instructions specified in the wiki, and used a slightly modified version of the config file supplied by you guys here: ios-hybrid-appium.config.json. My config file looks like this:
{
"selenium": "http://localhost:4723/wd/hub",
"browsers": [
{
"platformName": "iOS",
"platformVersion": "8.1",
"deviceName": "iPhone 6",
"app": "/Users/matiassingers/projects/testApp/cordova/platforms/ios/build/emulator/testApp.app",
"bundleId": "com.test.testApp",
"autoWebview": true,
"loggingPrefs": {
"performance": "ALL"
}
}
]
}
Initially I was having problems with the remote debugger not being able to find a webview in Appium, but I was specifying the wrong bundleId.
This is the output/log from browser-perf and appium:
$ browser-perf --config-file appium.json --verbose
index: Selenium is on %s localhost
Metrics: Initializing Metrics
Probes: Registering probe RafBenchmarkingProbe
Probes: Registering probe NavTimingProbe
Probes: Registering probe ChromeTimelineProbe
Probes: Registering probe SafariTimelineProbe
Probes: Registering probe ChromeTracingProbe
AndroidTracingProbe: Initialize
Probes: Registering probe AndroidTracingProbe
Probes: Registering probe ChromeTimelineProbe
Probes: Registering probe SafariTimelineProbe
Probes: setup
Probes: ChromeTimelineProbe setup called
Probes: SafariTimelineProbe setup called
Probes: ChromeTracingProbe setup called
Probes: AndroidTracingProbe setup called
index: > CALL init({"platformName":"iOS","platformVersion":"8.1","deviceName":"iPhon
index: > CALL quit()
$ appium
info: [debug] Setting auto webview
info: [debug] Navigating to most recently opened webview
info: [debug] [REMOTE] Debugger socket connected to ::1:27753
info: [debug] [REMOTE] Sending connection key
info: [debug] [REMOTE] Sending _rpc_reportIdentifier: message to remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRConnectionIdentifierKey":"e02a0b38-439c-435f-9f67-e402681af203"},"__selector":"_rpc_reportIdentifier:"}
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRSimulatorBuildKey":"12B411","WIRSimulatorProductVersionKey":"8.1","WIRSimulatorNameKey":"iPhone Simulator"},"__selector":"_rpc_reportSetup:"}
info: [debug] [REMOTE] Sim name: iPhone Simulator
info: [debug] [REMOTE] Sim build: 12B411
info: [debug] [REMOTE] {"__argument":{"WIRApplicationDictionaryKey":{"PID:12966":{"WIRApplicationIdentifierKey":"PID:12966","WIRIsApplicationProxyKey":false,"WIRApplicationNameKey":"Astro View Mobile","WIRApplicationBundleIdentifierKey":"com.astro.astroview","WIRIsApplicationActiveKey":1}}},"__selector":"_rpc_reportConnectedApplicationList:"}
info: [debug] Using remote debugger app key: PID:12966
info: [debug] [REMOTE] Selecting app PID:12966
info: [debug] [REMOTE] function () { [native code] }
info: [debug] [REMOTE] Sending _rpc_forwardGetListing: message to remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRConnectionIdentifierKey":"e02a0b38-439c-435f-9f67-e402681af203","WIRApplicationIdentifierKey":"PID:12966"},"__selector":"_rpc_forwardGetListing:"}
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRApplicationIdentifierKey":"PID:12966","WIRListingKey":{"1":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"","WIRPageIdentifierKey":1},"2":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"","WIRPageIdentifierKey":2}}},"__selector":"_rpc_applicationSentListing:"}
info: [debug] Picking webview WEBVIEW_2
info: [debug] Attempting to set context to 'WEBVIEW_2'
info: [debug] [REMOTE] Selecting page 2 and forwarding socket setup
info: [debug] [REMOTE] Sending _rpc_forwardSocketSetup: message to remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRApplicationIdentifierKey":"PID:12966","WIRConnectionIdentifierKey":"e02a0b38-439c-435f-9f67-e402681af203","WIRSenderKey":"5ab3e9fc-e922-49cc-97aa-5331155eff3b","WIRPageIdentifierKey":2},"__selector":"_rpc_forwardSocketSetup:"}
info: [debug] [REMOTE] Set sender key
info: [debug] [REMOTE] Sending _rpc_forwardSocketData: message to remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRApplicationIdentifierKey":"PID:12966","WIRListingKey":{"1":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"","WIRPageIdentifierKey":1},"2":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"","WIRConnectionIdentifierKey":"e02a0b38-439c-435f-9f67-e402681af203","WIRPageIdentifierKey":2}}},"__selector":"_rpc_applicationSentListing:"}
info: [debug] Remote debugger notified us of a new page listing
info: [debug] We don't appear to have window set yet, ignoring
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRApplicationIdentifierKey":"PID:12966","WIRListingKey":{"1":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"file:///Users/matiassingers/Library/Developer/CoreSimulator/Devices/9538A1EE-7E92-475D-A47E-15C3C4BBDA44/data/Containers/Bundle/Application/4EF121E1-34FE-496E-BF20-A7FDB43674F5/testApp.app/www/index.html","WIRPageIdentifierKey":1}}},"__selector":"_rpc_applicationSentListing:"}
With the last part repeating again and again:
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] Receiving data from remote debugger
info: [debug] [REMOTE] {"__argument":{"WIRApplicationIdentifierKey":"PID:12966","WIRListingKey":{"1":{"WIRTypeKey":"WIRTypeWeb","WIRTitleKey":"","WIRURLKey":"file:///Users/matiassingers/Library/Developer/CoreSimulator/Devices/9538A1EE-7E92-475D-A47E-15C3C4BBDA44/data/Containers/Bundle/Application/4EF121E1-34FE-496E-BF20-A7FDB43674F5/testApp.app/www/index.html","WIRPageIdentifierKey":1}}},"__selector":"_rpc_applicationSentListing:"}
info: [debug] Remote debugger notified us of a new page listing
info: [debug] We don't appear to have window set yet, ignoring
Is it possible that the wrong WEBVIEW is selected in Appium?
Please let me know if you need any further information.
Version info:
$ node -v
v0.10.33
# This is wrong, I installed the latest version from npm:
# [email protected]
$ browser-perf --version
0.0.1
$ appium --version
1.3.4
OS X: Version 10.10.1 (14B25)
Xcode: Version 6.1.1 (6A2008a)
iOS Simulator: Version 8.1 (550.3)
On the homepage:
Instructions on using it for Cordova apps is also on the (wiki)[https://github.com/axemclion/browser-perf/wiki/Setup#wiki-cordova-applications]
This link does not work though.
It is here: https://github.com/axemclion/browser-perf/wiki/Setup-Instructions
With so many changes in Chrome, E2E test cases should not just run tests, but also check for the existence of expected metrics
Currently, adb only collects data from Chrome using this adb shell am broadcast -a com.android.chrome.GPU_PROFILER_START -e categories "benchmark" -e continuous
This needs to be replaced with adb shell am broadcast -a com.android.org.chromium.action.PROFILE_START.package_name -e categories "benchmark" -e continuous ""
to enable data collection from webviews also
I get this output in the Selenium logs:
desiredCapabilities: {"loggingPrefs":{"performance":"ALL"},"javascriptEnabled":true,"chromeOptions":{"args":["--disable-popup-
blocking","--disable-popup-blocking","--enable-gpu-benchmarking","--enable-thread-
composting"]},"browserName":"chrome","chrome.switches":["--ignore-certificate-errors","--
start-maximized","-disable-webgl","--blacklist-webgl","--blacklist-accelerated-compositing","--
disable-accelerated-2d-canvas","--disable-accelerated-compositing","--disable-accelerated-
layers","--disable-accelerated-plugins","--disable-accelerated-video","--disable-
accelerated-video-decode","--disable-threaded-compositing","--disable-gpu","--disable-
sync","--remote-debugging-port=9222"],"chrome.binary":"D:\\Program Files\\Chrome
27\\27.0.1453.116\\chrome.exe"}
=> Could not find default Chrome binary
Chrome on Android not working on Windows, not picking up tracing statistics.
Caused because how adb shell am broadcast -a com.android.chrome.GPU_PROFILER_START -e categories "benchmark" -e continuous ""
is passed to the command line.
Canno install latest version.
...
npm http 304 https://registry.npmjs.org/commander
npm ERR! Error: No compatible version found: firefox-profile@'axemclion/firefox-profile-js'
npm ERR! Valid install targets:
npm ERR! ["0.0.1","0.0.2","0.0.3","0.1.1","0.1.2","0.1.3","0.1.4","0.2.0","0.2.1"]
...
It seems that the firefox-profile-js
dependency is unversioned in package.json and npm is probably trying to get the same version as browser-perf
(0.0.9) which doesn't exist in firefox-profile-js
.
package.json
should probably indicate what version to use for the firefox profile dep.
"firefox-profile": "axemclion/[email protected]",
I'm not a node expert, so please correct me if wrong.
Following the setup instructions, I get this error:
$ browser-perf https://www.google.com/ --selenium=localhost:4444 --verbose
-bash: browser-perf: command not found
Is there support for multiple selenium addresses? I run my tests on virtual machines and i would like to have the selenium driver running on those machines. So I tried ['http://192.168.1.126:4444/wd/hub','http://192.168.1.134:4444/wd/hub']
and it gave me this error: TypeError: Cannot read property 'match' of undefined
Hi,
How can I access to 'cfg' object inside the preScript function ? (https://github.com/axemclion/browser-perf/wiki/Node-Module---API#prescript )
********** Example **********
Here is the simple options object I created.
var options = {
selenium: 'http://localhost:4444/wd/hub',
browsers: ['chrome'],
preScript: function(browser) {
return browser.get(cfg.page).then(function() {
console.log('Find sign in in discover');
return browser.elementByCssSelector('.signin-btn')
}).then(function(el) {
console.log('Clicking sign in');
return el.click();
});
}
}
Chrome 41 has deprecated Timeline and enableTimeline - it now gets the same events in Tracing. This is enabled by using traceCategories: 'blink.console,disabled-by-default-devtools.timeline'
in the perfLoggingPrefs
capabilities.
The timeline format has also changed.
Hi,
I tried to use browser-perf, it successfully launched the hybrid app, but after some time being in idle state, it thrown the error in console as follows,
D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium>browser-perf --config-file test/configfile1.json
Error: [init({"browserName":"android","chromeOptions":{"androidActivity":"com.csc.chmwardview.chndev.chmWardRound","androidPackage":"com.csc.chmwardview.chndev","perfLoggingPrefs":{"traceCategories":",blink.console,disabled-by-default-devtools.timeline"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] The environment you requested was unavailable.
at D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium\node_modules\browser-perf\node_modules\wd\lib\webdriver.js:129:15
at Request._callback (D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium\node_modules\browser-perf\node_modules\wd\lib\http-utils.js:87:7)
at Request.self.callback (D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium\node_modules\browser-perf\node_modules\wd\node_modules\request\request.js:368:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request. (D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium\node_modules\browser-perf\node_modules\wd\node_modules\request\request.js:1219:14)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage. (D:\SeleniumAutomation\Documents\Selenium req jar files\AppiumForWindows-1.2.0.1\Appium\node_modules\browser-perf\node_modules\wd\node_modules\request\request.js:1167:12)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
Please help me resolve this and also my hybrid app has native part, how can I switch to native part
while automating it and I also need to know where does the performance logs gets collected so that I can create custom report.
Thanks
Collecting this data is great, but are there ways to view it besides a table?
If the selenium grid is not available you get the following misleading error:
browser-perf https://google.com --verbose
bp:index Selenium is on localhost +0ms
bp:metrics Initializing Metrics +3ms
bp:probes Registering probe +237ms PerfLogProbe
bp:probes:AndroidTracingProbe Initialize +4ms
bp:probes Registering probe +0ms AndroidTracingProbe
bp:probes Registering probe +4ms PerfLogProbe
bp:probes Registering probe +1ms AndroidTracingProbe
bp:probes Registering probe +4ms RafBenchmarkingProbe
bp:probes Registering probe +3ms NavTimingProbe
bp:probes Registering probe +3ms NetworkResourcesProbe
bp:metrics TimelineMetrics +2ms setup called
bp:metrics ChromeTracingMetrics +1ms setup called
bp:metrics NetworkResources +0ms setup called
bp:probes setup +1ms
bp:probes PerfLogProbe +0ms setup called
bp:probes AndroidTracingProbe +0ms setup called
bp:probes NetworkResourcesProbe +1ms setup called
bp:index Stating browser with +1ms {"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}}
bp:selenium CALL +1ms init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggin
bp:selenium CALL +42ms quit()
bp:selenium RESPONSE +11ms quit()
[ { [Error: [init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] The environment you requested was unavailable.] data: '' } ]
Error: [init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] The environment you requested was unavailable.
at /usr/local/lib/node_modules/browser-perf/node_modules/wd/lib/webdriver.js:129:15
at Request._callback (/usr/local/lib/node_modules/browser-perf/node_modules/wd/lib/http-utils.js:87:7)
at Request.self.callback (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:368:22)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.<anonymous> (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:1219:14)
at emitOne (events.js:82:20)
at Request.emit (events.js:169:7)
at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:1167:12)
at emitNone (events.js:72:20)
Am I able to automate safari performance using 'browser-perf'?
Specifically is it possible to use 'browser-perf' to show the 'DomContentLoadedEvent' and 'CompleteLoad' events multiple times from several sites, i.e. each site would be reloaded 50 times, and each time, record the 'DomContentLoadedEvent' and 'CompleteLoad' events (both kilobytes and time to event).
Calling any URL like $ browser-perf http://google.com
throws errors for me:
[ { [Error: [init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"enableTimeline":true,"traceCategories":"benchmark"},"args":["--added-by-scroll","--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' } ]
[ { [Error: [init({"browserName":"firefox","chromeOptions":{"perfLoggingPrefs":{"enableTimeline":true,"traceCategories":"benchmark"}},"loggingPrefs":{"performance":"ALL"}})] connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' } ]
I'm using $ node -v #v0.10.35
.
With the latest release of [email protected], protractor-perf now breaks on start:
TypeError: Cannot read property 'browserName' of undefined
at Object.deepEquals (/Users/{project_path}/node_modules/protractor-perf/node_modules/browser-perf/lib/helpers.js:23:20)
at AndroidTracingProbe.isEnabled (/Users/{project_path}/node_modules/protractor-perf/node_modules/browser-perf/lib/probes/AndroidTracingProbe.js:24:14)
at AndroidTracingProbe.start (/Users/{project_path}/node_modules/protractor-perf/node_modules/browser-perf/lib/probes/AndroidTracingProbe.js:48:10)
at /Users/{project_path}/node_modules/protractor-perf/node_modules/browser-perf/lib/probes/index.js:45:27
This is the commit that introduced browserConfig
(which protractor-perf passes as undefined):
c1e6fe3#diff-a0ccdc8e7313c6606025128061a22cc0
Since it is undefined, we cannot access .browserName.
The error is at lib/probes/AndroidTracingProbe.js
, lines 46-48.
My suggestions are to either fix what the intention of this check was, or to roll back protractor-perf's package.json dependency on browser-perf to a hard 1.4.6.
How does these 2 seemingly the same metrics, "framesPerSec_raf" and "framesPerSec (devtools)", gets calculated? When running the browserperf I get different values of these 2 metrics, but they seam to be the same subject. I'm curious why they are different and which one to use as the real fps value.
Thanks :)
~/Downloads ❯❯❯ sudo npm install -g browser-perf
/Users/frank/.nvm/v0.10.21/bin/browser-perf -> /Users/frank/.nvm/v0.10.21/lib/node_modules/browser-perf/lib/cli.js
[email protected] /Users/frank/.nvm/v0.10.21/lib/node_modules/browser-perf
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
~/Downloads ❯❯❯ browser-perf http://hi.com --browsers=chrome
env: node\r: No such file or directory
Mac OS 10.9.3
It is very useful to test websites on multiple connection speeds such as 3G, Wi-Fi and so on and measure performance using these connections.
I'm pretty certain this has nothing to do with browser-perf, but I noticed that timeline metrics are very inconsistent. I wonder if anything can be done about that? (aside from running multiple tasks and getting a mean, which is obviously a super long process)
Here's an example of running the same page through browser-perf multiple times:
Why are there such deviations? Layout ranges from 123 to 153; Paint from 40 to 44; function calls from ~4000 to ~7000.
Any ideas?
Metrics like average painted area, expensive events, etc were all disabled when timeline events got picked up from tracing, as per this bug.
Renable RuntimeperfMetrics, since the data obtained is very similar.
Really like this tool and http://www.perfmonkey.com
Would it be possible to add support for TestingBot.com's selenium grid?
We can offer free minutes to people using perfmonkey if you're interested.
This looks like a great tool to add to our CI but running into one small issue using it.
How do we include Proxy information into the usage to be able to get out of the corporate network and be able to hit Sauce Labs?
Hi
I have been using your tool for a few days now and am finding it great, If possible i would like to know how to get the same/similar results from the different methods, for example
I hope that is clear and Many thanks!
James
FYI the metric that is causing me the main issue is ChromeTracingMetrics
When running Browser-Perf on a Android phone - Chrome Browser through a Protractor test (Appium) and I select the metrics: TimelineMetrics and/or ChromeTracingMetrics there is no output. The Chrome browser makes notice of a new profile created and also saves a profile.json file to the downloads directory on the phone. But unfortunately never gives back the data and freezes.
When I use the other metrics "RafRenderingStats","NetworkTimings","NetworkResources" everything works fine and I get the data back.
Looking forward from hearing your solution.
Btw: thank you for such a great tool!
Hi,
What is the best way to use browser-perf/protractor-perf in a single page application? When running a protractor file in a SPA it would be nice to get the loading time without the protractor / webdriver overhead to execute commands. Maybe create a custom probe/metric which injects a window.performance.now() command?
gr. Dennis
Hello,
What is the option to get the results in perfjankie / CouchDB?
http://localhost:5984/perfjankie/_design/site/index.html#/page-select
http://localhost:5984/_utils/index.html
I'm using
browser-perf --browsers=chrome --selenium=localhost:9515 -v
Greetings.
Lesley van der Woude
Hi!
I'm trying to benchmark a wikipedia page on my android device. When running
browser-perf https://en.m.wikipedia.org/wiki/Barack_Obama --selenium=localhost:9515 --config-file=conf.json
With conf.js being:
{
"selenium": "http://localhost:9515",
"browsers": [{
"browserName": "android"
}]
}
...having chromedriver running, I get a new browser window that loads the page, I see a toast that notifies of the start of the profile recording, the page scrolls to the bottom, and I see a notification about the profile finished recording.
Then on my local machine I get the following exception:
browser-perf https://en.m.wikipedia.org/wiki/Barack_Obama --selenium=localhost:9515 --config-file=conf.json
[ { Error: ENOENT: no such file or directory, open 'chrome-profile-results-2016-05-20-090003'
at Error (native)
at Object.fs.openSync (fs.js:634:18)
at Object.fs.readFileSync (fs.js:502:33)
at /usr/local/lib/node_modules/browser-perf/lib/probes/AndroidTracingProbe.js:169:29
at _fulfilled (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:604:44
at runSingle (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:125:13)
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: 'chrome-profile-results-2016-05-20-090003' } ]
Error: ENOENT: no such file or directory, open 'chrome-profile-results-2016-05-20-090003'
at Error (native)
at Object.fs.openSync (fs.js:634:18)
at Object.fs.readFileSync (fs.js:502:33)
at /usr/local/lib/node_modules/browser-perf/lib/probes/AndroidTracingProbe.js:169:29
at _fulfilled (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:796:13)
at /usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:604:44
at runSingle (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:137:13)
at flush (/usr/local/lib/node_modules/browser-perf/node_modules/q/q.js:125:13)
It doesn't seem like anything went wrong on the device, and from what I see on the code it seems like a problem with adb accessing the device storage.
Any ideas?
Some more detailed info:
Timeline had some really awesome metrics:
https://github.com/axemclion/browser-perf/blob/master/docs/TimelineMetrics.json
Since it's been deprecated, is there a way to generate some of these using the trace data? We're using perfjankie and a bunch of sections aren't getting any data without these stats.
We're using Chrome 45. Any thoughts?
when i used [email protected] version,i can't get the perfmance data,you can follow below step to confirm this issue:
win7@32 bit
android chrome apk installed in android devices
error info:[TypeError: Cannot read property 'code' of undefined]
Here is the main js code I used:
var browserPerf = require('browser-perf');
var wd = require('wd');
var options = {
selenium: 'http://localhost:4444/wd/hub',
browsers: ['chrome'],
actions: 'click'
};
var browser = wd.promiseChainRemote();
browserPerf('http://www.google.com', function(err, res){/*callback*/}, options);
Here we define a customized action "click" in the actions which is
require('colors');
var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
chai.should();
var fs = require('fs'),
wd = require('wd'),
debug = require('debug');
// enables chai assertion chaining
chaiAsPromised.transferPromiseness = wd.transferPromiseness;
module.exports = function() {
return function(browser) {
console.log('start click');
return browser.elementByCss('#lst-ib').click();
};
};
While in the execution, the program exits with "undefined" exception. If we set a breakpoint at "console.log('start click')", we can see "browser.elementByCss" is indeed a function object. Anything goes wrong? Thanks a lot.
Can be done using something like browser.execute(":takeHeapSnapshot");
https://code.google.com/p/chromedriver/issues/detail?id=519
For profiles, use browser.execute(':startProfile')
and browser.execute(':endProfile')
. Endprofile gives the data.
https://codereview.chromium.org/275193003/patch/130001/140005
I'm seeing more metrics than documented at https://github.com/axemclion/browser-perf/wiki/Metrics. I'm guessing some of them are newer additions in timeline. It would be great to document more of them.
Here's an example output of my script that compares 2 versions of a page:
AnalyzeTask 7.276 7.947
AnalyzeTask_avg 0.01144025157 0.01028072445
AnalyzeTask_count 636 773
AnalyzeTask_max 0.049 0.056
CommitLoad 4.007 3.271
CommitLoad_avg 2.0035 1.6355
CommitLoad_max 3.91 3.174
CompositeLayers 2.615 3.676
CompositeLayers_avg 0.1136956522 0.114875
CompositeLayers_count 23 32
CompositeLayers_max 0.221 0.32
EvaluateScript 143.619 121.553
EvaluateScript_avg 28.7238 24.3106
EvaluateScript_max 79.913 69.156
EventDispatch 63.364 62.588
EventDispatch_avg 0.7634216867 0.857369863
EventDispatch_count 83 73
EventDispatch_max 59.494 60.078
FireAnimationFrame 0.424 0.315
FireAnimationFrame_avg 0.1413333333 0.105
FireAnimationFrame_max 0.251 0.171
FunctionCall 506.916 527.214
FunctionCall_avg 0.4791266541 0.4592456446
FunctionCall_count 1058 1148
FunctionCall_max 59.327 59.919
GPUTask 139.391 149.716
GPUTask_avg 0.3948753541 0.182136253
GPUTask_count 353 822
GPUTask_max 10.457 15.316
HitTest 0.286 0.457
HitTest_avg 0.04085714286 0.0457
HitTest_count 7 10
HitTest_max 0.085 0.101
Layout 50.849 44.482
Layout_avg 2.824944444 2.471222222
Layout_max 37.984 33.64
MajorGC 11.956 31.319
MajorGC_avg 2.989 2.237071429
MajorGC_count 4 14
MajorGC_max 7.743 20.833
MinorGC 8.524 13.223
MinorGC_avg 2.131 1.469222222
MinorGC_count 4 9
MinorGC_max 3.708 2.967
NodePerLayout_avg 100.6111111 87.83333333
Paint 5.243 5.792
PaintImage 0.377 0.472
PaintImage_avg 0.006180327869 0.0118
PaintImage_count 61 40
PaintImage_max 0.042 0.159
Paint_avg 0.3495333333 0.2632727273
Paint_count 15 22
Paint_max 1.622 0.983
PaintedArea_avg 1038624 1121241.818
PaintedArea_total 15579360 24667320
ParseAuthorStyleSheet 3.427 3.355
ParseAuthorStyleSheet_avg 0.428375 0.419375
ParseAuthorStyleSheet_max 0.867 0.902
ParseHTML 80.333 79.241
ParseHTML_avg 0.1587608696 0.1566027668
ParseHTML_max 63.228 63.848
RasterTask 389.835 488.388
RasterTask_avg 0.6129481132 0.6318085382
RasterTask_count 636 773
RasterTask_max 9.437 16.62
ScheduleStyleRecalculation 70 45
TimerFire 182.667 220.084
TimerFire_avg 5.074083333 2.418505495
TimerFire_count 36 91
TimerFire_max 45.958 43.714
TimerInstall 207 266
TimerRemove 165 204
UpdateCounters 1053 1153
UpdateLayer 8.146 9.712
UpdateLayerTree 1.812 2.354
UpdateLayerTree_avg 0.04646153846 0.04441509434
UpdateLayerTree_count 39 53
UpdateLayerTree_max 0.2 0.235
UpdateLayer_avg 0.509125 0.4222608696
UpdateLayer_count 16 23
UpdateLayer_max 2.074 1.207
UpdateLayoutTree 11.66 10.434
UpdateLayoutTree_avg 0.1619444444 0.222
UpdateLayoutTree_count 72 47
UpdateLayoutTree_max 4.848 4.57
connectEnd 1446989531957 1446989572366
connectStart 1446989531957 1446989572366
domComplete 1446989532235 1446989572625
domContentLoadedEventEnd 1446989532235 1446989572625
domContentLoadedEventStart 1446989532175 1446989572565
domInteractive 1446989532175 1446989572565
domLoading 1446989531990 1446989572403
domainLookupEnd 1446989531957 1446989572366
domainLookupStart 1446989531957 1446989572366
fetchStart 1446989531957 1446989572366
firstPaint 106.470108 99.68590736
initDomTreeTime 190 166
loadEventEnd 1446989532235 1446989572625
loadEventStart 1446989532235 1446989572625
loadTime 278 259
navigationStart 1446989531957 1446989572365
readyStart 0 1
requestStart 1446989531958 1446989572366
requestTime 27 33
responseEnd 1446989531985 1446989572399
responseStart 1446989531985 1446989572397
unloadEventEnd 1446989531986 1446989572399
unloadEventStart 1446989531986 1446989572399
Hi,
I just follow the tutorial and get the following error. (https://github.com/axemclion/browser-perf/wiki/Setup-Instructions#testing-desktop-browsers-locally)
I can install the browser-perf successfully. and I also can start Chromedriver with selenium using java -jar selenium-server-standalone-2.40.0.jar -Dwebdriver.chrome.driver=chromedriver.exe without any error. However, when I execute browser-perf http://yoursite.com --verbose on another Tab( not the same Tab I running Chromedriver). I got the following error.
_LOG_*******
$ browser-perf http://yoursite.com --verbose
bp:index Selenium is on localhost +0ms
bp:metrics Initializing Metrics +2ms
bp:probes Registering probe +116ms PerfLogProbe
bp:probes:AndroidTracingProbe Initialize +2ms
bp:probes Registering probe +0ms AndroidTracingProbe
bp:probes Registering probe +2ms PerfLogProbe
bp:probes Registering probe +1ms AndroidTracingProbe
bp:probes Registering probe +1ms RafBenchmarkingProbe
bp:probes Registering probe +1ms NavTimingProbe
bp:probes Registering probe +1ms NetworkResourcesProbe
bp:metrics TimelineMetrics +1ms setup called
bp:metrics ChromeTracingMetrics +1ms setup called
bp:metrics NetworkResources +0ms setup called
bp:probes setup +1ms
bp:probes PerfLogProbe +0ms setup called
bp:probes AndroidTracingProbe +0ms setup called
bp:probes NetworkResourcesProbe +0ms setup called
bp:index Stating browser with +1ms {"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}}
bp:selenium CALL +1ms init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggin
bp:selenium CALL +41ms quit()
[ { [Error: [init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] The environment you requested was unavailable.]
data: '{"state":"unhandled error","sessionId":null,"hCode":2103605280,"value":{"localizedMessage":"The driver executable does not exist: /Users/iwis.zhou/Documents/browser-perf/chromedriver.exe","cause":null,"stackTrace":[{"fileName":"Preconditions.java","nativeMethod":false,"methodName":"checkState","className":"com.google.common.base.Preconditions","hCode":-1301733662,"lineNumber":199,"class":"java.lang.StackTraceElement"},{"fileName":"DriverService.java","nativeMethod":false,"methodName":"checkExecutable","className":"org.openqa.selenium.remote.service.DriverService","hCode":152395766,"lineNumber":121,"class":"java.lang.StackTraceElement"},{"fileName":"DriverService.java","nativeMethod":false,"methodName":"findExecutable","className":"org.openqa.selenium.remote.service.DriverService","hCode":-1432293598,"lineNumber":116,"class":"java.lang.StackTraceElement"},{"fileName":"ChromeDriverService.java","nativeMethod":false,"methodName":"access$0","className":"org.openqa.selenium.chrome.ChromeDriverService","hCode":1318714607,"lineNumber":1,"class":"java.lang.StackTraceElement"},{"fileName":"ChromeDriverService.java","nativeMethod":false,"methodName":"findDefaultExecutable","className":"org.openqa.selenium.chrome.ChromeDriverService$Builder","hCode":-1770001534,"lineNumber":137,"class":"java.lang.StackTraceElement"},{"fileName":"DriverService.java","nativeMethod":false,"methodName":"build","className":"org.openqa.selenium.remote.service.DriverService$Builder","hCode":778286186,"lineNumber":296,"class":"java.lang.StackTraceElement"},{"fileName":"ChromeDriverService.java","nativeMethod":false,"methodName":"createDefaultService","className":"org.openqa.selenium.chrome.ChromeDriverService","hCode":-1740331610,"lineNumber":88,"class":"java.lang.StackTraceElement"},{"fileName":"ChromeDriver.java","nativeMethod":false,"methodName":"","className":"org.openqa.selenium.chrome.ChromeDriver","hCode":988971966,"lineNumber":138,"class":"java.lang.StackTraceElement"},{"fileName":"NativeConstructorAccessorImpl.java","nativeMethod":true,"methodName":"newInstance0","className":"sun.reflect.NativeConstructorAccessorImpl","hCode":-917798116,"lineNumber":-2,"class":"java.lang.StackTraceElement"},{"fileName":"NativeConstructorAccessorImpl.java","nativeMethod":false,"methodName":"newInstance","className":"sun.reflect.NativeConstructorAccessorImpl","hCode":-1864225098,"lineNumber":62,"class":"java.lang.StackTraceElement"},{"fileName":"DelegatingConstructorAccessorImpl.java","nativeMethod":false,"methodName":"newInstance","className":"sun.reflect.DelegatingConstructorAccessorImpl","hCode":-2122307259,"lineNumber":45,"class":"java.lang.StackTraceElement"},{"fileName":"Constructor.java","nativeMethod":false,"methodName":"newInstance","className":"java.lang.reflect.Constructor","hCode":-1319859919,"lineNumber":423,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultDriverProvider.java","nativeMethod":false,"methodName":"callConstructor","className":"org.openqa.selenium.remote.server.DefaultDriverProvider","hCode":-2096353668,"lineNumber":103,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultDriverProvider.java","nativeMethod":false,"methodName":"newInstance","className":"org.openqa.selenium.remote.server.DefaultDriverProvider","hCode":1201680335,"lineNumber":97,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultDriverFactory.java","nativeMethod":false,"methodName":"newInstance","className":"org.openqa.selenium.remote.server.DefaultDriverFactory","hCode":-1365021416,"lineNumber":60,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultSession.java","nativeMethod":false,"methodName":"call","className":"org.openqa.selenium.remote.server.DefaultSession$BrowserCreator","hCode":2056168471,"lineNumber":222,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultSession.java","nativeMethod":false,"methodName":"call","className":"org.openqa.selenium.remote.server.DefaultSession$BrowserCreator","hCode":2056168250,"lineNumber":1,"class":"java.lang.StackTraceElement"},{"fileName":"FutureTask.java","nativeMethod":false,"methodName":"run","className":"java.util.concurrent.FutureTask","hCode":-820313554,"lineNumber":266,"class":"java.lang.StackTraceElement"},{"fileName":"DefaultSession.java","nativeMethod":false,"methodName":"run","className":"org.openqa.selenium.remote.server.DefaultSession$1","hCode":-255143467,"lineNumber":176,"class":"java.lang.StackTraceElement"},{"fileName":"ThreadPoolExecutor.java","nativeMethod":false,"methodName":"runWorker","className":"java.util.concurrent.ThreadPoolExecutor","hCode":-1285150184,"lineNumber":1142,"class":"java.lang.StackTraceElement"},{"fileName":"ThreadPoolExecutor.java","nativeMethod":false,"methodName":"run","className":"java.util.concurrent.ThreadPoolExecutor$Worker","hCode":-242190645,"lineNumber":617,"class":"java.lang.StackTraceElement"},{"fileName":"Thread.java","nativeMethod":false,"methodName":"run","className":"java.lang.Thread","hCode":-82946320,"lineNumber":745,"class":"java.lang.StackTraceElement"}],"suppressed":[],"message":"The driver executable does not exist: /Users/iwis.zhou/Documents/browser-perf/chromedriver.exe","hCode":597266499,"class":"java.lang.IllegalStateException","screen":null},"class":"org.openqa.selenium.remote.Response","status":13}' } ]
Error: [init({"browserName":"chrome","version":35,"chromeOptions":{"perfLoggingPrefs":{"traceCategories":",blink.console,devtools.timeline,disabled-by-default-devtools.timeline,toplevel,disabled-by-default-devtools.timeline.frame,benchmark"},"args":["--enable-gpu-benchmarking","--enable-thread-composting"]},"loggingPrefs":{"performance":"ALL"}})] The environment you requested was unavailable.
at /usr/local/lib/node_modules/browser-perf/node_modules/wd/lib/webdriver.js:129:15
at Request._callback (/usr/local/lib/node_modules/browser-perf/node_modules/wd/lib/http-utils.js:87:7)
at Request.self.callback (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:368:22)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request. (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:1219:14)
at emitOne (events.js:82:20)
at Request.emit (events.js:169:7)
at IncomingMessage. (/usr/local/lib/node_modules/browser-perf/node_modules/wd/node_modules/request/request.js:1167:12)
at emitNone (events.js:72:20)
I use a prescript for user log in and other web actions before the real action starts. Here is the variable options is defined:
var options = {
selenium: 'http://localhost:4444/wd/hub',
browsers: ['chrome'],
preScript: function preScr(browser) {
return function(browser) {
console.log('start prescript');
\\...
});
}
},
actions: \\..
};
I noticed that the prescript is not executed. By debugging, I found that in lib\index.js, this is the order of the code:
}).then(function() {
log('Session is ' + browser.sessionID);
log('Running Prescript');
return opts.preScript(browser);
}).then(function() {
if (url) {
return browser.get(url);
}
this means the browser will open the link after the prescript is executed which is wrong since the prescript needs the linked website to do the actions.
FYI, I switched the order of the above code and confirmed the website is displayed before the preScript(browser). But I see the prescript code is still not called. Is there anything else missing? Thanks a lot.
Hi axemclion,
Your framework works perfectly if I run "protractor protractor.conf.js" manually. But if I use my grunt test goal with the same protractor.conf.js file that starts WebDriver manager using 'protractor_webdriver' module - it fails the test with the following error:
Fatal error: 11:34:48.145 WARN - Exception thrown
org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'get' of undefined
(Session info: chrome=41.0.2272.101)
(Driver info: chromedriver=2.13.307649 (bf55b442bb6b5c923249dd7870d6a107678bfbb6),platform=Linux 3.16.0-31-generic x86_64) (WARNING: The server did not provide any stacktrace information)
...
Note: grunt test goal works fine if I comment out perfRunner.stop() method
Most likely failing code is here:
return browser.eval('window.__RafRecorder.get()').then(function(res) {
if (Array.isArray(res) && res.length > 0) {
me.emit('data', res);
}
clearTimeout(me.timerHandle);
}, function(err) {
me.emit('error', err);
clearTimeout(me.timerHandle);
});
Grunt logs:
11:34:41.155 INFO - Executing: [implicitly wait: 25000])
11:34:41.162 INFO - Done: [implicitly wait: 25000]
11:34:41.167 INFO - Executing: [get: data:text/html,])
11:34:41.313 INFO - Done: [get: data:text/html,]
11:34:41.328 INFO - Executing: [execute script: window.name = "NG_DEFER_BOOTSTRAP!" + window.name;window.location.replace("http://0.0.0.0:9000/");, []])
11:34:41.779 INFO - Done: [execute script: window.name = "NG_DEFER_BOOTSTRAP!" + window.name;window.location.replace("http://0.0.0.0:9000/");, []]
11:34:41.797 INFO - Executing: [execute script: return window.location.href;, []])
11:34:41.807 INFO - Done: [execute script: return window.location.href;, []]
11:34:41.839 INFO - Executing: [execute async script: try { return (function (attempts, asyncCallback) {
var callback = function(args) {
setTimeout(function() {
asyncCallback(args);
}, 0);
};
var check = function(n) {
try {
if (window.angular && window.angular.resumeBootstrap) {
callback([true, null]);
} else if (n < 1) {
if (window.angular) {
callback([false, 'angular never provided resumeBootstrap']);
} else {
callback([false, 'retries looking for angular exceeded']);
}
} else {
window.setTimeout(function() {check(n - 1);}, 1000);
}
} catch (e) {
callback([false, e]);
}
};
check(attempts);
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [10]])11:34:41.858 INFO - Done: [execute async script: try { return (function (attempts, asyncCallback) {
var callback = function(args) {
setTimeout(function() {
asyncCallback(args);
}, 0);
};
var check = function(n) {
try {
if (window.angular && window.angular.resumeBootstrap) {
callback([true, null]);
} else if (n < 1) {
if (window.angular) {
callback([false, 'angular never provided resumeBootstrap']);
} else {
callback([false, 'retries looking for angular exceeded']);
}
} else {
window.setTimeout(function() {check(n - 1);}, 1000);
}
} catch (e) {
callback([false, e]);
}
};
check(attempts);
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [10]]11:34:41.875 INFO - Executing: [execute script: return (function () {
angular.module('protractorBaseModule_', []).
config(['$compileProvider', function($compileProvider) {
if ($compileProvider.debugInfoEnabled) {
$compileProvider.debugInfoEnabled(true);
}
}]);
}).apply(null, arguments);, []])11:34:41.885 INFO - Done: [execute script: return (function () {
angular.module('protractorBaseModule_', []).
config(['$compileProvider', function($compileProvider) {
if ($compileProvider.debugInfoEnabled) {
$compileProvider.debugInfoEnabled(true);
}
}]);
}).apply(null, arguments);, []]11:34:41.901 INFO - Executing: [execute script: angular.resumeBootstrap(arguments[0]);, [[protractorBaseModule_]]])
11:34:42.068 INFO - Done: [execute script: angular.resumeBootstrap(arguments[0]);, [[protractorBaseModule_]]]
Performance tracking is enabled
11:34:42.321 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
11:34:42.345 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
11:34:42.382 INFO - Executing: [execute script: try { return (function (model, using, rootSelector) {
var root = document.querySelector(rootSelector || 'body');
using = using || document;
if (angular.getTestability) {
return angular.getTestability(root).
findModels(using, model, true);
}
var prefixes = ['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng:'];
for (var p = 0; p < prefixes.length; ++p) {
var selector = '[' + prefixes[p] + 'model="' + model + '"]';
var elements = using.querySelectorAll(selector);
if (elements.length) {
return elements;
}
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [login.email, null, body]])
11:34:42.404 INFO - Done: [execute script: try { return (function (model, using, rootSelector) {
var root = document.querySelector(rootSelector || 'body');
using = using || document;
if (angular.getTestability) {
return angular.getTestability(root).
findModels(using, model, true);
}
var prefixes = ['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng:'];
for (var p = 0; p < prefixes.length; ++p) {
var selector = '[' + prefixes[p] + 'model="' + model + '"]';
var elements = using.querySelectorAll(selector);
if (elements.length) {
return elements;
}
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [login.email, null, body]]
11:34:42.444 INFO - Executing: [send keys: 0 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b7 -> unknown locator], [[email protected]]])
11:34:42.646 INFO - Done: [send keys: 0 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b7 -> unknown locator], [[email protected]]]
11:34:42.698 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
11:34:42.714 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
11:34:42.738 INFO - Executing: [execute script: try { return (function (model, using, rootSelector) {
var root = document.querySelector(rootSelector || 'body');
using = using || document;
if (angular.getTestability) {
return angular.getTestability(root).
findModels(using, model, true);
}
var prefixes = ['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng:'];
for (var p = 0; p < prefixes.length; ++p) {
var selector = '[' + prefixes[p] + 'model="' + model + '"]';
var elements = using.querySelectorAll(selector);
if (elements.length) {
return elements;
}
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [login.pswd, null, body]])
11:34:42.752 INFO - Done: [execute script: try { return (function (model, using, rootSelector) {
var root = document.querySelector(rootSelector || 'body');
using = using || document;
if (angular.getTestability) {
return angular.getTestability(root).
findModels(using, model, true);
}
var prefixes = ['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng:'];
for (var p = 0; p < prefixes.length; ++p) {
var selector = '[' + prefixes[p] + 'model="' + model + '"]';
var elements = using.querySelectorAll(selector);
if (elements.length) {
return elements;
}
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [login.pswd, null, body]]
11:34:42.791 INFO - Executing: [send keys: 1 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b8 -> unknown locator], [asdf]])
11:34:42.882 INFO - Done: [send keys: 1 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b8 -> unknown locator], [asdf]]
11:34:42.939 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
11:34:42.952 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
var el = document.querySelector(rootSelector);
try {
if (!window.angular) {
throw new Error('angular could not be found on the window');
}
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
if (!angular.element(el).injector()) {
throw new Error('root element (' + rootSelector + ') has no injector.' +
' this may mean it is not inside ng-app.');
}
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (err) {
callback(err.message);
}
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
11:34:42.976 INFO - Executing: [execute script: try { return (function (cssSelector, searchText, using) {
using = using || document;
var elements = using.querySelectorAll(cssSelector);
var matches = [];
for (var i = 0; i < elements.length; ++i) {
var element = elements[i];
var elementText = element.textContent || element.innerText || '';
if (elementText.indexOf(searchText) > -1) {
matches.push(element);
}
}
return matches;
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [.btn, Sign In, null, body]])
11:34:42.987 INFO - Done: [execute script: try { return (function (cssSelector, searchText, using) {
using = using || document;
var elements = using.querySelectorAll(cssSelector);
var matches = [];
for (var i = 0; i < elements.length; ++i) {
var element = elements[i];
var elementText = element.textContent || element.innerText || '';
if (elementText.indexOf(searchText) > -1) {
matches.push(element);
}
}
return matches;
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [.btn, Sign In, null, body]]
11:34:43.027 INFO - Executing: [click: 2 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b9 -> unknown locator]])
11:34:43.099 INFO - Done: [click: 2 [org.openqa.selenium.remote.RemoteWebElement@35b2f0b9 -> unknown locator]]
11:34:43.205 INFO - Executing: [execute script: (function(){var getTimeMs=(function(){if(window.performance)
return(performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow).bind(window.performance);else
return function(){return new Date().getTime();};})();var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1000/60);};})().bind(window);window.__RafRecorder={frames:[],flush:true,record:function(timeStamp){if(__RafRecorder.flush){__RafRecorder.frames=[];__RafRecorder.flush=false;}
__RafRecorder.frames.push(timeStamp);requestAnimationFrame(__RafRecorder.record);},get:function(){__RafRecorder.flush=true;return __RafRecorder.frames;}};requestAnimationFrame(window.__RafRecorder.record);}());, []])11:34:43.217 INFO - Done: [execute script: (function(){var getTimeMs=(function(){if(window.performance)
return(performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow).bind(window.performance);else
return function(){return new Date().getTime();};})();var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1000/60);};})().bind(window);window.__RafRecorder={frames:[],flush:true,record:function(timeStamp){if(__RafRecorder.flush){__RafRecorder.frames=[];__RafRecorder.flush=false;}
__RafRecorder.frames.push(timeStamp);requestAnimationFrame(__RafRecorder.record);},get:function(){__RafRecorder.flush=true;return __RafRecorder.frames;}};requestAnimationFrame(window.__RafRecorder.record);}());, []]11:34:43.233 INFO - Executing: [fetching available log types])
11:34:43.246 INFO - Done: [fetching available log types]
11:34:43.256 INFO - Executing: [fetching logs for: performance])
11:34:44.050 INFO - Done: [fetching logs for: performance]
11:34:44.696 INFO - Executing: org.openqa.selenium.remote.server.handler.GetSessionCapabilities@2043fef6)
11:34:44.696 INFO - Done: org.openqa.selenium.remote.server.handler.GetSessionCapabilities@2043fef6
11:34:44.741 INFO - Executing: [find elements: By.selector: input#checkBox_filter_species_273])
11:34:46.399 INFO - Done: [find elements: By.selector: input#checkBox_filter_species_273]
11:34:46.446 INFO - Executing: [execute script: return window.__RafRecorder.get();, []])
11:34:48.145 WARN - Exception thrown
org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'get' of undefined
(Session info: chrome=41.0.2272.101)
(Driver info: chromedriver=2.13.307649 (bf55b442bb6b5c923249dd7870d6a107678bfbb6),platform=Linux 3.16.0-31-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 9 milliseconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'tira-4', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-31-generic', java.version: '1.7.0_75'
Session ID: ec7af94c1904f02b2c8686872355a1f9
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.com.google.Chrome.ZjddNC}, rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, version=41.0.2272.101, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:508)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
at com.sun.proxy.$Proxy1.executeScript(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.executeScript(EventFiringWebDriver.java:213)
at org.openqa.selenium.remote.server.handler.ExecuteScript.call(ExecuteScript.java:55)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:168)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Exception thrown: Going to shut down the Selenium server
Shutting down Selenium server: http://127.0.0.1:4444
11:34:48.150 WARN - Exception: unknown error: Cannot read property 'get' of undefined
(Session info: chrome=41.0.2272.101)
(Driver info: chromedriver=2.13.307649 (bf55b442bb6b5c923249dd7870d6a107678bfbb6),platform=Linux 3.16.0-31-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 9 milliseconds
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'tira-4', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-31-generic', java.version: '1.7.0_75'
Session ID: ec7af94c1904f02b2c8686872355a1f9
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.com.google.Chrome.ZjddNC}, rotatable=false, locationContextEnabled=true, mobileEmulationEnabled=false, version=41.0.2272.101, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, applicationCacheEnabled=false, takesScreenshot=true}]11:34:48.158 INFO - Checking Resource aliases
11:34:48.160 INFO - Command request: shutDownSeleniumServer[, ] on session null
11:34:48.161 INFO - Shutdown command received
I didn't have this issue in the old version of browser-perf. I cannot run tests with browser-perf 1.1.2 anymore.
Probably related to: axemclion/perfjankie#21 ?
Log
browser-perf --selenium=http://localhost:9515 --browsers=android http://google.com --verbose
bp:metrics Initializing Metrics +0ms
bp:probes Registering probe +3ms RafBenchmarkingProbe
bp:probes Registering probe +2ms NavTimingProbe
bp:probes Registering probe +2ms PerfLogProbe
bp:probes Registering probe +2ms PerfLogProbe
bp:probes:AndroidTracingProbe Initialize +2ms
bp:probes Registering probe +0ms AndroidTracingProbe
bp:metrics TimelineMetrics +1ms setup called
bp:metrics ChromeTracingMetrics +0ms setup called
bp:probes setup +0ms
bp:probes PerfLogProbe +0ms setup called
bp:probes AndroidTracingProbe +1ms setup called
bp:probes:AndroidTracingProbe Setting up android tracing +0ms
bp:probes:AndroidTracingProbe $ adb server start +0ms
bp:probes:AndroidTracingProbe $ adb logcat -c +66ms
bp:selenium CALL +55ms init({"browserName":"android","chromeOptions":{"androidPackage":"com.a
bp:selenium RESPONSE +6s init({"browserName":"android","chromeOptions":{"androidPackage":"com.a "328512e7ff92b889dc2c77c0bee4e3ef",{"acceptSslCerts":true,"application
bp:selenium CALL +1ms get("http://google.com")
bp:selenium RESPONSE +4s get("http://google.com")
bp:probes start +1ms
bp:probes RafBenchmarkingProbe +0ms start called
bp:selenium CALL +3ms execute("(function(){var getTimeMs=(function(){if(window.performance)\
bp:selenium RESPONSE +185ms execute("(function(){var getTimeMs=(function(){if(window.performance)\ null
bp:probes PerfLogProbe +1ms start called
bp:selenium CALL +0ms logTypes()
bp:selenium RESPONSE +5ms logTypes() ["performance","browser","driver"]
bp:probes:PerfLogProbe Supported log types +0ms [ 'performance', 'browser', 'driver' ]
bp:selenium CALL +3ms log("performance")
bp:selenium RESPONSE +114ms log("performance") [{"level":"INFO","message":"{\"message\":{\"method\":\"Tracing.dataCol
bp:probes AndroidTracingProbe +0ms start called
bp:selenium CALL +1ms sessionCapabilities()
bp:selenium RESPONSE +2ms sessionCapabilities() {"acceptSslCerts":true,"applicationCacheEnabled":false,"browserConnect
bp:probes:AndroidTracingProbe Starting android tracing +0ms
bp:probes:AndroidTracingProbe $ adb shell am broadcast -a com.android.chrome.GPU_PROFILER_START -e categories "benchmark" -e continuous "" +0ms
bp:probes:AndroidTracingProbe W/chromium(25660): [WARNING:tracing_controller_android.cc(43)] Logging performance trace to file +824ms
bp:actions:scroll Initializing Scroll function +13ms
bp:selenium CALL +1ms execute("'use strict';(function(){function getBoundingVisibleRect(el){
bp:selenium RESPONSE +87ms execute("'use strict';(function(){function getBoundingVisibleRect(el){ null
bp:actions:scroll Waiting for Scrolling to finish +0ms
bp:selenium CALL +0ms waitFor({"asserter":{},"timeout":600000,"pollFreq":2000})
bp:selenium CALL +1ms eval("(window.__scrollActionDone === true)")
bp:selenium RESPONSE +22ms eval("(window.__scrollActionDone === true)") false
bp:selenium CALL +2s eval("(window.__scrollActionDone === true)")
bp:selenium RESPONSE +47ms eval("(window.__scrollActionDone === true)") true
bp:selenium RESPONSE +0ms waitFor({"asserter":{},"timeout":600000,"pollFreq":2000}) true
bp:probes teardown +1ms
bp:probes RafBenchmarkingProbe +0ms teardown called
bp:probes:RafBenchmarkingProbe Clearing timer Interval +0ms
bp:selenium CALL +0ms eval("window.__RafRecorder.get()")
bp:selenium RESPONSE +46ms eval("window.__RafRecorder.get()") [3849.12299999996,3882.59200000175,3898.93100000336,3915.86700000335,3
bp:probes NavTimingProbe +0ms teardown called
bp:selenium CALL +2ms execute("(function(){if(typeof window.chrome!=='undefined'){window.web
bp:selenium RESPONSE +20ms execute("(function(){if(typeof window.chrome!=='undefined'){window.web null
bp:selenium CALL +1ms waitFor({"asserter":{},"timeout":600000,"pollFreq":1000})
bp:selenium CALL +0ms eval("(typeof window.__navTimings !== \"undefined\")")
bp:selenium RESPONSE +19ms eval("(typeof window.__navTimings !== \"undefined\")") true
bp:selenium RESPONSE +0ms waitFor({"asserter":{},"timeout":600000,"pollFreq":1000}) true
bp:selenium CALL +1ms eval("window.__navTimings")
bp:selenium RESPONSE +19ms eval("window.__navTimings") {"__firstPaint":1160.84003448486,"connectEnd":1422908695690,"connectSt
bp:probes PerfLogProbe +0ms teardown called
bp:selenium CALL +0ms log("performance")
bp:selenium RESPONSE +175ms log("performance") [{"level":"INFO","message":"{\"message\":{\"method\":\"Timeline.eventR
bp:probes:PerfLogProbe Got Performance log results +1ms
bp:probes AndroidTracingProbe +28ms teardown called
bp:selenium CALL +0ms sessionCapabilities()
bp:selenium RESPONSE +3ms sessionCapabilities() {"acceptSslCerts":true,"applicationCacheEnabled":false,"browserConnect
bp:probes:AndroidTracingProbe Tearing down android tracing +1ms
bp:probes:AndroidTracingProbe $ adb shell am broadcast -a com.android.chrome.GPU_PROFILER_STOP +0ms
[ !! AFTER A 1-2 MINUTES !! ]
bp:selenium CALL +2m quit()
bp:selenium RESPONSE +948ms quit()
[ undefined ]
Is this possible at the moment? I know it can work with Protractor, but what if our selenium tests are all written in Java and run with the ChromeDriver there?
Performance mode enables less noisy results. More info here
Git - https://chromium.googlesource.com/chromium/src/+/32b3e358017c863318fa7cca3a3c41bb5d056c24/build/android/pylib/perf/perf_control.py, line 29
I know this may not be the problem of browser-perf. But just want to confirm that whether we are suppose to use the tool against CEF.
The full error msg is: unknown error: session deleted because error encountered when notifying listeners of 'GetLog' command from unknown error: unexpected command response
Just a question. Thanks!
This is a nice product and I believe you are headed in the good direction, but there are some cases that I would mention, which I have not been able to find.
Is there any plan to use this project in a way that is more along the lines of jsperf. Meaning could this perf library run tests many times to generate an aggregate result, which would output some percentage difference between linked test cases?
It seems that to be useful we need numbers to compare. Should a third party library offer a simple plug and play ability to compare results via CLI? I think so...
A test that runs and has some various perf metrics is nice, but is not usable unless those metrics are compared against either historical application data or other tests that also run during the same testing cycle.
so in summary I am thinking about a library that does the following:
[ {"message":"[log("performance")] Error response status: 13, , UnknownError - An unknown server-side error occurred while processing the command.","status":13,"cause":{"status":13,"sessionId":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","value":{"message":"Unknown log type: performance"}},"jsonwire-error":{"status":13,"summary":"UnknownError","detail":"An unknown server-side error occurred while processing the command."}} ]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.