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

Unified Diff: tools/perf/benchmarks/blink_perf.py

Issue 736653002: [Pywebsocket PerformanceTests 2/2] Add blink_perf.pywebsocket (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move to constructor. Created 5 years, 8 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 | « no previous file | tools/perf/benchmarks/pywebsocket_server.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/benchmarks/blink_perf.py
diff --git a/tools/perf/benchmarks/blink_perf.py b/tools/perf/benchmarks/blink_perf.py
index dfb16534923970bd93b0f914fb290f3c7bbd0bab..039632d9b6cdaed45efd417548b475459cab31ad 100644
--- a/tools/perf/benchmarks/blink_perf.py
+++ b/tools/perf/benchmarks/blink_perf.py
@@ -4,11 +4,15 @@
import os
+from benchmarks import pywebsocket_server
from telemetry import benchmark
+from telemetry.core import local_server
+from telemetry.core import platform as platform_module
from telemetry.core import util
from telemetry import page as page_module
from telemetry.page import page_set
from telemetry.page import page_test
+from telemetry.page import shared_page_state
from telemetry.value import list_of_scalar_values
@@ -17,7 +21,9 @@ BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(),
SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped')
-def CreatePageSetFromPath(path, skipped_file):
+def CreatePageSetFromPath(
+ path, skipped_file,
+ shared_page_state_class=shared_page_state.SharedPageState):
assert os.path.exists(path)
page_urls = []
@@ -57,7 +63,8 @@ def CreatePageSetFromPath(path, skipped_file):
ps = page_set.PageSet(file_path=os.getcwd()+os.sep,
serving_dirs=serving_dirs)
for url in page_urls:
- ps.AddUserStory(page_module.Page(url, ps, ps.base_dir))
+ ps.AddUserStory(page_module.Page(
+ url, ps, ps.base_dir, shared_page_state_class=shared_page_state_class))
return ps
@@ -114,6 +121,32 @@ class _BlinkPerfFullFrameMeasurement(_BlinkPerfMeasurement):
options.AppendExtraBrowserArgs(['--expose-internals-for-testing'])
+class _BlinkPerfPywebsocketMeasurement(_BlinkPerfMeasurement):
+ def CustomizeBrowserOptions(self, options):
+ super(_BlinkPerfPywebsocketMeasurement, self).CustomizeBrowserOptions(
+ options)
+ # Cross-origin accesses are needed to run benchmarks spanning two servers,
+ # the Telemetry's HTTP server and the pywebsocket server.
+ options.AppendExtraBrowserArgs(['--disable-web-security'])
+
+
+class _SharedPywebsocketPageState(shared_page_state.SharedPageState):
+ """Runs a pywebsocket server."""
+ def __init__(self, test, finder_options, user_story_set):
+ super(_SharedPywebsocketPageState, self).__init__(
+ test, finder_options, user_story_set)
+ platform = platform_module.GetHostPlatform()
+ backend = platform._platform_backend # pylint: disable=W0212
nednguyen 2015/04/09 15:41:51 No don't do this, platform_backend is not a public
hiroshige 2015/04/23 08:41:57 Done.
+ self._local_server_controller = local_server.LocalServerController(
+ backend)
+ self._local_server_controller.StartServer(
+ pywebsocket_server.PywebsocketServer())
+
+ def TearDownState(self, results):
+ super(_SharedPywebsocketPageState, self).TearDownState(results)
+ self._local_server_controller.Close()
+
+
class BlinkPerfAnimation(benchmark.Benchmark):
tag = 'animation'
test = _BlinkPerfMeasurement
@@ -306,3 +339,17 @@ class BlinkPerfXMLHttpRequest(benchmark.Benchmark):
def CreatePageSet(self, options):
path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest')
return CreatePageSetFromPath(path, SKIPPED_FILE)
+
+
+class BlinkPerfPywebsocket(benchmark.Benchmark):
+ tag = 'pywebsocket'
+ test = _BlinkPerfPywebsocketMeasurement
+
+ @classmethod
+ def Name(cls):
+ return 'blink_perf.pywebsocket'
+
+ def CreatePageSet(self, options):
+ path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket')
+ return CreatePageSetFromPath(path, SKIPPED_FILE,
+ shared_page_state_class=_SharedPywebsocketPageState)
« no previous file with comments | « no previous file | tools/perf/benchmarks/pywebsocket_server.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698