Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting chrome performance and tracing logs

Tags:

I'm trying to follow the idea suggested in the Web Performance Testing with WebDriver google test automation conference talk and ChromeDriver "Performance Log" documentation page to get the trace data which I want to submit to webpagetest for performance analysis later.

How can I retrieve performance logs using python selenium bindings?


I've tried to print out log_types available in the driver instance

from selenium import webdriver  driver = webdriver.Chrome() driver.get('https://stackoverflow.com')  print driver.log_types  driver.close() 

but got only

[u'browser', u'driver'] 

And I don't see a relevant command-line switch.

like image 603
alecxe Avatar asked Dec 25 '14 06:12

alecxe


1 Answers

Performance logs are disabled by default.

To enable it, use DesiredCapabilities and configure loggingPrefs:

from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities  caps = DesiredCapabilities.CHROME  #as per latest docs caps['goog:loggingPrefs'] = {'performance': 'ALL'} driver = webdriver.Chrome(desired_capabilities=caps)  driver.get('https://stackoverflow.com')  for entry in driver.get_log('performance'):     print(entry)  driver.quit() 

This results into a bunch of tracing log entries printed on the console:

{u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Network.responseReceived","params":{"frameId":"2105.1","loaderId":"2105.2","requestId":"2105.1","response":{"connectionId":0,"connectionReused":false,"encodedDataLength":-1,"fromDiskCache":false,"fromServiceWorker":false,"headers":{"Access-Control-Allow-Origin":"*","Content-Type":"text/plain;charset=US-ASCII"},"mimeType":"text/plain","status":200,"statusText":"OK","url":"data:,"},"timestamp":1419487458.92934,"type":"Document"}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'} {u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Network.loadingFinished","params":{"encodedDataLength":0,"requestId":"2105.1","timestamp":1419487458.92936}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'} {u'timestamp': 1419487459178, u'message': u'{"message":{"method":"Page.frameNavigated","params":{"frame":{"id":"2105.1","loaderId":"2105.2","mimeType":"text/plain","securityOrigin":"://","url":"data:,"}}},"webview":"2C66E956-A48B-456B-8A4E-1022F699AA92"}', u'level': u'INFO'} ... 
like image 113
alecxe Avatar answered Nov 22 '22 16:11

alecxe