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

Unified Diff: telemetry/telemetry/page/shared_page_state.py

Issue 2074183002: [telemetry] Try to print browser logs and capture a screenshot upon story failure (Closed) Base URL: git@github.com:catapult-project/catapult.git@master
Patch Set: Add DumpStateUponFailure to _FakeBrowser Created 4 years, 6 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 | « telemetry/telemetry/internal/story_runner_unittest.py ('k') | telemetry/telemetry/story/shared_state.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/page/shared_page_state.py
diff --git a/telemetry/telemetry/page/shared_page_state.py b/telemetry/telemetry/page/shared_page_state.py
index 70fead41a51e0fd2a12c9a73e525576480751d45..52c6d4ba3624c37ce0aa51beed2e8dc08df86d74 100644
--- a/telemetry/telemetry/page/shared_page_state.py
+++ b/telemetry/telemetry/page/shared_page_state.py
@@ -130,6 +130,19 @@ class SharedPageState(story.SharedState):
sys.exit(0)
return possible_browser
+ def DumpStateUponFailure(self, page, results):
+ # Dump browser standard output and log.
+ if self._browser:
+ self._browser.DumpStateUponFailure()
+ else:
+ logging.warning('Cannot dump browser state: No browser.')
+
+ # Capture a screenshot
+ if self._finder_options.browser_options.take_screenshot_for_failed_page:
+ self._TryCaptureScreenShot(page, self._current_tab, results)
+ else:
+ logging.warning('Taking screenshots upon failures disabled.')
+
def _TryCaptureScreenShot(self, page, tab, results):
try:
# TODO(nednguyen): once all platforms support taking screenshot,
@@ -307,20 +320,12 @@ class SharedPageState(story.SharedState):
self._test.ValidateAndMeasurePage(
self._current_page, self._current_tab, results)
except exceptions.Error:
- if self._finder_options.browser_options.take_screenshot_for_failed_page:
- self._TryCaptureScreenShot(self._current_page, self._current_tab,
- results)
if self._test.is_multi_tab_test:
# Avoid trying to recover from an unknown multi-tab state.
exception_formatter.PrintFormattedException(
msg='Telemetry Error during multi tab test:')
raise legacy_page_test.MultiTabTestAppCrashError
raise
- except Exception:
- if self._finder_options.browser_options.take_screenshot_for_failed_page:
- self._TryCaptureScreenShot(self._current_page, self._current_tab,
- results)
- raise
def TearDownState(self):
self._StopBrowser()
« no previous file with comments | « telemetry/telemetry/internal/story_runner_unittest.py ('k') | telemetry/telemetry/story/shared_state.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698