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

Unified Diff: tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py

Issue 273103003: Add responsiveness_metric for timeline_based_measurement (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Chris' comments Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py
diff --git a/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py b/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py
index 0e86d351a53085c6d3071d06f01756fe021eb6f3..3b8f321b93876cef34b6d980ee35a82ae1736ab5 100644
--- a/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py
+++ b/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py
@@ -12,6 +12,9 @@ from telemetry.core.timeline import async_slice
from telemetry.page import page_measurement_results
from telemetry.page import page_measurement_unittest_base
from telemetry.page import page_set
+from telemetry.page import page as page_module
+# pylint: disable=W0401,W0614
+from telemetry.page.actions.all_page_actions import *
from telemetry.unittest import options_for_unittests
from telemetry.web_perf import timeline_based_measurement as tbm_module
from telemetry.web_perf.metrics import timeline_based_metric
@@ -32,7 +35,7 @@ class TimelineBasedMetricsTests(unittest.TestCase):
timestamp=0, duration=20,
start_thread=renderer_thread, end_thread=renderer_thread))
renderer_thread.async_slices.append(async_slice.AsyncSlice(
- 'cat', 'Interaction.LogicalName2/is_loading_resources',
+ 'cat', 'Interaction.LogicalName2/is_responsive',
timestamp=25, duration=5,
start_thread=renderer_thread, end_thread=renderer_thread))
model.FinalizeImport()
@@ -49,7 +52,7 @@ class TimelineBasedMetricsTests(unittest.TestCase):
self.assertEquals(0, interactions[0].start)
self.assertEquals(20, interactions[0].end)
- self.assertTrue(interactions[1].is_loading_resources)
+ self.assertTrue(interactions[1].is_responsive)
self.assertEquals(25, interactions[1].start)
self.assertEquals(30, interactions[1].end)
@@ -71,7 +74,7 @@ class TimelineBasedMetricsTests(unittest.TestCase):
res = []
if interaction.is_smooth:
res.append(FakeSmoothMetric())
- if interaction.is_loading_resources:
+ if interaction.is_responsive:
res.append(FakeLoadingMetric())
return res
@@ -91,6 +94,19 @@ class TimelineBasedMetricsTests(unittest.TestCase):
self.assertEquals(len(v), 1)
+class TestTimelinebasedMeasurementPage(page_module.Page):
+
+ def __init__(self, ps, base_dir):
+ super(TestTimelinebasedMeasurementPage, self).__init__(
+ 'file://interaction_enabled_page.html', ps, base_dir)
+
+ def RunSmoothness(self, action_runner):
+ action_runner.RunAction(WaitAction({'seconds': 2}))
+ action_runner.RunAction(TapAction(
+ {'selector': '#drawer', 'automatically_record_interaction': False}))
+ action_runner.RunAction(WaitAction({'seconds': 1}))
+
+
class TimelineBasedMeasurementTest(
page_measurement_unittest_base.PageMeasurementUnitTestBase):
def setUp(self):
@@ -99,7 +115,7 @@ class TimelineBasedMeasurementTest(
# Disabled due to flakiness: crbug.com/368386
@test.Disabled
- def testTimelineBasedForSmoke(self):
+ def testSmoothnessTimelineBasedMeasurementForSmoke(self):
ps = self.CreatePageSetFromFileInUnittestDataDir(
'interaction_enabled_page.html')
setattr(ps.pages[0], 'RunSmoothness', {'action': 'wait',
@@ -113,3 +129,18 @@ class TimelineBasedMeasurementTest(
v = results.FindAllPageSpecificValuesNamed('DrawerAnimation-jank')
self.assertEquals(len(v), 1)
+ def testMainthreadJankTimelineBasedMeasurement(self):
+ ps = self.CreateEmptyPageSet()
+ ps.AddPage(TestTimelinebasedMeasurementPage(ps, ps.base_dir))
+
+ measurement = tbm_module.TimelineBasedMeasurement()
+ results = self.RunMeasurement(measurement, ps,
+ options=self._options)
+ self.assertEquals(0, len(results.failures))
+ v = results.FindAllPageSpecificValuesNamed('JankThreadJSRun-num_big_janks')
+ self.assertEquals(len(v), 1)
+ self.assertEquals(v[0].value, 1)
+
+ v = results.FindAllPageSpecificValuesNamed(
+ 'JankThreadJSRun-biggest_jank_thread_time')
+ self.assertGreaterEqual(v[0].value, 50)

Powered by Google App Engine
This is Rietveld 408576698