OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 """Impact HTML5 Gaming benchmark. | 5 """Impact HTML5 Gaming benchmark. |
6 | 6 |
7 Tests one very specific use case: smooth running games rendered with the | 7 Tests one very specific use case: smooth running games rendered with the |
8 <canvas> element. The score for the HTML5-Benchmark takes the total time the | 8 <canvas> element. The score for the HTML5-Benchmark takes the total time the |
9 browser spent rendering frames (formula is 1000000/(sqrt(totalTime) + lagTime * | 9 browser spent rendering frames (formula is 1000000/(sqrt(totalTime) + lagTime * |
10 0.1)). The benchmark automatically runs at a reasonable screen size. Final | 10 0.1)). The benchmark automatically runs at a reasonable screen size. Final |
11 score is a indicator for the browser's ability to smoothly run HTML5 games.""" | 11 score is a indicator for the browser's ability to smoothly run HTML5 games.""" |
12 | 12 |
13 import os | 13 import os |
14 | 14 |
15 from telemetry import test | 15 from telemetry import test |
16 from telemetry.page import page_measurement | 16 from telemetry.page import page_measurement |
17 from telemetry.page import page_set | 17 from telemetry.page import page_set |
18 | 18 |
19 | |
20 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): | 19 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): |
21 def MeasurePage(self, _, tab, results): | 20 def MeasurePage(self, _, tab, results): |
22 tab.ExecuteJavaScript('benchmark();') | 21 tab.ExecuteJavaScript('benchmark();') |
23 # Default value of score element is 87485, its value is updated with actual | 22 # Default value of score element is 87485, its value is updated with actual |
24 # score when test finish. | 23 # score when test finish. |
25 tab.WaitForJavaScriptExpression( | 24 tab.WaitForJavaScriptExpression( |
26 'document.getElementById("score").innerHTML != "87485"', 200) | 25 'document.getElementById("score").innerHTML != "87485"', 200) |
27 result = int(tab.EvaluateJavaScript( | 26 result = int(tab.EvaluateJavaScript( |
28 'document.getElementById("score").innerHTML')) | 27 'document.getElementById("score").innerHTML')) |
29 results.Add('Score', 'score', result) | 28 results.Add('Score', 'score', result) |
30 | 29 |
31 | 30 |
32 class HTML5Gaming(test.Test): | 31 class HTML5Gaming(test.Test): |
33 """Imapct HTML5 smooth running games benchmark suite.""" | 32 """Imapct HTML5 smooth running games benchmark suite.""" |
34 test = _HTML5GamingMeasurement | 33 test = _HTML5GamingMeasurement |
35 def CreatePageSet(self, options): | 34 def CreatePageSet(self, options): |
36 return page_set.PageSet.FromDict({ | 35 ps = page_set.PageSet( |
37 'archive_data_file': '../page_sets/data/html5gaming.json', | 36 file_path=os.path.abspath(__file__), |
38 'make_javascript_deterministic': False, | 37 archive_data_file='../page_sets/data/html5gaming.json', |
39 'pages': [ | 38 make_javascript_deterministic=False) |
40 { 'url': | 39 ps.AddPageWithDefaultRunNavigate('http://html5-benchmark.com/') |
41 'http://html5-benchmark.com/'} | 40 return ps |
42 ] | |
43 }, os.path.abspath(__file__)) | |
44 | |
OLD | NEW |