WebDriverを使用したWebパフォーマンステスト googleテスト自動化会議トークとChromeDriver "パフォーマンスログ"ドキュメントページ で提案されたアイデアに従って、トレースデータを取得しようとしています。後でパフォーマンス分析のために webpagetest に送信したい。
python Seleniumバインディングを使用してパフォーマンスログを取得するにはどうすればよいですか?
ドライバーインスタンスで利用可能なlog_types
を印刷しようとしました
from Selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://stackoverflow.com')
print driver.log_types
driver.close()
しかし、
[u'browser', u'driver']
そして、関連する コマンドラインスイッチ が表示されません。
パフォーマンスログはデフォルトで無効になっています。
有効にするには、 DesiredCapabilities
を使用し、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()
これにより、コンソールに一連のトレースログエントリが出力されます。
{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'}
...