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

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

Issue 2787103003: Add System health stories for Emerging market (Closed)
Patch Set: nits. Created 3 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
Index: tools/perf/page_sets/system_health/searching_stories.py
diff --git a/tools/perf/page_sets/system_health/searching_stories.py b/tools/perf/page_sets/system_health/searching_stories.py
index 329a0cb5ab276b5a16f3b94ee2e5bd9da0109144..abf706e0fbdb10626320007f0d386b6c29cbc078 100644
--- a/tools/perf/page_sets/system_health/searching_stories.py
+++ b/tools/perf/page_sets/system_health/searching_stories.py
@@ -1,13 +1,22 @@
+# encoding: utf-8
# Copyright 2016 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.
+from page_sets.system_health import platforms
+from page_sets.system_health import story_tags
from page_sets.system_health import system_health_story
+from devil.android.sdk import keyevent # pylint: disable=import-error
+from telemetry import decorators
+from telemetry.util import js_template
+
+# TODO(ssid): Rename the search stories to browse stories crbug.com/708300.
class SearchGoogleStory(system_health_story.SystemHealthStory):
NAME = 'search:portal:google'
URL = 'https://www.google.co.uk/'
+ TAGS = [story_tags.EMERGING_MARKET]
_SEARCH_BOX_SELECTOR = 'input[aria-label="Search"]'
_RESULT_SELECTOR = '.r > a[href*="wikipedia"]'
@@ -33,3 +42,162 @@ class SearchGoogleStory(system_health_story.SystemHealthStory):
action_runner.Wait(1)
action_runner.TapElement(selector=self._RESULT_SELECTOR)
action_runner.tab.WaitForDocumentReadyStateToBeComplete()
+
+
+class SearchOmniboxStory(system_health_story.SystemHealthStory):
+ NAME = 'search:google:omnibox'
perezju 2017/04/10 10:13:57 this one should be called already: browse:chrome:o
ssid 2017/04/11 03:55:58 Done.
+ URL = 'https://www.google.co.in'
+ SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
+ TAGS = [story_tags.EMERGING_MARKET]
+
+ def _DidLoadDocument(self, action_runner):
+ app_ui = action_runner.tab.browser.app_ui
+ platform = action_runner.tab.browser.platform
+ app_ui.WaitForUiNode(resource_id='url_bar')
+ url_bar = app_ui.GetUiNode(resource_id='url_bar')
+ url_bar.Tap()
+ action_runner.Wait(1) # user wait before typing
+ platform.android_action_runner.InputText('drake')
+ action_runner.Wait(0.5) # user wait after typing
+ platform.android_action_runner.InputKeyEvent(keyevent.KEYCODE_ENTER)
+
+ action_runner.WaitForNavigate(15)
+ action_runner.ScrollPage(use_touch=True, distance=500)
+
+
+class MobileNewTabPageStory(system_health_story.SystemHealthStory):
+ """Story that loads new tab page and opens menu."""
+
+ NAME = 'search:chrome:newtab'
perezju 2017/04/10 10:13:57 should be called already: browse:chrome:newtab
ssid 2017/04/11 03:55:58 Done.
+ URL = 'chrome://newtab'
+ _SEARCH_TEXTS = ['does google know everything',
+ 'most famous paintings',
+ 'current weather',
+ 'best movies 2016',
+ 'how to tie a tie']
+
+ SUPPORTED_PLATFORMS = platforms.MOBILE_ONLY
+ TAGS = [story_tags.EMERGING_MARKET]
+
+ def _DidLoadDocument(self, action_runner):
+ app_ui = action_runner.tab.browser.app_ui
+ platform = action_runner.tab.browser.platform
+ renderer_view = self._GetUiNode('compositor_view_holder', app_ui)
+ scroll_start = 0.5 * (
+ renderer_view.bounds.center + renderer_view.bounds.bottom_right)
+ platform.android_action_runner.SmoothScrollBy(
+ scroll_start.x, scroll_start.y, 'down', 300)
+ for keyword in self._SEARCH_TEXTS:
+ self._GetUiNode('search_box', app_ui).Tap()
+ platform.android_action_runner.InputText(keyword)
+ platform.android_action_runner.InputKeyEvent(keyevent.KEYCODE_ENTER)
+ action_runner.WaitForNavigate()
+ action_runner.Wait(1.5) # Read results
+ action_runner.ScrollPage(use_touch=True)
+ action_runner.NavigateBack()
+ action_runner.WaitForNavigate()
+
+ self._GetUiNode('menu_button', app_ui).Tap()
+ app_ui.WaitForUiNode(resource_id='menu_item_text')
+
+ def _GetUiNode(self, resource, app_ui):
+ app_ui.WaitForUiNode(resource_id=resource)
+ return app_ui.GetUiNode(resource_id=resource)
+
+
+@decorators.Disabled('win') # crbug.com/673775
+class GoogleDesktopStory(system_health_story.SystemHealthStory):
+ """
+ A typical google search story:
+ _ Start at https://www.google.com/search?q=flower
+ _ Click on the wikipedia link & navigate to
+ https://en.wikipedia.org/wiki/Flower
+ _ Scroll down the wikipedia page about flower.
+ _ Back to the search main page.
+ _ Refine the search query to 'flower delivery'.
+ _ Scroll down the page.
+ _ Click the next page result of 'flower delivery'.
+ _ Scroll the search page.
+
+ """
+ NAME = 'browse:search:google'
+ URL = 'https://www.google.com/search?q=flower'
+ _SEARCH_BOX_SELECTOR = 'input[aria-label="Search"]'
+ _SEARCH_PAGE_2_SELECTOR = 'a[aria-label=\'Page 2\']'
+ SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
+
+ def _DidLoadDocument(self, action_runner):
+ # Click on flower Wikipedia link.
+ action_runner.Wait(2)
+ action_runner.ClickElement(text='Flower - Wikipedia')
+ action_runner.WaitForNavigate()
+
+ # Scroll the flower Wikipedia page, then navigate back.
+ action_runner.Wait(2)
+ action_runner.ScrollPage()
+ action_runner.Wait(2)
+ action_runner.NavigateBack()
+
+ # Click on the search box.
+ action_runner.WaitForElement(selector=self._SEARCH_BOX_SELECTOR)
+ action_runner.ClickElement(selector=self._SEARCH_BOX_SELECTOR)
+ action_runner.Wait(2)
+
+ # Submit search query.
+ action_runner.EnterText(' delivery')
+ action_runner.Wait(0.5)
+ action_runner.PressKey('Return')
+
+ # Scroll down & click next search result page.
+ action_runner.Wait(2)
+ action_runner.ScrollPageToElement(selector=self._SEARCH_PAGE_2_SELECTOR)
+ action_runner.Wait(2)
+ action_runner.ClickElement(selector=self._SEARCH_PAGE_2_SELECTOR)
+ action_runner.Wait(2)
+ action_runner.ScrollPage()
+
+
+class GoogleIndiaDesktopStory(system_health_story.SystemHealthStory):
+ """
+ A typical google search story in India:
+ 1. Start at https://www.google.co.in/search?q=%E0%A4%AB%E0%A5%82%E0%A4%B2`
+ 2. Scroll down the page.
+ 3. Refine the query & click search box, which navigates to
+ https://www.google.co.in/search?q=%E0%A4%AB%E0%A5%82%E0%A4%B2&rct=j#q=%E0%A4%AB%E0%A5%82%E0%A4%B2+%E0%A4%B5%E0%A4%BF%E0%A4%A4%E0%A4%B0%E0%A4%A3
+ 4. Scroll down the page.
+ 5. Click the next page result
+ 6. Scroll the search result page.
+
+ """
+ NAME = 'browse:search:google_india'
+ URL = 'https://www.google.co.in/search?q=%E0%A4%AB%E0%A5%82%E0%A4%B2'
+ _SEARCH_BOX_SELECTOR = 'input[aria-label="Search"]'
+ _SEARCH_BUTTON_SELECTOR = 'button[aria-label="Google Search"]'
+ _SEARCH_PAGE_2_SELECTOR = 'a[aria-label=\'Page 2\']'
+ SUPPORTED_PLATFORMS = platforms.DESKTOP_ONLY
+ TAGS = [story_tags.INTERNATIONAL]
+
+ def _DidLoadDocument(self, action_runner):
+ action_runner.Wait(2)
+ action_runner.ScrollPage()
+ action_runner.Wait(2)
+
+ action_runner.ScrollPage(direction='up')
+
+ # Refine search query in the search box.
+ # TODO(nednguyen): replace this with input text gesture to make it more
+ # realistic.
+ action_runner.ExecuteJavaScript(
+ js_template.Render(
+ 'document.querySelector({{ selector }}).value += "वितरण";',
+ selector=self._SEARCH_BOX_SELECTOR))
+ action_runner.Wait(2)
+ action_runner.ClickElement(selector=self._SEARCH_BUTTON_SELECTOR)
+
+ # Scroll down & click next search result page.
+ action_runner.Wait(2)
+ action_runner.ScrollPageToElement(selector=self._SEARCH_PAGE_2_SELECTOR)
+ action_runner.Wait(2)
+ action_runner.ClickElement(selector=self._SEARCH_PAGE_2_SELECTOR)
+ action_runner.Wait(2)
+ action_runner.ScrollPage()

Powered by Google App Engine
This is Rietveld 408576698