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

Side by Side Diff: telemetry/telemetry/page/page_run_end_to_end_unittest.py

Issue 2377373002: Add netconfigs for different network type (Closed)
Patch Set: Update test Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « telemetry/telemetry/page/__init__.py ('k') | telemetry/telemetry/page/shared_page_state.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os 5 import os
6 import re 6 import re
7 import shutil 7 import shutil
8 import sys 8 import sys
9 import StringIO 9 import StringIO
10 import tempfile 10 import tempfile
11 import time
11 import unittest 12 import unittest
12 13
13 from telemetry import benchmark 14 from telemetry import benchmark
14 from telemetry import story 15 from telemetry import story
15 from telemetry.core import exceptions 16 from telemetry.core import exceptions
16 from telemetry.core import util 17 from telemetry.core import util
17 from telemetry import decorators 18 from telemetry import decorators
18 from telemetry.internal.browser import browser_finder 19 from telemetry.internal.browser import browser_finder
19 from telemetry.internal.browser import user_agent 20 from telemetry.internal.browser import user_agent
20 from telemetry.internal.results import results_options 21 from telemetry.internal.results import results_options
21 from telemetry.internal import story_runner 22 from telemetry.internal import story_runner
22 from telemetry.internal.testing.test_page_sets import example_domain 23 from telemetry.internal.testing.test_page_sets import example_domain
23 from telemetry.internal.util import exception_formatter 24 from telemetry.internal.util import exception_formatter
24 from telemetry.page import page as page_module 25 from telemetry.page import page as page_module
25 from telemetry.page import legacy_page_test 26 from telemetry.page import legacy_page_test
26 from telemetry.page import shared_page_state 27 from telemetry.page import shared_page_state
28 from telemetry.page import traffic_setting as traffic_setting_module
27 from telemetry.util import image_util 29 from telemetry.util import image_util
28 from telemetry.testing import fakes 30 from telemetry.testing import fakes
29 from telemetry.testing import options_for_unittests 31 from telemetry.testing import options_for_unittests
30 from telemetry.testing import system_stub 32 from telemetry.testing import system_stub
31 33
32 34
33 SIMPLE_CREDENTIALS_STRING = """ 35 SIMPLE_CREDENTIALS_STRING = """
34 { 36 {
35 "test": { 37 "test": {
36 "username": "example", 38 "username": "example",
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 assert len(tab.browser.tabs) == 1 315 assert len(tab.browser.tabs) == 1
314 316
315 test = TestOneTab() 317 test = TestOneTab()
316 options = options_for_unittests.GetCopy() 318 options = options_for_unittests.GetCopy()
317 options.output_formats = ['none'] 319 options.output_formats = ['none']
318 options.suppress_gtest_report = True 320 options.suppress_gtest_report = True
319 SetUpStoryRunnerArguments(options) 321 SetUpStoryRunnerArguments(options)
320 results = results_options.CreateResults(EmptyMetadataForTest(), options) 322 results = results_options.CreateResults(EmptyMetadataForTest(), options)
321 story_runner.Run(test, story_set, options, results) 323 story_runner.Run(test, story_set, options, results)
322 324
325 def testTrafficSettings(self):
326 story_set = story.StorySet()
327 slow_page = page_module.Page(
328 'file://green_rect.html', story_set, base_dir=util.GetUnittestDataDir(),
329 name='slow',
330 traffic_setting=traffic_setting_module.REGULAR_2G)
331 fast_page = page_module.Page(
332 'file://green_rect.html', story_set, base_dir=util.GetUnittestDataDir(),
333 name='fast',
334 traffic_setting=traffic_setting_module.WIFI)
335 story_set.AddStory(slow_page)
336 story_set.AddStory(fast_page)
337
338 latencies_by_page_in_ms = {}
339
340 class MeasureLatency(legacy_page_test.LegacyPageTest):
341 def __init__(self):
342 super(MeasureLatency, self).__init__()
343 self._will_navigate_time = None
344
345 def WillNavigateToPage(self, page, tab):
346 del page, tab # unused
347 self._will_navigate_time = time.time() * 1000
348
349 def ValidateAndMeasurePage(self, page, tab, results):
350 del results # unused
351 latencies_by_page_in_ms[page.name] = (
352 time.time() * 1000 - self._will_navigate_time)
353
354 test = MeasureLatency()
355 options = options_for_unittests.GetCopy()
356 options.output_formats = ['none']
357 options.suppress_gtest_report = True
358 SetUpStoryRunnerArguments(options)
359 results = results_options.CreateResults(EmptyMetadataForTest(), options)
360 story_runner.Run(test, story_set, options, results)
361 # Slow page should be slower than fast page by at least 300 ms (roundtrip
362 # time of 2G) - 2 ms (roundtrip time of Wifi)
363 self.assertGreater(latencies_by_page_in_ms['slow'],
364 latencies_by_page_in_ms['fast'] + 300 - 2)
365
323 # Ensure that story_runner allows >1 tab for multi-tab test. 366 # Ensure that story_runner allows >1 tab for multi-tab test.
324 @decorators.Enabled('has tabs') 367 @decorators.Enabled('has tabs')
325 def testMultipleTabsOkayForMultiTabTest(self): 368 def testMultipleTabsOkayForMultiTabTest(self):
326 story_set = story.StorySet() 369 story_set = story.StorySet()
327 page = page_module.Page( 370 page = page_module.Page(
328 'file://blank.html', story_set, base_dir=util.GetUnittestDataDir()) 371 'file://blank.html', story_set, base_dir=util.GetUnittestDataDir())
329 story_set.AddStory(page) 372 story_set.AddStory(page)
330 373
331 class TestMultiTabs(legacy_page_test.LegacyPageTest): 374 class TestMultiTabs(legacy_page_test.LegacyPageTest):
332 def TabForPage(self, page, browser): 375 def TabForPage(self, page, browser):
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 results.pages_to_profiling_files) 772 results.pages_to_profiling_files)
730 screenshot_file_path = ( 773 screenshot_file_path = (
731 results.pages_to_profiling_files[failing_page][0].GetAbsPath()) 774 results.pages_to_profiling_files[failing_page][0].GetAbsPath())
732 try: 775 try:
733 actual_screenshot_img = image_util.FromPngFile(screenshot_file_path) 776 actual_screenshot_img = image_util.FromPngFile(screenshot_file_path)
734 self.assertTrue(image_util.AreEqual( 777 self.assertTrue(image_util.AreEqual(
735 image_util.FromBase64Png(expected_png_base64), 778 image_util.FromBase64Png(expected_png_base64),
736 actual_screenshot_img)) 779 actual_screenshot_img))
737 finally: # Must clean up screenshot file if exists. 780 finally: # Must clean up screenshot file if exists.
738 os.remove(screenshot_file_path) 781 os.remove(screenshot_file_path)
OLDNEW
« no previous file with comments | « telemetry/telemetry/page/__init__.py ('k') | telemetry/telemetry/page/shared_page_state.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698