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
3 # found in the LICENSE file.
7 from telemetry.results import output_formatter
10 def ResultsAsDict(page_test_results, metadata):
12 'format_version': '0.2',
13 'benchmark_name': metadata.name,
14 'summary_values': [v.AsDict() for v in
15 page_test_results.all_summary_values],
16 'per_page_values': [v.AsDict() for v in
17 page_test_results.all_page_specific_values],
18 'pages': dict((p.id, p.AsDict()) for p in _GetAllPages(page_test_results))
23 def _GetAllPages(page_test_results):
24 pages = set(page_run.page for page_run in
25 page_test_results.all_page_runs)
28 class JsonOutputFormatter(output_formatter.OutputFormatter):
29 def __init__(self, output_stream, metadata):
30 super(JsonOutputFormatter, self).__init__(output_stream)
31 self._metadata = metadata
37 def Format(self, page_test_results):
38 json.dump(ResultsAsDict(page_test_results, self.metadata),
40 self.output_stream.write('\n')