def testTimelineBetweenRange(self): model = model_module.TimelineModel() renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) renderer_main.name = 'CrRendererMain' # [ X ] [ Z ] # [ Y ] [ T ] # [ interaction record ] renderer_main.BeginSlice('cat1', 'x.y', 10, 0) renderer_main.EndSlice(20, 20) renderer_main.BeginSlice('cat1', 'z.t', 30, 0) renderer_main.EndSlice(35, 35) model.FinalizeImport() metric = timeline.LoadTimesTimelineMetric() results = self.GetResults( metric, model=model, renderer_thread=renderer_main, interaction_records=[_GetInteractionRecord(10, 20)]) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y', 'ms', 10) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y_max', 'ms', 10) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y_avg', 'ms', 10)
def testCounterSanitizing(self): model = model_module.TimelineModel() renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) renderer_main.name = 'CrRendererMain' x_counter = renderer_main.parent.GetOrCreateCounter('cat', 'x.y') x_counter.samples += [1, 2] x_counter.series_names += ['a'] x_counter.timestamps += [0, 1] model.FinalizeImport() metric = timeline.LoadTimesTimelineMetric(model, renderer_main.parent) results = self.GetResults(metric) results.AssertHasPageSpecificScalarValue('cat_x_y', 'count', 3) results.AssertHasPageSpecificScalarValue('cat_x_y_avg', 'count', 1.5)
def MeasurePage(self, page, tab, results): # In current telemetry tests, all tests wait for DocumentComplete state, # but we need to wait for the load event. tab.WaitForJavaScriptExpression('performance.timing.loadEventStart', 300) # TODO(nduca): when crbug.com/168431 is fixed, modify the page sets to # recognize loading as a toplevel action. self._timeline_controller.Stop(tab) loading.LoadingMetric().AddResults(tab, results) timeline_metric = timeline.LoadTimesTimelineMetric( self._timeline_controller.model, self._timeline_controller.renderer_process, self._timeline_controller.action_ranges) timeline_metric.AddResults(tab, results)
def MeasurePage(self, page, tab, results): # In current telemetry tests, all tests wait for DocumentComplete state, # but we need to wait for the load event. tab.WaitForJavaScriptExpression('performance.timing.loadEventStart', 300) # TODO(nduca): when crbug.com/168431 is fixed, modify the page sets to # recognize loading as a toplevel action. self._timeline_controller.Stop(tab) loading.LoadingMetric().AddResults(tab, results) timeline_metric = timeline.LoadTimesTimelineMetric() renderer_thread = \ self._timeline_controller.model.GetRendererThreadFromTab(tab) record = tir_module.TimelineInteractionRecord( "loading_trace_interaction", 0, float('inf')) timeline_metric.AddResults(self._timeline_controller.model, renderer_thread, [record], results)
def testSanitizing(self): model = model_module.TimelineModel() renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) renderer_main.name = 'CrRendererMain' # [ X ] # [ Y ] renderer_main.BeginSlice('cat1', 'x.y', 10, 0) renderer_main.EndSlice(20, 20) model.FinalizeImport() metric = timeline.LoadTimesTimelineMetric(model, renderer_main.parent) results = self.GetResults(metric) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y', 'ms', 10) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y_max', 'ms', 10) results.AssertHasPageSpecificScalarValue('CrRendererMain|x_y_avg', 'ms', 10)
def testSanitizing(self): model = model_module.TimelineModel() renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) renderer_main.name = 'CrRendererMain' # [ X ] # [ Y ] renderer_main.BeginSlice('cat1', 'x.y', 10, 0) renderer_main.EndSlice(20, 20) model.FinalizeImport() metric = timeline.LoadTimesTimelineMetric() results = self.GetResults( metric, model=model, renderer_thread=renderer_main, interaction_records=[_GetInteractionRecord(0, float('inf'))]) results.AssertHasPageSpecificScalarValue( 'CrRendererMain|x_y', 'ms', 10) results.AssertHasPageSpecificScalarValue( 'CrRendererMain|x_y_max', 'ms', 10) results.AssertHasPageSpecificScalarValue( 'CrRendererMain|x_y_avg', 'ms', 10)
def __init__(self, *args, **kwargs): super(LoadingTimeline, self).__init__(*args, **kwargs) self._timeline_metric = timeline.LoadTimesTimelineMetric( timeline.TIMELINE_MODE)
def __init__(self, *args, **kwargs): super(LoadingTrace, self).__init__(*args, **kwargs) self._timeline_metric = timeline.LoadTimesTimelineMetric( timeline.TRACING_MODE)