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