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

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

Issue 1151753003: Integration test for Chrome-Proxy: pass-through directive (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@loFiSnackbar
Patch Set: rebase Created 5 years, 7 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
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 logging 5 import logging
6 import os 6 import os
7 import time 7 import time
8 8
9 from common import chrome_proxy_metrics 9 from common import chrome_proxy_metrics
10 from common import network_metrics 10 from common import network_metrics
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 raise ChromeProxyMetricException, ( 255 raise ChromeProxyMetricException, (
256 'Expected at least one LoFi response, but zero such responses were ' 256 'Expected at least one LoFi response, but zero such responses were '
257 'received.') 257 'received.')
258 258
259 results.AddValue(scalar.ScalarValue( 259 results.AddValue(scalar.ScalarValue(
260 results.current_page, 'lo_fi_request', 'count', lo_fi_request_count)) 260 results.current_page, 'lo_fi_request', 'count', lo_fi_request_count))
261 results.AddValue(scalar.ScalarValue( 261 results.AddValue(scalar.ScalarValue(
262 results.current_page, 'lo_fi_response', 'count', lo_fi_response_count)) 262 results.current_page, 'lo_fi_response', 'count', lo_fi_response_count))
263 super(ChromeProxyMetric, self).AddResults(tab, results) 263 super(ChromeProxyMetric, self).AddResults(tab, results)
264 264
265 def AddResultsForPassThrough(self, tab, results):
266 compressed_count = 0
267 compressed_size = 0
268 pass_through_count = 0
269 pass_through_size = 0
270
271 for resp in self.IterResponses(tab):
272 if 'favicon.ico' in resp.response.url:
273 continue
274 if not resp.HasChromeProxyViaHeader():
275 r = resp.response
276 raise ChromeProxyMetricException, (
277 '%s: Should have Via header (%s) (refer=%s, status=%d)' % (
278 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status))
279 if resp.HasChromeProxyPassThroughRequest():
280 pass_through_count += 1
281 pass_through_size = resp.content_length
282 else:
283 compressed_count += 1
284 compressed_size = resp.content_length
285
286 if pass_through_count != 1:
287 raise ChromeProxyMetricException, (
288 'Expected exactly one Chrome-Proxy pass-through request, but %d '
289 'such requests were sent.' % (pass_through_count))
290
291 if compressed_count != 1:
292 raise ChromeProxyMetricException, (
293 'Expected exactly one compressed request, but %d such requests were '
294 'received.' % (compressed_count))
295
296 if compressed_size >= pass_through_size:
297 raise ChromeProxyMetricException, (
298 'Compressed image is %d bytes and pass-through image is %d. '
299 'Expecting compressed image size to be less than pass-through '
300 'image.' % (compressed_size, pass_through_size))
301
302 results.AddValue(scalar.ScalarValue(
303 results.current_page, 'compressed', 'count', compressed_count))
304 results.AddValue(scalar.ScalarValue(
305 results.current_page, 'compressed_size', 'bytes', compressed_size))
306 results.AddValue(scalar.ScalarValue(
307 results.current_page, 'pass_through', 'count', pass_through_count))
308 results.AddValue(scalar.ScalarValue(
309 results.current_page, 'pass_through_size', 'bytes', pass_through_size))
310
265 def AddResultsForBypass(self, tab, results, url_pattern=""): 311 def AddResultsForBypass(self, tab, results, url_pattern=""):
266 bypass_count = 0 312 bypass_count = 0
267 skipped_count = 0 313 skipped_count = 0
268 314
269 for resp in self.IterResponses(tab): 315 for resp in self.IterResponses(tab):
270 # Only check the url's that contain the specified pattern. 316 # Only check the url's that contain the specified pattern.
271 if url_pattern and url_pattern not in resp.response.url: 317 if url_pattern and url_pattern not in resp.response.url:
272 skipped_count += 1 318 skipped_count += 1
273 continue 319 continue
274 320
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 if xocl != None: 665 if xocl != None:
620 err('%s: has XOriginalContentLength' % kind) 666 err('%s: has XOriginalContentLength' % kind)
621 667
622 if not found: 668 if not found:
623 err('%s: missing video response' % kind) 669 err('%s: missing video response' % kind)
624 670
625 # Finally, add all the metrics to the results. 671 # Finally, add all the metrics to the results.
626 for (k,v) in self.videoMetrics.iteritems(): 672 for (k,v) in self.videoMetrics.iteritems():
627 k = "%s_%s" % (k, kind) 673 k = "%s_%s" % (k, kind)
628 results.AddValue(scalar.ScalarValue(results.current_page, k, "", v)) 674 results.AddValue(scalar.ScalarValue(results.current_page, k, "", v))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698