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

Unified Diff: tools/perf/page_sets/system_health/browsing_stories.py

Issue 2168743004: [system health] Add media browsing stories. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments, getting close to shipping Created 4 years, 4 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
Index: tools/perf/page_sets/system_health/browsing_stories.py
diff --git a/tools/perf/page_sets/system_health/browsing_stories.py b/tools/perf/page_sets/system_health/browsing_stories.py
index 34efe2b882ab01ac10c399e59719639b80878f52..6c2422d93820cf39755de958a6102c01a1cc678f 100644
--- a/tools/perf/page_sets/system_health/browsing_stories.py
+++ b/tools/perf/page_sets/system_health/browsing_stories.py
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+from page_sets.login_helpers import facebook_login
from page_sets.system_health import platforms
from page_sets.system_health import system_health_story
@@ -16,7 +17,6 @@ class _BrowsingStory(system_health_story.SystemHealthStory):
IS_SINGLE_PAGE_APP = False
ITEM_SELECTOR = NotImplemented
- ITEMS_TO_VISIT = 4
ABSTRACT_STORY = True
def _WaitForNavigation(self, action_runner):
@@ -38,6 +38,11 @@ class _BrowsingStory(system_health_story.SystemHealthStory):
self._WaitForNavigation(action_runner)
+##############################################################################
+# News browsing stories.
+##############################################################################
+
+
class _NewsBrowsingStory(_BrowsingStory):
"""Abstract base class for news user stories.
@@ -52,6 +57,7 @@ class _NewsBrowsingStory(_BrowsingStory):
ITEM_READ_TIME_IN_SECONDS = 3
ITEM_SCROLL_REPEAT = 2
+ ITEMS_TO_VISIT = 4
MAIN_PAGE_SCROLL_REPEAT = 0
ABSTRACT_STORY = True
@@ -74,11 +80,6 @@ class _NewsBrowsingStory(_BrowsingStory):
repeat_count=self.MAIN_PAGE_SCROLL_REPEAT)
-##############################################################################
-# News browsing stories.
-##############################################################################
-
-
class CnnStory(_NewsBrowsingStory):
"""The second top website in http://www.alexa.com/topsites/category/News"""
NAME = 'browse:news:cnn'
@@ -212,3 +213,98 @@ class WashingtonPostMobileStory(_NewsBrowsingStory):
if has_button:
action_runner.ClickElement(selector=self._CLOSE_BUTTON_SELECTOR)
super(WashingtonPostMobileStory, self)._DidLoadDocument(action_runner)
+
+
+##############################################################################
+# Media browsing stories.
+##############################################################################
+
+
+class _MediaBrowsingStory(_BrowsingStory):
+ """Abstract base class for media user stories
+
+ A media story imitates browsing a website with photo or video content:
+ 1. Load a page showing a media item
+ 2. Click on the next link to go to the next media item
+ 3. etc.
+ """
+
+ ABSTRACT_STORY = True
+ ITEM_VIEW_TIME_IN_SECONDS = 3
+ ITEMS_TO_VISIT = 15
+ ITEM_SELECTOR_INDEX = 0
+
+ def _DidLoadDocument(self, action_runner):
+ for _ in xrange(self.ITEMS_TO_VISIT):
+ self._NavigateToItem(action_runner, self.ITEM_SELECTOR_INDEX)
+ self._ViewMediaItem(action_runner)
+
+ def _ViewMediaItem(self, action_runner):
+ action_runner.tab.WaitForDocumentReadyStateToBeComplete()
+ action_runner.Wait(self.ITEM_VIEW_TIME_IN_SECONDS)
+
+
+class ImgurMobileStory(_MediaBrowsingStory):
petrcermak 2016/08/04 13:32:42 Note that you could share common properties by def
Hannes Payer (out of office) 2016/08/05 10:21:05 Right on. I decided to keep the current structure
+ NAME = 'browse:media:imgur'
+ URL = 'http://imgur.com/gallery/5UlBN'
+ ITEM_SELECTOR = '.Navbar-customAction'
+ SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
+ IS_SINGLE_PAGE_APP = True
+
+
+class ImgurDesktopStory(_MediaBrowsingStory):
+ NAME = 'browse:media:imgur'
+ URL = 'http://imgur.com/gallery/5UlBN'
+ ITEM_SELECTOR = '.navNext'
+ SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
+ IS_SINGLE_PAGE_APP = True
+
+
+class YoutubeMobileStory(_MediaBrowsingStory):
petrcermak 2016/08/04 13:32:42 nit: can you please change this to YouTubeMobileSt
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ NAME = 'browse:media:youtube'
+ URL = 'https://m.youtube.com/watch?v=QGfhS1hfTWw&autoplay=false'
+ ITEM_SELECTOR = '._mhgb > a'
+ IS_SINGLE_PAGE_APP = True
petrcermak 2016/08/04 13:32:42 nit: Can you please order the class fields consist
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
+ ITEM_SELECTOR_INDEX = 3
+
+
+class YoutubeDesktopStory(_MediaBrowsingStory):
petrcermak 2016/08/04 13:32:42 ditto (capital "T")
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ NAME = 'browse:media:youtube'
+ URL = 'https://www.youtube.com/watch?v=QGfhS1hfTWw&autoplay=false'
+ ITEM_SELECTOR = '.yt-uix-simple-thumb-related'
+ SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
+ IS_SINGLE_PAGE_APP = True
+ ITEM_VIEW_TIME_IN_SECONDS = 5
petrcermak 2016/08/04 13:32:42 Could you please add a short comment why you overr
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ ITEMS_TO_VISIT = 8
+ ITEM_SELECTOR_INDEX = 3
+
+
+class FacebookMobileStory(_MediaBrowsingStory):
+ NAME = 'browse:media:facebookphotos'
petrcermak 2016/08/04 13:32:42 nit: I think facebook_photos would be better (cons
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ URL = (
+ 'https://m.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&source=54&ref=page_internal')
+ ITEM_SELECTOR = '._57-p > a'
+ IS_SINGLE_PAGE_APP = True
+ SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
+ ITEM_SELECTOR_INDEX = 1
+
+ def _Login(self, action_runner):
+ action_runner.Navigate('https://m.facebook.com/NASA')
petrcermak 2016/08/04 13:32:42 Why do you go to NASA and then back to Rihanna? If
Hannes Payer (out of office) 2016/08/05 10:21:05 Leftover, changed to rihanna.
+ action_runner.tab.WaitForDocumentReadyStateToBeComplete()
+
petrcermak 2016/08/04 13:32:42 nit: too many blank lines (should be 2)
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+
+
+class FacebookDesktopStory(_MediaBrowsingStory):
+ NAME = 'browse:media:facebookphotos'
petrcermak 2016/08/04 13:32:42 ditto (facebook_photos)
Hannes Payer (out of office) 2016/08/05 10:21:05 Done.
+ URL = (
+ 'https://www.facebook.com/rihanna/photos/a.207477806675.138795.10092511675/10153911739606676/?type=3&theater')
+ ITEM_SELECTOR = '.snowliftPager.next'
+ IS_SINGLE_PAGE_APP = True
+ # Recording currently does not work. The page gets stuck in the
+ # theater viewer.
+ SUPPORTED_PLATFORMS = platforms.NO_PLATFORMS
+
+ def _Login(self, action_runner):
+ facebook_login.LoginWithDesktopSite(action_runner, 'facebook3',
+ self.credentials_path)

Powered by Google App Engine
This is Rietveld 408576698