1 # Copyright 2012 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 """Runs Microsoft's RoboHornet Pro benchmark.""" 6 7 import os 8 9 from metrics import power 10 from telemetry import test 11 from telemetry.page import page_measurement 12 from telemetry.page import page_set 13 14 15 class _RobohornetProMeasurement(page_measurement.PageMeasurement): 16 def __init__(self): 17 super(_RobohornetProMeasurement, self).__init__() 18 self._power_metric = power.PowerMetric() 19 20 def CustomizeBrowserOptions(self, options): 21 power.PowerMetric.CustomizeBrowserOptions(options) 22 23 def DidNavigateToPage(self, page, tab): 24 self._power_metric.Start(page, tab) 25 26 def MeasurePage(self, page, tab, results): 27 tab.ExecuteJavaScript('ToggleRoboHornet()') 28 tab.WaitForJavaScriptExpression( 29 'document.getElementById("results").innerHTML.indexOf("Total") != -1', 30 600) 31 32 self._power_metric.Stop(page, tab) 33 self._power_metric.AddResults(tab, results) 34 35 result = int(tab.EvaluateJavaScript('stopTime - startTime')) 36 results.Add('Total', 'ms', result) 37 38 39 class RobohornetPro(test.Test): 40 test = _RobohornetProMeasurement 41 42 def CreatePageSet(self, options): 43 ps = page_set.PageSet( 44 archive_data_file='../page_sets/data/robohornet_pro.json', 45 # Measurement require use of real Date.now() for measurement. 46 make_javascript_deterministic=False, 47 file_path=os.path.abspath(__file__)) 48 ps.AddPageWithDefaultRunNavigate( 49 'http://ie.microsoft.com/testdrive/performance/robohornetpro/') 50 return ps 51