Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: tools/perf/measurements/timeline_based_measurement_unittest.py

Issue 200843002: Convert smoothness to the new timeline based metric API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/perf/measurements/timeline_based_measurement.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 4
5 import os 5 import os
6 import unittest 6 import unittest
7 7
8 from measurements import timeline_based_measurement as tbm_module 8 from measurements import timeline_based_measurement as tbm_module
9 from metrics import timeline_based_metric 9 from metrics import timeline_based_metric
10 from telemetry.core import wpr_modes 10 from telemetry.core import wpr_modes
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 50
51 self.assertTrue(interactions[1].is_loading_resources) 51 self.assertTrue(interactions[1].is_loading_resources)
52 self.assertEquals(25, interactions[1].start) 52 self.assertEquals(25, interactions[1].start)
53 self.assertEquals(30, interactions[1].end) 53 self.assertEquals(30, interactions[1].end)
54 54
55 def testAddResults(self): 55 def testAddResults(self):
56 results = page_measurement_results.PageMeasurementResults() 56 results = page_measurement_results.PageMeasurementResults()
57 class FakeSmoothMetric(timeline_based_metric.TimelineBasedMetric): 57 class FakeSmoothMetric(timeline_based_metric.TimelineBasedMetric):
58 def AddResults(self, model, renderer_thread, 58 def AddResults(self, model, renderer_thread,
59 interaction_record, results): 59 interaction_record, results):
60 results.Add( 60 results.Add('FakeSmoothMetric', 'ms', 1)
61 interaction_record.GetResultNameFor('FakeSmoothMetric'), 'ms', 1)
62 61
63 class FakeLoadingMetric(timeline_based_metric.TimelineBasedMetric): 62 class FakeLoadingMetric(timeline_based_metric.TimelineBasedMetric):
64 def AddResults(self, model, renderer_thread, 63 def AddResults(self, model, renderer_thread,
65 interaction_record, results): 64 interaction_record, results):
66 assert interaction_record.logical_name == 'LogicalName2' 65 assert interaction_record.logical_name == 'LogicalName2'
67 results.Add( 66 results.Add('FakeLoadingMetric', 'ms', 2)
68 interaction_record.GetResultNameFor('FakeLoadingMetric'), 'ms', 2)
69 67
70 class TimelineBasedMetricsWithFakeMetricHandler( 68 class TimelineBasedMetricsWithFakeMetricHandler(
71 tbm_module._TimelineBasedMetrics): # pylint: disable=W0212 69 tbm_module._TimelineBasedMetrics): # pylint: disable=W0212
72 def CreateMetricsForTimelineInteractionRecord(self, interaction): 70 def CreateMetricsForTimelineInteractionRecord(self, interaction):
73 res = [] 71 res = []
74 if interaction.is_smooth: 72 if interaction.is_smooth:
75 res.append(FakeSmoothMetric()) 73 res.append(FakeSmoothMetric())
76 if interaction.is_loading_resources: 74 if interaction.is_loading_resources:
77 res.append(FakeLoadingMetric()) 75 res.append(FakeLoadingMetric())
78 return res 76 return res
79 77
80 metric = TimelineBasedMetricsWithFakeMetricHandler( 78 metric = TimelineBasedMetricsWithFakeMetricHandler(
81 self.model, self.renderer_thread) 79 self.model, self.renderer_thread)
82 ps = page_set.PageSet.FromDict({ 80 ps = page_set.PageSet.FromDict({
83 "description": "hello", 81 "description": "hello",
84 "archive_path": "foo.wpr", 82 "archive_path": "foo.wpr",
85 "pages": [ 83 "pages": [
86 {"url": "http://www.bar.com/"} 84 {"url": "http://www.bar.com/"}
87 ] 85 ]
88 }, os.path.dirname(__file__)) 86 }, os.path.dirname(__file__))
89 results.WillMeasurePage(ps.pages[0]) 87 results.WillMeasurePage(ps.pages[0])
90 metric.AddResults(results) 88 metric.AddResults(results)
91 results.DidMeasurePage() 89 results.DidMeasurePage()
92 90
93 v = results.FindAllPageSpecificValuesNamed('LogicalName1/FakeSmoothMetric') 91 v = results.FindAllPageSpecificValuesNamed('LogicalName1-FakeSmoothMetric')
94 self.assertEquals(len(v), 1) 92 self.assertEquals(len(v), 1)
95 v = results.FindAllPageSpecificValuesNamed('LogicalName2/FakeLoadingMetric') 93 v = results.FindAllPageSpecificValuesNamed('LogicalName2-FakeLoadingMetric')
96 self.assertEquals(len(v), 1) 94 self.assertEquals(len(v), 1)
97 95
98 96
99 class TimelineBasedMeasurementTest( 97 class TimelineBasedMeasurementTest(
100 page_measurement_unittest_base.PageMeasurementUnitTestBase): 98 page_measurement_unittest_base.PageMeasurementUnitTestBase):
101 def setUp(self): 99 def setUp(self):
102 self._options = options_for_unittests.GetCopy() 100 self._options = options_for_unittests.GetCopy()
103 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF 101 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
104 102
105 def testTimelineBasedForSmoke(self): 103 def testTimelineBasedForSmoke(self):
106 ps = self.CreatePageSetFromFileInUnittestDataDir( 104 ps = self.CreatePageSetFromFileInUnittestDataDir(
107 'interaction_enabled_page.html') 105 'interaction_enabled_page.html')
108 setattr(ps.pages[0], 'smoothness', {'action': 'wait', 106 setattr(ps.pages[0], 'smoothness', {'action': 'wait',
109 'javascript': 'window.animationDone'}) 107 'javascript': 'window.animationDone'})
110 measurement = tbm_module.TimelineBasedMeasurement() 108 measurement = tbm_module.TimelineBasedMeasurement()
111 results = self.RunMeasurement(measurement, ps, 109 results = self.RunMeasurement(measurement, ps,
112 options=self._options) 110 options=self._options)
113 self.assertEquals(0, len(results.failures)) 111 self.assertEquals(0, len(results.failures))
112 v = results.FindAllPageSpecificValuesNamed('CenterAnimation-jank')
113 self.assertEquals(len(v), 2)
114 v = results.FindAllPageSpecificValuesNamed('DrawerAnimation-jank')
115 self.assertEquals(len(v), 2)
116
OLDNEW
« no previous file with comments | « tools/perf/measurements/timeline_based_measurement.py ('k') | tools/perf/metrics/smoothness.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698