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

Unified Diff: tools/perf/page_sets/webrtc_cases.py

Issue 2790553003: Use a single benchmark for WebRTC telemetry tests. (Closed)
Patch Set: Ran it again.... Created 3 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
« no previous file with comments | « tools/perf/measurements/webrtc.py ('k') | tools/perf/page_sets/webrtc_track_peerconnections.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/page_sets/webrtc_cases.py
diff --git a/tools/perf/page_sets/webrtc_cases.py b/tools/perf/page_sets/webrtc_cases.py
index 5d8f3f58a9d808b6fde59bdeb81f3e46e0293aa4..2cce60f759eb7217f45399f088c212e316b609b8 100644
--- a/tools/perf/page_sets/webrtc_cases.py
+++ b/tools/perf/page_sets/webrtc_cases.py
@@ -1,7 +1,6 @@
# 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.
-import os
from telemetry import story
from telemetry.page import page as page_module
@@ -9,38 +8,34 @@ from telemetry.page import page as page_module
class WebrtcPage(page_module.Page):
- def __init__(self, url, page_set, name):
+ def __init__(self, url, page_set, name, tags):
assert url.startswith('file://webrtc_cases/')
super(WebrtcPage, self).__init__(
- url=url, page_set=page_set, name=name)
+ url=url, page_set=page_set, name=name, tags=tags)
- with open(os.path.join(os.path.dirname(__file__),
- 'webrtc_track_peerconnections.js')) as javascript:
- self.script_to_evaluate_on_commit = javascript.read()
-
-class Page1(WebrtcPage):
+class GetUserMedia(WebrtcPage):
"""Why: Acquires a high definition (720p) local stream."""
- def __init__(self, page_set):
- super(Page1, self).__init__(
+ def __init__(self, page_set, tags):
+ super(GetUserMedia, self).__init__(
url='file://webrtc_cases/resolution.html',
name='hd_local_stream_10s',
- page_set=page_set)
+ page_set=page_set, tags=tags)
def RunPageInteractions(self, action_runner):
action_runner.ClickElement('button[id="hd"]')
action_runner.Wait(10)
-class Page2(WebrtcPage):
+class VideoCall(WebrtcPage):
"""Why: Sets up a local video-only WebRTC 720p call for 45 seconds."""
- def __init__(self, page_set):
- super(Page2, self).__init__(
+ def __init__(self, page_set, tags):
+ super(VideoCall, self).__init__(
url='file://webrtc_cases/constraints.html',
name='720p_call_45s',
- page_set=page_set)
+ page_set=page_set, tags=tags)
def RunPageInteractions(self, action_runner):
with action_runner.CreateInteraction('Action_Create_PeerConnection',
@@ -55,14 +50,14 @@ class Page2(WebrtcPage):
action_runner.Wait(45)
-class Page3(WebrtcPage):
+class DataChannel(WebrtcPage):
"""Why: Transfer as much data as possible through a data channel in 20s."""
- def __init__(self, page_set):
- super(Page3, self).__init__(
+ def __init__(self, page_set, tags):
+ super(DataChannel, self).__init__(
url='file://webrtc_cases/datatransfer.html',
name='30s_datachannel_transfer',
- page_set=page_set)
+ page_set=page_set, tags=tags)
def RunPageInteractions(self, action_runner):
# It won't have time to finish the 512 MB, but we're only interested in
@@ -72,74 +67,29 @@ class Page3(WebrtcPage):
action_runner.Wait(30)
-class Page4(WebrtcPage):
- """Why: Sets up a WebRTC audio call with Opus."""
-
- def __init__(self, page_set):
- super(Page4, self).__init__(
- url='file://webrtc_cases/audio.html?codec=OPUS',
- name='audio_call_opus_10s',
- page_set=page_set)
-
- def RunPageInteractions(self, action_runner):
- action_runner.ExecuteJavaScript('codecSelector.value="OPUS";')
- action_runner.ClickElement('button[id="callButton"]')
- action_runner.Wait(10)
-
-
-class Page5(WebrtcPage):
- """Why: Sets up a WebRTC audio call with G722."""
+class AudioCall(WebrtcPage):
+ """Why: Sets up a WebRTC audio call."""
- def __init__(self, page_set):
- super(Page5, self).__init__(
- url='file://webrtc_cases/audio.html?codec=G722',
- name='audio_call_g722_10s',
- page_set=page_set)
+ def __init__(self, page_set, codec, tags):
+ super(AudioCall, self).__init__(
+ url='file://webrtc_cases/audio.html?codec=%s' % codec,
+ name='audio_call_%s_10s' % codec.lower(),
+ page_set=page_set, tags=tags)
+ self.codec = codec
def RunPageInteractions(self, action_runner):
- action_runner.ExecuteJavaScript('codecSelector.value="G722";')
+ action_runner.ExecuteJavaScript('codecSelector.value="%s";' % self.codec)
action_runner.ClickElement('button[id="callButton"]')
action_runner.Wait(10)
-
-class Page6(WebrtcPage):
- """Why: Sets up a WebRTC audio call with PCMU."""
-
- def __init__(self, page_set):
- super(Page6, self).__init__(
- url='file://webrtc_cases/audio.html?codec=PCMU',
- name='audio_call_pcmu_10s',
- page_set=page_set)
-
- def RunPageInteractions(self, action_runner):
- action_runner.ExecuteJavaScript('codecSelector.value="PCMU";')
- action_runner.ClickElement('button[id="callButton"]')
- action_runner.Wait(10)
-
-
-class Page7(WebrtcPage):
- """Why: Sets up a WebRTC audio call with iSAC 16K."""
-
- def __init__(self, page_set):
- super(Page7, self).__init__(
- url='file://webrtc_cases/audio.html?codec=ISAC_16K',
- name='audio_call_isac16k_10s',
- page_set=page_set)
-
- def RunPageInteractions(self, action_runner):
- action_runner.ExecuteJavaScript('codecSelector.value="ISAC/16000";')
- action_runner.ClickElement('button[id="callButton"]')
- action_runner.Wait(10)
-
-
-class Page8(WebrtcPage):
+class CanvasCapturePeerConnection(WebrtcPage):
"""Why: Sets up a canvas capture stream connection to a peer connection."""
- def __init__(self, page_set):
- super(Page8, self).__init__(
+ def __init__(self, page_set, tags):
+ super(CanvasCapturePeerConnection, self).__init__(
url='file://webrtc_cases/canvas-capture.html',
name='canvas_capture_peer_connection',
- page_set=page_set)
+ page_set=page_set, tags=tags)
def RunPageInteractions(self, action_runner):
with action_runner.CreateInteraction('Action_Canvas_PeerConnection',
@@ -148,14 +98,14 @@ class Page8(WebrtcPage):
action_runner.Wait(10)
-class Page9(WebrtcPage):
- """Why: Sets up several peerconnections in the same page."""
+class MultiplePeerConnections(WebrtcPage):
+ """Why: Sets up several peer connections in the same page."""
- def __init__(self, page_set):
- super(Page9, self).__init__(
+ def __init__(self, page_set, tags):
+ super(MultiplePeerConnections, self).__init__(
url='file://webrtc_cases/multiple-peerconnections.html',
name='multiple_peerconnections',
- page_set=page_set)
+ page_set=page_set, tags=tags)
def RunPageInteractions(self, action_runner):
with action_runner.CreateInteraction('Action_Create_PeerConnection',
@@ -169,65 +119,20 @@ class Page9(WebrtcPage):
action_runner.Wait(45)
-class WebrtcGetusermediaPageSet(story.StorySet):
- """WebRTC tests for local getUserMedia: video capture and playback."""
-
+class WebrtcPageSet(story.StorySet):
def __init__(self):
- super(WebrtcGetusermediaPageSet, self).__init__(
+ super(WebrtcPageSet, self).__init__(
cloud_storage_bucket=story.PUBLIC_BUCKET)
- self.AddStory(Page1(self))
-
-
-class WebrtcStresstestPageSet(story.StorySet):
- """WebRTC stress-testing with multiple peer connections."""
-
- def __init__(self):
- super(WebrtcStresstestPageSet, self).__init__(
- cloud_storage_bucket=story.PUBLIC_BUCKET)
-
- self.AddStory(Page9(self))
-
-
-class WebrtcPeerconnectionPageSet(story.StorySet):
- """WebRTC tests for Real-time video and audio communication."""
-
- def __init__(self):
- super(WebrtcPeerconnectionPageSet, self).__init__(
- cloud_storage_bucket=story.PUBLIC_BUCKET)
-
- self.AddStory(Page2(self))
-
-
-class WebrtcDatachannelPageSet(story.StorySet):
- """WebRTC tests for Real-time communication via the data channel."""
-
- def __init__(self):
- super(WebrtcDatachannelPageSet, self).__init__(
- cloud_storage_bucket=story.PUBLIC_BUCKET)
-
- self.AddStory(Page3(self))
-
-
-class WebrtcAudioPageSet(story.StorySet):
- """WebRTC tests for Real-time audio communication."""
-
- def __init__(self):
- super(WebrtcAudioPageSet, self).__init__(
- cloud_storage_bucket=story.PUBLIC_BUCKET)
-
- self.AddStory(Page4(self))
- self.AddStory(Page5(self))
- self.AddStory(Page6(self))
- self.AddStory(Page7(self))
-
-
-class WebrtcRenderingPageSet(story.StorySet):
- """WebRTC tests for video rendering."""
-
- def __init__(self):
- super(WebrtcRenderingPageSet, self).__init__(
- cloud_storage_bucket=story.PARTNER_BUCKET)
-
- self.AddStory(Page2(self))
- self.AddStory(Page8(self))
+ self.AddStory(GetUserMedia(self, tags=['getusermedia']))
+ self.AddStory(MultiplePeerConnections(self, tags=['stress']))
+ self.AddStory(VideoCall(self, tags=['peerconnection', 'smoothness']))
+ self.AddStory(DataChannel(self, tags=['datachannel']))
+ self.AddStory(CanvasCapturePeerConnection(self, tags=['smoothness']))
+ # TODO(qyearsley, mcasas): Add webrtc.audio when http://crbug.com/468732
+ # is fixed, or revert https://codereview.chromium.org/1544573002/ when
+ # http://crbug.com/568333 is fixed.
+ # self.AddStory(AudioCall(self, 'OPUS'))
+ # self.AddStory(AudioCall(self, 'G772'))
+ # self.AddStory(AudioCall(self, 'PCMU'))
+ # self.AddStory(AudioCall(self, 'ISAC/1600'))
« no previous file with comments | « tools/perf/measurements/webrtc.py ('k') | tools/perf/page_sets/webrtc_track_peerconnections.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698