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

Side by Side Diff: tools/chrome_proxy/integration_tests/chrome_proxy_metrics.py

Issue 744703003: Reduce DRP telemetry tests' dependence on net-internals#proxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 | « tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py ('k') | no next file » | 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 datetime 5 import datetime
6 import logging 6 import logging
7 import os 7 import os
8 8
9 from integration_tests import network_metrics 9 from integration_tests import network_metrics
10 from telemetry.core import util 10 from telemetry.core import util
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 def AddResultsForBypass(self, tab, results): 346 def AddResultsForBypass(self, tab, results):
347 bypass_count = 0 347 bypass_count = 0
348 for resp in self.IterResponses(tab): 348 for resp in self.IterResponses(tab):
349 if resp.HasChromeProxyViaHeader(): 349 if resp.HasChromeProxyViaHeader():
350 r = resp.response 350 r = resp.response
351 raise ChromeProxyMetricException, ( 351 raise ChromeProxyMetricException, (
352 '%s: Should not have Via header (%s) (refer=%s, status=%d)' % ( 352 '%s: Should not have Via header (%s) (refer=%s, status=%d)' % (
353 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status)) 353 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status))
354 bypass_count += 1 354 bypass_count += 1
355 355
356 self.VerifyAllProxiesBypassed(tab)
bolian 2014/12/09 22:06:14 Not verifying this any more?
sclittle 2014/12/09 22:25:21 Not anymore. The only thing this call gains us her
357 results.AddValue(scalar.ScalarValue( 356 results.AddValue(scalar.ScalarValue(
358 results.current_page, 'bypass', 'count', bypass_count)) 357 results.current_page, 'bypass', 'count', bypass_count))
359 358
360 def AddResultsForCorsBypass(self, tab, results): 359 def AddResultsForCorsBypass(self, tab, results):
361 eligible_response_count = 0 360 eligible_response_count = 0
362 bypass_count = 0 361 bypass_count = 0
363 bypasses = {} 362 bypasses = {}
364 for resp in self.IterResponses(tab): 363 for resp in self.IterResponses(tab):
365 logging.warn('got a resource %s' % (resp.response.url)) 364 logging.warn('got a resource %s' % (resp.response.url))
366 365
(...skipping 30 matching lines...) Expand all
397 396
398 def AddResultsForBlockOnce(self, tab, results): 397 def AddResultsForBlockOnce(self, tab, results):
399 eligible_response_count = 0 398 eligible_response_count = 0
400 bypass_count = 0 399 bypass_count = 0
401 for resp in self.IterResponses(tab): 400 for resp in self.IterResponses(tab):
402 if resp.ShouldHaveChromeProxyViaHeader(): 401 if resp.ShouldHaveChromeProxyViaHeader():
403 eligible_response_count += 1 402 eligible_response_count += 1
404 if not resp.HasChromeProxyViaHeader(): 403 if not resp.HasChromeProxyViaHeader():
405 bypass_count += 1 404 bypass_count += 1
406 405
407 if tab:
408 info = GetProxyInfoFromNetworkInternals(tab)
409 if not info['enabled']:
410 raise ChromeProxyMetricException, (
411 'Chrome proxy should be enabled. proxy info: %s' % info)
412 self.VerifyBadProxies(info['badProxies'], [])
413
414 if eligible_response_count <= 1: 406 if eligible_response_count <= 1:
415 raise ChromeProxyMetricException, ( 407 raise ChromeProxyMetricException, (
416 'There should be more than one DRP eligible response ' 408 'There should be more than one DRP eligible response '
417 '(eligible_response_count=%d, bypass_count=%d)\n' % ( 409 '(eligible_response_count=%d, bypass_count=%d)\n' % (
418 eligible_response_count, bypass_count)) 410 eligible_response_count, bypass_count))
419 elif bypass_count != 1: 411 elif bypass_count != 1:
420 raise ChromeProxyMetricException, ( 412 raise ChromeProxyMetricException, (
421 'Exactly one response should be bypassed. ' 413 'Exactly one response should be bypassed. '
422 '(eligible_response_count=%d, bypass_count=%d)\n' % ( 414 '(eligible_response_count=%d, bypass_count=%d)\n' % (
423 eligible_response_count, bypass_count)) 415 eligible_response_count, bypass_count))
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 str(bad_proxies), str(expected_bad_proxies))) 464 str(bad_proxies), str(expected_bad_proxies)))
473 465
474 def AddResultsForHTTPFallback( 466 def AddResultsForHTTPFallback(
475 self, tab, results, expected_proxies=None, expected_bad_proxies=None): 467 self, tab, results, expected_proxies=None, expected_bad_proxies=None):
476 if not expected_proxies: 468 if not expected_proxies:
477 expected_proxies = [self.effective_proxies['fallback'], 469 expected_proxies = [self.effective_proxies['fallback'],
478 self.effective_proxies['direct']] 470 self.effective_proxies['direct']]
479 if not expected_bad_proxies: 471 if not expected_bad_proxies:
480 expected_bad_proxies = [] 472 expected_bad_proxies = []
481 473
474 # TODO(sclittle): Remove this dependency on net-internals#proxy once an
475 # alternative method of verifying that Chrome is on the fallback proxy
476 # exists.
482 self.VerifyProxyInfo(tab, expected_proxies, expected_bad_proxies) 477 self.VerifyProxyInfo(tab, expected_proxies, expected_bad_proxies)
483 results.AddValue(scalar.ScalarValue( 478 results.AddValue(scalar.ScalarValue(
484 results.current_page, 'http_fallback', 'boolean', True)) 479 results.current_page, 'http_fallback', 'boolean', True))
485 480
486 def AddResultsForHTTPToDirectFallback(self, tab, results): 481 def AddResultsForHTTPToDirectFallback(self, tab, results):
487 self.VerifyAllProxiesBypassed(tab) 482 bypass_count = 0
483 for resp in self.IterResponses(tab):
484 if resp.HasChromeProxyViaHeader():
485 r = resp.response
486 raise ChromeProxyMetricException, (
487 'Response for %s should not have via header. '
488 'Reponse: status=(%d, %s)\nHeaders:\n %s' % (
489 r.url, r.status, r.status_text, r.headers))
490 else:
491 bypass_count += 1
492
488 results.AddValue(scalar.ScalarValue( 493 results.AddValue(scalar.ScalarValue(
489 results.current_page, 'direct_fallback', 'boolean', True)) 494 results.current_page, 'bypass', 'count', bypass_count))
bolian 2014/12/09 22:06:14 This result, 'bypass', does not match the func nam
sclittle 2014/12/09 22:25:21 Should it match it? This result is the number of b
490 495
491 def AddResultsForExplicitBypass(self, tab, results, expected_bad_proxies): 496 def AddResultsForExplicitBypass(self, tab, results, expected_bad_proxies):
492 """Verify results for an explicit bypass test. 497 """Verify results for an explicit bypass test.
493 498
494 Args: 499 Args:
495 tab: the tab for the test. 500 tab: the tab for the test.
496 results: the results object to add the results values to. 501 results: the results object to add the results values to.
497 expected_bad_proxies: A list of dictionary objects representing 502 expected_bad_proxies: A list of dictionary objects representing
498 expected bad proxies and their expected retry time windows. 503 expected bad proxies and their expected retry time windows.
499 See the definition of VerifyBadProxies for details. 504 See the definition of VerifyBadProxies for details.
500 """ 505 """
501 info = GetProxyInfoFromNetworkInternals(tab) 506 info = GetProxyInfoFromNetworkInternals(tab)
502 if not 'enabled' in info or not info['enabled']: 507 if not 'enabled' in info or not info['enabled']:
503 raise ChromeProxyMetricException, ( 508 raise ChromeProxyMetricException, (
504 'Chrome proxy should be enabled. proxy info: %s' % info) 509 'Chrome proxy should be enabled. proxy info: %s' % info)
510 # TODO(sclittle): Remove this dependency on net-internals#proxy once an
511 # alternative method of verifying that Chrome is on the fallback proxy
512 # exists.
505 self.VerifyBadProxies(info['badProxies'], 513 self.VerifyBadProxies(info['badProxies'],
506 expected_bad_proxies) 514 expected_bad_proxies)
507 results.AddValue(scalar.ScalarValue( 515 results.AddValue(scalar.ScalarValue(
508 results.current_page, 'explicit_bypass', 'boolean', True)) 516 results.current_page, 'explicit_bypass', 'boolean', True))
OLDNEW
« no previous file with comments | « tools/chrome_proxy/integration_tests/chrome_proxy_measurements.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698