OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 import json | 4 import json |
5 import os | 5 import os |
6 import shutil | 6 import shutil |
7 import StringIO | 7 import StringIO |
8 import unittest | 8 import unittest |
9 import tempfile | 9 import tempfile |
10 | 10 |
11 from telemetry import benchmark | 11 from telemetry import benchmark |
12 from telemetry import page as page_module | 12 from telemetry import page as page_module |
13 from telemetry.page import page_set | 13 from telemetry.page import page_set |
14 from telemetry.results import json_output_formatter | 14 from telemetry.results import json_output_formatter |
15 from telemetry.results import page_test_results | 15 from telemetry.results import page_test_results |
| 16 from telemetry.value import improvement_direction |
16 from telemetry.value import scalar | 17 from telemetry.value import scalar |
17 from telemetry.value import trace | 18 from telemetry.value import trace |
18 from telemetry.timeline import trace_data | 19 from telemetry.timeline import trace_data |
19 | 20 |
20 | 21 |
21 def _MakePageSet(): | 22 def _MakePageSet(): |
22 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) | 23 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) |
23 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) | 24 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) |
24 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) | 25 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) |
25 return ps | 26 return ps |
(...skipping 11 matching lines...) Expand all Loading... |
37 self._formatter = json_output_formatter.JsonOutputFormatter( | 38 self._formatter = json_output_formatter.JsonOutputFormatter( |
38 self._output, | 39 self._output, |
39 benchmark.BenchmarkMetadata('benchmark_name')) | 40 benchmark.BenchmarkMetadata('benchmark_name')) |
40 | 41 |
41 def testOutputAndParse(self): | 42 def testOutputAndParse(self): |
42 results = page_test_results.PageTestResults() | 43 results = page_test_results.PageTestResults() |
43 | 44 |
44 self._output.truncate(0) | 45 self._output.truncate(0) |
45 | 46 |
46 results.WillRunPage(self._page_set[0]) | 47 results.WillRunPage(self._page_set[0]) |
47 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) | 48 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3, |
| 49 improvement_direction=improvement_direction.DOWN) |
48 results.AddValue(v0) | 50 results.AddValue(v0) |
49 results.DidRunPage(self._page_set[0]) | 51 results.DidRunPage(self._page_set[0]) |
50 | 52 |
51 self._formatter.Format(results) | 53 self._formatter.Format(results) |
52 json.loads(self._output.getvalue()) | 54 json.loads(self._output.getvalue()) |
53 | 55 |
54 def testAsDictBaseKeys(self): | 56 def testAsDictBaseKeys(self): |
55 results = page_test_results.PageTestResults() | 57 results = page_test_results.PageTestResults() |
56 d = json_output_formatter.ResultsAsDict(results, | 58 d = json_output_formatter.ResultsAsDict(results, |
57 self._formatter.benchmark_metadata) | 59 self._formatter.benchmark_metadata) |
58 | 60 |
59 self.assertEquals(d['format_version'], '0.2') | 61 self.assertEquals(d['format_version'], '0.2') |
60 self.assertEquals(d['benchmark_name'], 'benchmark_name') | 62 self.assertEquals(d['benchmark_name'], 'benchmark_name') |
61 | 63 |
62 def testAsDictWithOnePage(self): | 64 def testAsDictWithOnePage(self): |
63 results = page_test_results.PageTestResults() | 65 results = page_test_results.PageTestResults() |
64 results.WillRunPage(self._page_set[0]) | 66 results.WillRunPage(self._page_set[0]) |
65 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) | 67 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3, |
| 68 improvement_direction=improvement_direction.DOWN) |
66 results.AddValue(v0) | 69 results.AddValue(v0) |
67 results.DidRunPage(self._page_set[0]) | 70 results.DidRunPage(self._page_set[0]) |
68 | 71 |
69 d = json_output_formatter.ResultsAsDict(results, | 72 d = json_output_formatter.ResultsAsDict(results, |
70 self._formatter.benchmark_metadata) | 73 self._formatter.benchmark_metadata) |
71 | 74 |
72 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) | 75 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) |
73 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) | 76 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) |
74 | 77 |
75 def testAsDictWithTraceValue(self): | 78 def testAsDictWithTraceValue(self): |
(...skipping 17 matching lines...) Expand all Loading... |
93 self.assertTrue(output_trace_path.startswith(tempdir)) | 96 self.assertTrue(output_trace_path.startswith(tempdir)) |
94 self.assertTrue(os.path.exists(output_trace_path)) | 97 self.assertTrue(os.path.exists(output_trace_path)) |
95 finally: | 98 finally: |
96 shutil.rmtree(tempdir) | 99 shutil.rmtree(tempdir) |
97 | 100 |
98 | 101 |
99 | 102 |
100 def testAsDictWithTwoPages(self): | 103 def testAsDictWithTwoPages(self): |
101 results = page_test_results.PageTestResults() | 104 results = page_test_results.PageTestResults() |
102 results.WillRunPage(self._page_set[0]) | 105 results.WillRunPage(self._page_set[0]) |
103 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) | 106 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3, |
| 107 improvement_direction=improvement_direction.DOWN) |
104 results.AddValue(v0) | 108 results.AddValue(v0) |
105 results.DidRunPage(self._page_set[0]) | 109 results.DidRunPage(self._page_set[0]) |
106 | 110 |
107 results.WillRunPage(self._page_set[1]) | 111 results.WillRunPage(self._page_set[1]) |
108 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4) | 112 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4, |
| 113 improvement_direction=improvement_direction.DOWN) |
109 results.AddValue(v1) | 114 results.AddValue(v1) |
110 results.DidRunPage(self._page_set[1]) | 115 results.DidRunPage(self._page_set[1]) |
111 | 116 |
112 d = json_output_formatter.ResultsAsDict(results, | 117 d = json_output_formatter.ResultsAsDict(results, |
113 self._formatter.benchmark_metadata) | 118 self._formatter.benchmark_metadata) |
114 | 119 |
115 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) | 120 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) |
116 self.assertTrue(_HasPage(d['pages'], self._page_set[1])) | 121 self.assertTrue(_HasPage(d['pages'], self._page_set[1])) |
117 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) | 122 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) |
118 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar')) | 123 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar')) |
119 | 124 |
120 def testAsDictWithSummaryValueOnly(self): | 125 def testAsDictWithSummaryValueOnly(self): |
121 results = page_test_results.PageTestResults() | 126 results = page_test_results.PageTestResults() |
122 v = scalar.ScalarValue(None, 'baz', 'seconds', 5) | 127 v = scalar.ScalarValue(None, 'baz', 'seconds', 5, |
| 128 improvement_direction=improvement_direction.DOWN) |
123 results.AddSummaryValue(v) | 129 results.AddSummaryValue(v) |
124 | 130 |
125 d = json_output_formatter.ResultsAsDict(results, | 131 d = json_output_formatter.ResultsAsDict(results, |
126 self._formatter.benchmark_metadata) | 132 self._formatter.benchmark_metadata) |
127 | 133 |
128 self.assertFalse(d['pages']) | 134 self.assertFalse(d['pages']) |
129 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz')) | 135 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz')) |
OLD | NEW |