Commit 0e479084 authored by epenner@chromium.org's avatar epenner@chromium.org

Telemetry: Add a reduced compositor cases page set.

These are setup to have almost no cpu-time noise. There is
always only one frame source, and we either scroll 4 times
or wait for 10 seconds worth of frames.

Since these are jsbin pages, I've added a '?' label to give
the URL more meaning.

BUG=None

Review URL: https://codereview.chromium.org/250813002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269674 0039d316-1c4b-4281-b951-d872f2087c98
parent 54ad01a0
......@@ -34,6 +34,7 @@ class LegacySilkBenchmark(ThreadTimesKeySilkCases):
def GetName(cls):
return "silk.key_silk_cases"
class ThreadTimesFastPathMobileSites(test.Test):
"""Measures timeline metrics while performing smoothness action on
key mobile sites labeled with fast-path tag.
......@@ -42,11 +43,13 @@ class ThreadTimesFastPathMobileSites(test.Test):
page_set = 'page_sets/key_mobile_sites.py'
options = {'page_label_filter' : 'fastpath'}
class LegacyFastPathBenchmark(ThreadTimesFastPathMobileSites):
"""Same as thread_times.fast_path_mobile_sites but with the old name."""
@classmethod
def GetName(cls):
return "fast_path.key_mobile_sites"
class ThreadTimesCompositorCases(test.Test):
"""Measures timeline metrics while performing smoothness action on
tough compositor cases.
http://www.chromium.org/developers/design-documents/rendering-benchmarks"""
test = thread_times.ThreadTimes
page_set = 'page_sets/tough_compositor_cases.py'
@test.Enabled('android')
......
{
"description": "Describes the Web Page Replay archives for a page set. Don't edit by hand! Use record_wpr for updating.",
"archives": {
"tough_compositor_cases_000.wpr": [
"http://jsbin.com/pixavefe/1/quiet?CC_SCROLL_TEXT_ONLY",
"http://jsbin.com/wixadinu/1/quiet?JS_SCROLL_TEXT_ONLY",
"http://jsbin.com/yakagevo/1/quiet?CC_SCROLL_200_LAYER_GRID",
"http://jsbin.com/jevibahi/1/quiet?JS_SCROLL_200_LAYER_GRID",
"http://jsbin.com/falefice/1/quiet?CC_POSTER_CIRCLE",
"http://jsbin.com/giqafofe/1/quiet?JS_POSTER_CIRCLE",
"http://jsbin.com/beqojupo/1/quiet?JS_FULL_SCREEN_INVALIDATION"
]
}
}
\ No newline at end of file
429b36ad5771c770028340c634faf24cc04d35e3
\ No newline at end of file
# Copyright 2014 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.
# pylint: disable=W0401,W0614
from telemetry.page.actions.all_page_actions import *
from telemetry.page import page as page_module
from telemetry.page import page_set as page_set_module
class ToughCompositorPage(page_module.Page):
def __init__(self, url, page_set):
super(ToughCompositorPage, self).__init__(url=url, page_set=page_set)
self.credentials_path = 'data/credentials.json'
self.user_agent_type = 'mobile'
self.archive_data_file = 'data/tough_compositor_cases.json'
def RunNavigateSteps(self, action_runner):
action_runner.RunAction(NavigateAction())
# TODO(epenner): Remove this wait (http://crbug.com/366933)
action_runner.RunAction(WaitAction({'seconds': 5}))
class ToughCompositorScrollPage(ToughCompositorPage):
def __init__(self, url, page_set):
super(ToughCompositorScrollPage, self).__init__(url=url, page_set=page_set)
def RunSmoothness(self, action_runner):
# Make the scroll longer to reduce noise.
scroll_down = ScrollAction()
scroll_down.direction = "down"
scroll_down.speed = 300
action_runner.RunAction(scroll_down)
class ToughCompositorWaitPage(ToughCompositorPage):
def __init__(self, url, page_set):
super(ToughCompositorWaitPage, self).__init__(url=url, page_set=page_set)
def RunSmoothness(self, action_runner):
# We scroll back and forth a few times to reduce noise in the tests.
action_runner.RunAction(WaitAction({'seconds': 10}))
class ToughCompositorCasesPageSet(page_set_module.PageSet):
""" Touch compositor sites """
def __init__(self):
super(ToughCompositorCasesPageSet, self).__init__(
credentials_path='data/credentials.json',
user_agent_type='mobile',
archive_data_file='data/tough_compositor_cases.json')
scroll_urls_list = [
# Why: Baseline CC scrolling page. A long page with only text. """
'http://jsbin.com/pixavefe/1/quiet?CC_SCROLL_TEXT_ONLY',
# Why: Baseline JS scrolling page. A long page with only text. """
'http://jsbin.com/wixadinu/1/quiet?JS_SCROLL_TEXT_ONLY',
# Why: Scroll by a large number of CC layers """
'http://jsbin.com/yakagevo/1/quiet?CC_SCROLL_200_LAYER_GRID',
# Why: Scroll by a large number of JS layers """
'http://jsbin.com/jevibahi/1/quiet?JS_SCROLL_200_LAYER_GRID',
]
wait_urls_list = [
# Why: CC Poster circle animates many layers """
'http://jsbin.com/falefice/1/quiet?CC_POSTER_CIRCLE',
# Why: JS poster circle animates/commits many layers """
'http://jsbin.com/giqafofe/1/quiet?JS_POSTER_CIRCLE',
# Why: JS invalidation does lots of uploads """
'http://jsbin.com/beqojupo/1/quiet?JS_FULL_SCREEN_INVALIDATION',
]
for url in scroll_urls_list:
self.AddPage(ToughCompositorScrollPage(url, self))
for url in wait_urls_list:
self.AddPage(ToughCompositorWaitPage(url, self))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment