blob: 44c2ccbfb5a3c3098c032f427a9d73d6064a4d90 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
from core import perf_benchmark
from page_sets.system_health import multi_tab_stories
from telemetry import benchmark
from telemetry import story
from telemetry.timeline import chrome_trace_category_filter
from telemetry.web_perf import timeline_based_measurement
@benchmark.Info(emails=['vovoy@chromium.org'],
component='OS>Performance')
class TabSwitchingTypical25(perf_benchmark.PerfBenchmark):
"""This test records the MPArch.RWH_TabSwitchPaintDuration histogram.
The histogram is a measure of the time between when a tab was requested to be
shown, and when first paint occurred. The script opens 25 pages in different
tabs, waits for them to load, and then switches to each tab and records the
metric. The pages were chosen from Alexa top ranking sites.
"""
SUPPORTED_PLATFORMS = [story.expectations.ALL_DESKTOP]
@classmethod
def AddBenchmarkCommandLineArgs(cls, parser):
parser.add_option('--tabset-repeat', type='int', default=1,
help='repeat tab page set')
def CreateStorySet(self, options):
story_set = story.StorySet(
archive_data_file='../page_sets/data/system_health_desktop.json',
base_dir=os.path.dirname(os.path.abspath(__file__)),
cloud_storage_bucket=story.PARTNER_BUCKET)
story_set.AddStory(multi_tab_stories.MultiTabTypical24Story(
story_set, False, options.tabset_repeat))
return story_set
def CreateCoreTimelineBasedMeasurementOptions(self):
category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter()
category_filter.AddIncludedCategory('latency')
options = timeline_based_measurement.Options(category_filter)
options.SetTimelineBasedMetrics(['tabsMetric'])
return options
@classmethod
def Name(cls):
return 'tab_switching.typical_25'